PHP-те сессиялар мен формалар

Бізде екі PHP файлы бар делік. test1.php файлында пайдаланушыдан екі сан сұрайтын форманы орналастырайық:

test1.php<form method="GET">
  <input name="num1">
  <input name="num2">
  <input type="submit">
</form>

Осы файлда форманы өңдеу кодын орналастырайық. Бұл кодта біз input деректерін сессияға жазамыз:

test1.php<?php
  session_start();
  
  if (!empty($_GET)) {
    $_SESSION['num1'] = $_GET['num1'];
    $_SESSION['num2'] = $_GET['num2'];
  }
?>

Маңызды нюанс: файлда форманы өңдеу коды форманың өзінен бұрын тұруы керек. Неге: себебі бұл кодта біз сессиямен жұмыс істейміз, демек бұған дейін экранға ешбір шығыс болмауы керек.

Енді test2.php файлында сессияда сақталған сандардың қосындысын табайық:

test2.php<?php
  if (!empty($_SESSION)) {
    echo $_SESSION['num1'] + $_SESSION['num2'];
  }
?>

Мұның бәрі қандай ретпен жұмыс істеуі керек? Алдымен пайдаланушы test1.php бетіне кіреді, форманы толтырып түймені басады. Содан кейін ол қайтадан test1.php бетіне түседі, бірақ енді жіберілген форма деректерімен. Бұл ретте ол біздің форма деректерін сессияға жазатын шартқа түседі.

Содан кейін пайдаланушы test2.php бетіне қолмен кіруі керек - және онда ол енгізілген сандардың қосындысын көреді.

Сіз сұрауыңыз мүмкін: неге осылай қиындату керек? Өйткені форманы бірден test2.php бетіне жіберуге болатын. Мәселе мынада, бұл жағдайда ыңғайлылық форманың өзі мен оны өңдеу коды бір бетте орналасуында. Мұндай, әрине, әрқашан ыңғайлы емес, бірақ кейде қажет болады.

Задание 1

Бір бетте форма арқылы пайдаланушыдан тегін, атын және жасын сұраңыз. Бұл деректерді сессияға жазыңыз. Басқа бетке кіргенде бұл деректерді экранға шығарыңыз.