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

Մեկ էջում օգտագործելով ձև, հարցրեք օգտատիրոջից ազգանունը, անունը և տարիքը: Գրանցեք այդ տվյալները սեսիայի մեջ: Մեկ այլ էջ մուտք գործելիս արտածեք այդ տվյալները էկրանին: