PHP $ _SESSION ['key'] перезаписан значением кнопки ввода.Зачем? - PullRequest
5 голосов
/ 06 ноября 2010

Наличие следующей проблемы в корзине покупок PHP.

Дамп моего сеанса выглядит следующим образом:

Array ( [username] => test@test.com [key] => 1 )

В корзине есть три кнопки:

<form name='cartForm' action='cart.php' method='post'>
<input type='image' value='submit' name='continueshopping' src='x.jpg' />
<input type='image' value='submit' name='update' src='y.jpg' />
<input type='image' value='submit' name='checkout' src='z.jpg' />

всякий раз, когда я нажимаю одну из кнопок, страница перезагружается и делает то, что ей нужно (т.е. удаляет или добавляет элемент) ... но массив сеансов изменяется на следующее (в зависимости от нажатой кнопки)

Array ( [username] => test@test.com [key] => continueshopping_y )
Array ( [username] => test@test.com [key] => update_y )
Array ( [username] => test@test.com [key] => checkout_y )

Является ли [ключ] зарезервированным словом?Почему значение $ _SESSION ['key'] будет перезаписано из формы, которая просто помещает все?Это проблема для нашего проекта, так как мы сохраняли идентификаторы учетных записей пользователей в [ключ], но значение перезаписывалось при каждом нажатии кнопки в корзине.

Фактический код довольно длинный и публикует егоздесь не будет практичным.Не знал бы, что отправлять, так как корзина никогда не взаимодействует с сеансом, кроме как для захвата session_id ().На самом деле мне просто интересно, испытывал ли кто-нибудь подобное.Я не могу воссоздать проблему на своем локальном сервере (PHP5), существует только на работающем сервере (PHP4).

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 06 ноября 2010

Нет, ключ не зарезервирован; должен быть действительный код, который перезаписывает запись.

Поскольку это зависит от конфигурации сервера, я бы посоветовал проверить настройку register_globals и убедиться, что она отключена на обоих серверах.

0 голосов
/ 06 ноября 2010

continuehopping_y, update_y, checkout_y - при использовании изображения INPUT браузер также отправляет координаты x & y, где было щелкнуто изображение. Я предполагаю, что есть некоторый код, представленный ниже:

foreach ($_POST as $key => $value) {
 .....
}

....
Many lines of code later ....
....

$_SESSION['key'] = $key;
// or,
session_register('key');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...