У меня проблема с моим Логин, мой логин работает только с секундной попыткой.
Мой код для обеспеченного сайта:PHP-логин с сеансом
<?php
session_start();
if(!isset($_SESSION["user"])){
header('Location:login.php');
exit;
}
?>
Мой Войти код из login.php является
<?php
try {
$dbh = new PDO($dsn, $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
echo 'Verbindung fehlgeschlagen: ' . $e->getMessage() . '<br>';
}
$myusername = $_POST['user'];
$mypassword = $_POST['pass'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$stmt= $dbh->query("SELECT * FROM users WHERE username='$myusername' and password='$mypassword'");
$count= $stmt->rowCount();
$dbh=null;
if($count==0){
header('Location:loginfail.php');
}
if($count==1){
$_SESSION["user"]= $_POST['user'];
header('Location:customerinfo.php')
}
>?
Я попытался проверить сессии с print_r($_SESSION)
. Сессия начинается каждый раз, и после этого я могу перейти на сайт customerinfo
.
Может кто-нибудь мне помочь?
Спасибо, ребята!
ли вы запустить session_start() на вашем login.php? – Phiter
Вы должны прочитать информацию о SQL-инъекциях и хэшировании паролей. – jeroen
'stripslashes' не помогает предотвратить инъекции SQL. – chris85