#php
#php
Вопрос:
Я написал этот код, чтобы создать страницу благодарности.
Должно получиться, что только один раз она показывает спасибо, чтобы избежать повторения с простым обновлением или перенаправлением с другой внешней страницы, но только из индекса, где я установил переменную в ‘true’.
Сначала я устанавливаю переменную на index.php таким образом:
$_SESSION['fromMain'] = "true";
Затем в thankyou.php Я написал это:
if($_SESSION['fromMain'] == "true"){
$_SESSION['fromMain'] = "false";
echo "TRUE, thank you!";
} else {
echo "FALSE";
}
Он всегда показывает ‘TRUE’.
Я сделал что-то не так?
Комментарии:
1. как вы установили
$_SESSION['fromMain']
? если вы установите его в начале своего кода и никогда не измените, он всегда будетtrue
2. Я установил для параметра fromMain значение true в index.php просто чтобы проверить это. Затем я иду к thankyou.php и это оказалось правдой. Но когда он показывает true, для переменной уже установлено значение false, но если я обновлю его, он все равно покажет true.
3. Вы правильно запустили сеанс снова в thankyou.php ?
4. @CBRO может быть, не так, как это сделать?
5. Я спрашиваю
session_start();
, правильно ли вы вызывали в начале каждого задействованного скрипта?
Ответ №1:
Вы объявили $_SESSION['fromMain'] = "true";
, что затем вы проверяете, правда это или нет, и так будет всегда
я думаю, что проблема здесь
if($_SESSION['fromMain'] == "true"){
$_SESSION['fromMain'] = "false";
echo "TRUE, thank you!";
}
Комментарии:
1.
$_SESSION['fromMain'] = "true";
устанавливается на другой странице (index.php ).