I have two users in a database, and when i try login it just stays on the index page. If one user is in the database, you can login fine, but with two users it just redirects to the index page. Whats the issue.
<?php
include("connect.php");
$username = $_POST["username"];
$password = $_POST["password"];
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
echo $username;
echo $password;
if (empty($_POST['username']) || empty($_POST['password']))
{
//$_SESSION["login_error"] = "1";
echo 'error code 1';
header ('Location: ../index.php');
}
//$password = sha1($password);
$sql = "SELECT * FROM users";
$result = mysql_query($sql);
if (!$result) die('Invalid query: ' . mysql_error());
$userid = "";
while ($row3 = mysql_fetch_array($result, MYSQL_ASSOC))
{
if(($username == $row3["username"]) && ($password == $row3["password"]))
{
$userid = $row3["id"];
$_SESSION["userid"] = $userid;
//$online = mysql_query("UPDATE numbers SET online='1' WHERE id='".$userid."'")
//or die(mysql_error());
//$type = mysql_query("UPDATE numbers SET type='facetime' WHERE id='".$userid."'")
//or die(mysql_error());
echo $userid;
echo 'error code 2';
header ('Location: ../control_panel.php');
}
else
{
$userid = "";
$_SESSION["userid"] = "";
header ('Location: ../index.php');
echo 'error code 3';
}
//debug
//echo $password;
//$useridvar = $_SESSION["userid"];
//echo $useridvar;
}
if ($_SESSION["userid"]=="")
{
header ('Location: ../index.php');
echo 'error code 4';
}
//else
//{
// $userid = "";
// $_SESSION["userid"]= "";
// header ('Location: ../login.php');
//}
?>
Your code is very bad. You are looping through the entire users table? That’s awful. Try this: