2014-12-07 3 views
-1

Это то, что я могу сделать, чтобы установить переменныеНе все PHP переменных сессий создаются

<?PHP 
session_start(); 
?> 
<?PHP 
$user_name = $_POST['username']; 
$first_name = $_POST['FirstName']; 
$last_name = $_POST['LastName']; 
$_SESSION['FirstName']=$first_name; 
$_SESSION['LastName']=$last_name; 
$_SESSION['UserName']=$user_name; 

для целей тестирования я распечатанный в этом файле, прежде чем я задать переменный сеанс, так что я знаю, что я получаю значение из формы. Однако, когда я иду и распечатать в другой, как это

<?PHP 
echo $_SESSION['UserName']; 
echo $_SESSION['FirstName']; 
echo $_SESSION['LastName']; 

он выходит из строя, после того, комментируя некоторые из гравюр я считаю, что это только устанавливает имя пользователя один, а остальные теряются каким-то образом

это от моей формы Вход Имя пользователя: Пароль   :  

это куда я иду, когда представленный

$user_name = $_POST["username"]; 
$password = $_POST["password"]; 
$_SESSION["UserName"]=$user_name; 
$_SESSION["Password"]=$password; 

Это то, где я тогда попытайтесь распечатать

<?PHP 
echo "username: " 
echo $_SESSION["UserName"]; //this one works 
?> 
<br> 
<?PHP 
echo "password: " 
echo $_SESSION["Password"]; //does not work 
?> 

мои переменные сессии объявлены в верхней части только одна страница, как этот

<?PHP 
session_start(); 
$_SESSION["UserName"]; 
$_SESSION["Password"]; 
?> 
+2

просто убедитесь, что у вас есть 'session_start();' на всех этих страницах – Ghost

+0

Показать форму HTML-код и также вы уверены, что другие 2 имеют данные и не пусты? – Darren

+1

Так же, как @Ghost сказал, плюс, как вы сказали *, «устанавливает имя пользователя один, а остальные как-то потеряны» * - Скорее всего, элементы вашей формы не содержат атрибут имени, и/или есть опечатка или буквенный символ не соответствует. 'Username' и' username' или 'Username' не совпадают. Покажите свой полный код, связанный с этим. Я подозреваю, что элементы вашей формы, которые не проходят, все строчные. –

ответ

4

просто убедитесь, что у вас есть session_start(); на всех этих страницах - Ghost

В дополнение к комментарий Призрака, может быть, что элементы вашей формы не содержат имя атрибута, и/или есть опечатка или lettercase не совпадают.
Username и username или Usernameне то же самое. (PHP) переменные чувствительны к регистру.

устанавливает имя пользователя один, а остальные теряются каким-то образом

Выработать на мой комментарий, я подозреваю, что ваши элементы формы находятся в нижнем регистре или не названы.

Я готов поспорить, что если вы меняете

$first_name = $_POST['FirstName']; // FirstName is not the same as firstname 
$last_name = $_POST['LastName']; // LastName is not the same as lastname 

в

$first_name = $_POST['firstname']; 
$last_name = $_POST['lastname']; 

, что он начнет работать для вас. Поскольку, эти два не проходят.

Однако, чтобы быть уверенным на 100%, вам нужно будет выслать код своей формы, но я точно не знаю о моем ответе.

Ваша форма должна содержать как:

<input type="text" name="firstname"> 

и

<input type="text" name="lastname"> 

Добавить error reporting в верхней части файла (ов), который поможет найти ошибки, если настройки вашей системы не являются автоматически настроенный для этого, что, в свою очередь, скорее всего будет «Неопределенный индекс ...».

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// rest of your code 

Sidenote: Сообщения об ошибках не должно быть сделано только в постановке, и никогда производства.

Теперь, если это все еще не работает, возникает проблема с кешем.

Вы можете использовать session_destroy(). Вы также можете отключить сеанс, а затем начать все заново.

Для получения дополнительной информации о них на сайте:


Edit:

Следуйте за этим, и он будет работать, проверено. Затем вы можете изменить его.

Первая страница:

<html> 
<body> 
<form action="page2.php" method="post"> 
Username: <br><input type="text" name="username"><br> 
First name: <br><input type="text" name="firstname"><br> 
Last name: <br><input type="text" name="lastname"><br> 
<input type="submit" name = 'submit' value= 'Login'> 
</form> 
</body> 
</html> 

page2.php

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

session_start(); 
$username = $_POST['username']; 
$firstname = $_POST['firstname']; 
$lastname = $_POST['lastname']; 

$_SESSION['username'] = $_POST['username']; 
$_SESSION['firstname'] = $_POST['firstname']; 
$_SESSION['lastname'] = $_POST['lastname']; 

echo "Username: " . $_SESSION['username'] . "<br>"; 
echo "First name: " . $_SESSION['firstname'] . "<br>"; 
echo "Last name: " . $_SESSION['lastname'] . "<br>"; 
?> 
+1

это должно охватывать все основания. что «он падает» действительно расплывчато. скорее всего, это всего лишь еще один случай «Неопределенный индекс:' – Ghost

+1

@Ghost Действительно действительно неопределенный. Но я думаю, что вы правы, «неопределенный индекс». –

+1

@Ghost Хорошо, я ухожу в лах-лах. Держите крепость плотно прижатой;) * Cheers * –

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