PHP-те сессиялар мен формалар
Бізде екі PHP файлы бар делік.
test1.php файлында пайдаланушыдан
екі сан сұрайтын форманы орналастырайық:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
Осы файлда форманы өңдеу кодын орналастырайық. Бұл кодта біз input деректерін сессияға жазамыз:
<?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
бетіне жіберуге болатын.
Мәселе мынада, бұл жағдайда ыңғайлылық
форманың өзі мен оны өңдеу коды бір бетте орналасуында.
Мұндай, әрине, әрқашан ыңғайлы емес,
бірақ кейде қажет болады.
Бір бетте форма арқылы пайдаланушыдан тегін, атын және жасын сұраңыз. Бұл деректерді сессияға жазыңыз. Басқа бетке кіргенде бұл деректерді экранға шығарыңыз.