PHP会话没有回应错误

时间:2014-09-14 13:29:07

标签: php mysql mysqli

我遇到会话问题,即使在定义后也会得到未定义的索引。这是我的代码:

if(isset($_POST['username']) && isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];}

$sql = "SELECT * FROM useraccounts WHERE username = '$username' AND password = md5('$password')";
mysql_real_escape_string($username);
mysql_real_escape_string($password);
$query = mysqli_query($con,$sql);
$row = mysqli_fetch_array($query);
    if($row)//if the user logged in.
    {
    echo '<font size="3" color="red">Succesfully logged in, '.$username.'</font>';
    $_SESSION['logged'] = '$username';
    }else{
    echo '<font size="3" color="red">Wrong username or password.</font>';
    }

And when i try to call it : [page 2]
echo $_SESSION['logged']; //line 8
Also i want this to work too:
$sql = "SELECT * FROM useraccounts WHERE username = '$user' ";
$query = mysqli_query($con,$sql);
$row = array();
while($row = mysqli_fetch_array($query)) {
echo $row['username'];
}

非常欢迎您的任何帮助。如果你知道关于PHP&amp;&amp;的任何好的教程MYSQL /我请帮帮我。感谢您的建议 - qwzjean。

1 个答案:

答案 0 :(得分:0)

您正在将mysqlmysqli功能相互混合。选一个。

您正在将mysql_real_escape_string($username);mysql_real_escape_string($password);用于mysqli函数,因此您的密码和用户名不会被使用。那么你将得不到任何回报,因此你的代码不会工作。

为了让这个工作,尝试类似

的东西
if(isset($_POST['username']) && isset($_POST['password'])){
$username = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, $_POST['password']);

$sql = "SELECT * FROM useraccounts WHERE username = '$username' AND password = md5('$password')";
$query = mysqli_query($con,$sql);
$row = mysqli_fetch_array($query);
    if($row)//if the user logged in.
    {
    echo '<font size="3" color="red">Succesfully logged in, '.$username.'</font>';
    $_SESSION['logged'] = '$username';
    }else{
    echo '<font size="3" color="red">Wrong username or password.</font>';
    }
}