Я кодирую форму с четырьмя шагами на PHP. Я отправляю каждый шаг методом POST.
Мои шаги выглядят как первые:
if (trim($_GET['p']) == 1){
$_SESSION['rate_step'] = $_GET['p'];
$_SESSION['data_change'] = @$_POST['change'];
if (@$_POST['change'] != ''){
$_SESSION['rate_disabled'] = '';
}
if (@$_POST['new_rate'] != ''){
$_SESSION['rate_disabled'] = '';
if ($_SESSION['rate_lastinsertid'] != ''){
$_SESSION['rate_lastinsertid'] = '';
};
}
$extra_vis = 'display:none';
$content = show_template('agent_rates_s1', array(
'step' => $_SESSION['rate_step'],
'monat' => $monat,
'jahr' => $jahr,
'jahr_zukunft' => $jahrfut,
'zielland' => $zielland,
'herkunfstland' => $herkunfstland,
'service' => $_SESSION['rate_service'],
'month_service' => $_SESSION['rate_month'],
'year_service' => $_SESSION['rate_year'],
'origin_country' => $_SESSION['rate_origin_country'],
'destination_country' => $_SESSION['rate_destination_country'],
'city' => $_SESSION['rate_city'],
'street' => $_SESSION['rate_street'],
'postcode' => $_SESSION['rate_postcode'],
'floor' => $_SESSION['rate_floor'],
'disabled' => $_SESSION['rate_disabled'],
'extra_vis' => $extra_vis,
));
}
Когда я нажимаю на другой элемент меню в навигации и возвращаюсь к своей форме или поля первого шага пусты. Каждая сессия пуста. Почему ?
Проблема в том, что я использую $ _GET ['p'] == 1 и так далее?
@Swellar да, я очищаю сеансы с помощью session_start ();
Исходя из вашего отступа, предполагается ли, что первый оператор if должен быть закрыт в строке 4?
@PeterMellett нет, потому что я закрываю оператор после моей переменной $ content, чтобы показать $ content.
Ясно, пожалуйста, не могли бы вы исправить свое форматирование, чтобы код был более понятным?
вы проверяете $ _GET ['p'] и два других значения с помощью метода post, поэтому $ _POST становится пустым. Вы можете использовать GET или POST, или вы можете использовать $ _REQUEST для обработки обоих типов GET и POST, если вы не уверены в типе метода.
@Sachin, поэтому я использую POST, чтобы проверить, какая форма отправлена, и показать содержимое?
Хорошо, поэтому вам нужно проверить $ _POST ['p'] вместо $ _GET ['p'] или вы можете заменить $ _GET и $ _POST на $ _REQUEST.






Чтобы было ясно, вы начали сеанс?