2014-01-13 3 views
-5

Я создаю сценарий входа. Заголовки все работают, но, видимо, $ _SESSION остается пустым. Кто-нибудь знает, почему это может быть?

$db = dbConnection(); 

// username and password sent from form 
$myusername= $_POST['myusername']; 
$mypassword= md5($_POST['mypassword']); 

// To protect MySQL injection (more detail about MySQL injection) 
$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 
$sql="SELECT * FROM " .$members. " WHERE BINARY `username`= '".$myusername."' and BINARY `password`= '".$mypassword."'"; 
$result = $db->query($sql); 

// Mysql_num_row is counting table row 
$count=$result->rowCount(); 

// Fetch this accounts row from db 
$row = $result->fetch(PDO::FETCH_ASSOC); 

// If result matched $myusername and $mypassword, table row must be 1 row 
if($count==1){ 

$_SESSION['username'] = $myusername; 
$_SESSION['privileges'] = $row['privileges']; 
$_SESSION['email'] = $row['email']; 
header("location:index.php"); 

}

+2

Предполагая, что у вас есть 'session_start();' где-то скрыто? –

ответ

4

Добавить session_start() в верхней части вашего сценария.

+0

9 раз из 10, ОП оборачивается и говорит: «Это в файле моих подключений». Я никогда не отвечаю на такие вопросы. Они попадают в категорию кода C.O.W.'. –

+0

session_start(); вызывается в index.php, где он заголовок. Но он должен быть вызван перед установкой переменных $ _SESSION. Спасибо за ответ. – aardnoot

+0

Не за 3 секунды до того, как я написал это, приходит OP и пишет только то, что я сказал. Я знал это. –

1

Две возможности здесь либо session_start(); не используется, либо $ count не равно 1, возможно, оба они отсутствуют.

Смежные вопросы