mysql — PHP сессии не отражают ошибку

У меня проблема с сессиями, и я получаю неопределенный индекс даже после его определения. Вот мой код:

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 && MYSQL / Пожалуйста, помогите мне. Спасибо за совет — qwzjean.

-1

Решение

Вы смешиваете mysqlа также mysqli функционирует через друг друга. Выбери один.

Ты используешь mysql_real_escape_string($username); а также mysql_real_escape_string($password);в функции MySQL, таким образом, ваш пароль и имя пользователя не будут использоваться. Тогда вы не получите возврата, поэтому ваш код не будет работать.

Чтобы заставить это работать, попробуйте что-то вроде

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>';
}
}
0

Другие решения

Других решений пока нет …