我遇到会话问题,即使在定义后也会得到未定义的索引。这是我的代码:
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。
答案 0 :(得分:0)
您正在将mysql
和mysqli
功能相互混合。选一个。
您正在将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>';
}
}