2012-11-30 3 views
0

Здесь я устанавливаю свои переменные сеанса.

function validateUser() 
{ 
session_regenerate_id(); //this is a security measure 
$_SESSION['user'] = $_POST['username']; 
$_SESSION['valid'] = 1; 
$_SESSION['firstname'] = $firstname; 
$_SESSION['lastname'] = $lastname; 
} 

Это то, что print_r ($ _SESSSION) эхо.

Array ([user] => aboshart [valid] => 1 [firstname] => [lastname] =>) 

Если я эхо $ firstname и $ lastname, я получаю правильные значения. Что я делаю не так?

+0

$ _SESSION варов, как правило, считается надежным, как это разработчик, который определяет, какие данные значения. Вы устанавливаете переменную $ _SESSION для несаминированного пользователя, предоставленного var, не дезинфицируя или не проверяя $ _POST ['username']. Пожалуйста, сделайте это, прежде чем вы случайно используете $ _SESSION ['user'], где-то он может нанести вред, как в запросе базы данных. Я предполагаю, что вы хотите, чтобы безопасное приложение оценивалось по вашему комментарию PHP-кода. –

ответ

3

Вы не передаете функцию $ firstname или $ lastname.

function validateUser($firstname, $lastname) 
{ 
    session_regenerate_id(); //this is a security measure 
    $_SESSION['user'] = $_POST['username']; 
    $_SESSION['valid'] = 1; 
    $_SESSION['firstname'] = $firstname; 
    $_SESSION['lastname'] = $lastname; 
} 

$ _POST и $ _SESSION должен быть в пределах области, но другие не

+0

Что он сказал; плюс, как правило, просматривать журнал ошибок для уведомлений и предупреждений. – Gutza

+0

Спасибо! это именно то, что мне нужно. Переменная $ _POST позволяет просто показать, что функция validateUser работает для установки переменных сеанса. Я не буду использовать его в живом коде. – slinkfresh

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