Jump to content

Recommended Posts

I am having a problem with getting data from the database. I am trying to have it set so that if a user is logged in it sets the "logged_in" value in the database to 1 which it does. Then if someone else tries to log in with the same username it sees that it is 1 and says someone is already logged in. Here is my code:

 

<?php
session_start();

//include database variables
include("includes/variables.php");

//get variables from login form
$username = strtolower($_POST['username']);
$password = md5($_POST['password']);
$ip_address = $_SERVER['REMOTE_ADDR'];

//connect to the mysql server
$connect = mysql_connect($host, $db_username, $db_password);

//select the database
$select_db = mysql_select_db($db);

//query to select posted username from database
$query = "SELECT * from $db_user_table WHERE username='$username'";

//query to enter the ip address into the database
$update_query = "UPDATE $db_user_table SET logged_in_ip = '$ip_address', last_ip = '$ip_address' WHERE username = '$username'";

//query to check the database for ip address already logged in
$check_ip = "SELECT * FROM $db_user_table WHERE logged_in_ip = '$ip_address'";
$ip_results = mysql_query($check_ip);
$num_ip = mysql_num_rows($ip_results);

//query to log user in database
$update_user = "UPDATE $db_user_table SET logged_in = '1' WHERE username = '$username'";

//query to check if user is logged in or not
$check_user = "SELECT * FROM $db_user_table WHERE logged_in = '1'";
$user_results = mysql_query($check_user);
$count_users = mysql_num_rows($user_results);

//if users logged in is greater than or equal to 1
if($count_users != 0)
{
$users_row = mysql_fetch_array($user_results);
}

//execute the query
$results = mysql_query($query);

//count the number of rows
$count = mysql_num_rows($results);

//if the username exists fetch the results
if ($count = 1)
{
$row = mysql_fetch_array($results);
}

//if username is blank
if (empty($username))
{
//include header
include("includes/header.php");

//include login box
include ("includes/login_box.php");

//include news box
include("includes/news_box.php");

echo "<br><center>";
echo "Please enter a username!";
echo "</center>";
include("includes/footer.php");
}

//if password is blank
else if (empty($password))
{
//include header
include("includes/header.php");

//include login box
include ("includes/login_box.php");

//include news box
include("includes/news_box.php");

echo "<br><center>";
echo "Please enter a password!";
echo "</center>";
include("includes/footer.php");
}

//if username is not in database
else if ($username != $row['username'])
{
//include header
include("includes/header.php");

//include login box
include ("includes/login_box.php");

//include news box
include("includes/news_box.php");

echo "<br><center>";
echo "That username does not exist in our database. Please try again.";
echo "</center>";
include("includes/footer.php");
}

//if password is not in database
else if ($password != $row['password'])
{
//include header
include("includes/header.php");

//include login box
include ("includes/login_box.php");

//include news box
include("includes/news_box.php");

echo "<br><center>";
echo "The password you have entered is incorrect. Please try again.";
echo "</center>";
include("includes/footer.php");
}

//if someone is already logged in with the ip address
else if($num_ip == 1)
{
//include header
include("includes/header.php");

//include login box
include ("includes/login_box.php");

//include news box
include("includes/news_box.php");

echo "<br><center>";
echo "Someone is already logged in with that IP ADDRESS.";
echo "</center>";
include("includes/footer.php");
}

else if($username == $users_row['username'])
{
//include header
include("includes/header.php");

//include login box
include ("includes/login_box.php");

//include news box
include("includes/news_box.php");

echo "<br><center>";
echo "Someone is already logged in with that username.";
echo "</center>";
include("includes/footer.php");
}

//if everything is ok register the username in the session and redirect to logged_in.php
else
{
$update_ip = mysql_query($update_query)
or die("Could not enter information!");

$update_user_logged_in = mysql_query($update_user);

session_start();
$_SESSION['logged_in'] = TRUE;
$_SESSION['username'] = $username;

header("Location:logged_in.php");

}

?>

 

The problem is that if I log in as the first user in the database it works but any other user it doesnt. Any help is appreciated. Thanks in advance

Link to comment
https://forums.phpfreaks.com/topic/123798-solved-error-handling/
Share on other sites

Why don't you check by IP and if the logged_in value is 1 then there is someone logged in from that same IP?

 

For your query:

$results = mysql_query("SELECT logged_in FROM $db_user_table WHERE logged_in_ip = '$ip_address'");
$data = mysql_fetch_array($results);

 

For your elseif statement:

elseif($data['logged_in'] == 1)
{
//user all ready logged in from this IP
}

If I understand you correctly then do a query for the user.  Say, select logged_in from $db_user_table WHERE user = user (trying to log in);  If logged_in = 1 then {all ready logged in from another IP} else{Welcome!}.

 

Hope this helps...

 

 

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.