Сессияҳо ва формҳо дар PHP
Бигзор мо ду файли PHP дошта бошем. Биёед дар
файли test1.php формро ҷойгир кунем, ки аз
корбар ду ададро мепурсад:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
Дар ҳамин файл коди коркарди формро ҷойгир мекунем. Дар ин код мо маълумоти вурудиҳоро ба сессия менависем:
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Нюанси муҳим: дар файл коди коркарди форм бояд қабл аз худи форм истода бошад. Чаро: зеро ки дар ин код мо бо сессия кор мекунем, ва яъне ҳеҷ гуна баромад ба экран то ин ҷо набояд бошад.
Биёед акнун дар файли test2.php ҷамъи
рақамҳои нигоҳдорӣшуда дар сессияро ёбем:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
Ин ҳама бояд дар кадом пайдарпаӣ кор кунад? Аввал корбар ба
саҳифаи test1.php дохил мешавад, формро пур мекунад
ва тугмаро мефишад. Пас аз ин боз ба
test1.php мерасад, аммо аллакай бо маълумоти фиристодашудаи форм.
Дар ҳоле ки ба шарт меафтад,
ки дар он мо маълумоти формро ба сессия менависем.
Сипас корбар бояд дастӣ ба
саҳифаи test2.php дарояд - ва дар он ҷо ҷамъи
рақамҳои воридшударо хоҳад дид.
Шумо метавонед бипурсед: чаро ин қадар мураккаб кардан? Зеро
ки метавонст ҳамин ҳол формро ба саҳифаи
test2.php фиристод. Масала ин аст, ки дар ин
ҳолат осонӣ дар он аст, ки худи форм ва код
каркарди он дар як саҳифа ҷойгир карда мешаванд.
Ин, албатта, ҳамеша осон нест, аммо баъзан
зарур аст.
Дар як саҳифа бо ёрии форм аз корбар насаб, ном ва синро бипурсед. Ин маълумотҳоро ба сессия нависед. Ҳангоми дохил шудан ба саҳифаи дигар ин маълумотҳоро ба экран чоп кунед.