სესიები და ფორმები 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. საქმე იმაშია, რომ ამ
შემთხვევაში მოხერხებულობა ის არის, რომ თავად ფორმა და კოდი
მისი დამუშავების განთავსებულია ერთ გვერდზე.
ეს, რა თქმა უნდა, ყოველთვის არ არის მოსახერხებელი, მაგრამ ზოგჯერ
საჭირო ხდება.
ერთ გვერდზე ფორმის გამოყენებით ჰკითხეთ მომხმარებელს გვარი, სახელი და ასაკი. ჩაწერეთ ეს მონაცემები სესიაში. სხვა გვერდზე შესვლისას გამოიტანეთ ეს მონაცემები ეკრანზე.