Не удается создать страницу входа? - PullRequest
1 голос
/ 10 января 2011

Хорошо, я хочу сделать простую страницу входа. Я успешно создал страницу регистрации, но не могу отключить вход в систему.

login.php:

<?php

session_start();

include("mainmenu.php");

$usrname = mysql_real_escape_string($_POST['usrname']);
$password = md5($_POST['password']);

$con = mysql_connect("localhost", "root", "g00dfor@boy");
 if(!$con){
  die(mysql_error());
}

mysql_select_db("users", $con) or die(mysql_error());

$login = "SELECT * FROM `users` WHERE (usrname = '$usrname' AND password = '$password')";
$result = mysql_query($login);

 if(mysql_num_rows($result) == 1 {

    $_SESSION = true;
    header('Location: indexlogin.php');
 }

   else {
echo = "Wrong username or password." ;
}


?>

indexlogin.php просто повторяет "Вход в систему успешен". Что я делаю неправильно? О, и просто FYI - моя база данных "пользователи", а моя таблица "данные".

Ответы [ 2 ]

3 голосов
/ 10 января 2011
<?php

session_start();

include("mainmenu.php");

$usrname = mysql_real_escape_string($_POST['usrname']);
$password = md5($_POST['password']);

$con = mysql_connect("localhost", "root", "g00dfor@boy");
if (!$con) {
    die(mysql_error());
}

mysql_select_db("users", $con) or die(mysql_error());

$login = "SELECT * FROM `users` WHERE (usrname = '$usrname' AND password = '$password')";
$result = mysql_query($login);

if (mysql_num_rows($result) == 1) {
    $_SESSION['logged_in'] = true;
    header('Location: indexlogin.php');
    exit;
} else {
    echo "Wrong username or password.";
}

?>
  • Я добавил mysql_real_escape_string() для предотвращения SQL инъекция .
    Нет, я не сделал, потому чтоу вас это уже было.
  • Я немного исправил форматирование кода.
  • Я изменил $_SESSION = true; (что не имеет смысла) на $_SESSION['logged_in'] = true;.Затем в indexlogin.php вы можете сделать что-то вроде if ($_SESSION['logged_in']) { echo $secret; }
  • Я исправил echo = "Wrong username or password."; в echo "Wrong username or password.";
  • Я добавил закрывающую скобку рядом с mysql_num_rows($result) == 1.

Вы сказали:

моя база данных - "пользователи", а моя таблица - "данные".

Если это правильно, вам потребуетсяизменить SELECT * FROM users на SELECT * FROM data.

2 голосов
/ 10 января 2011

Не думаю, что вы можете установить $ _SESSION = true, потому что $ _SESSION - это массив. Попробуйте $ _SESSION ['logged_in'] = true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...