PHP'de Oturumlar ve Formlar
İki PHP dosyamız olduğunu varsayalım.
test1.php dosyasına kullanıcıdan iki sayı
soran bir form yerleştirelim:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
Aynı dosyada form işleme kodunu yerleştirelim. Bu kodda, girdi verilerini oturuma kaydedeceğiz:
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Önemli bir nüans: dosyada form işleme kodu formun kendisinden önce gelmelidir. Nedeni: çünkü bu kodda oturumla çalışıyoruz ve bundan önce ekrana herhangi bir çıktı olmamalıdır.
Şimdi test2.php dosyasında oturumda
kayıtlı sayıların toplamını bulalım:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
Tüm bunlar hangi sırayla çalışmalı? Önce kullanıcı
test1.php sayfasına girer, formu doldurur
ve düğmeye tıklar. Bundan sonra yine
test1.php sayfasına gelir, ancak bu sefer
gönderilen form verileriyle birlikte. Bu sırada,
form verilerini oturuma yazdığımız koşula girer.
Daha sonra kullanıcı manuel olarak
test2.php sayfasına girmeli - ve orada
girilen sayıların toplamını görecektir.
Şunu sorabilirsiniz: neden bu kadar uğraşalım? Sonuçta
form doğrudan test2.php sayfasına gönderilebilirdi.
Olay şu ki, bu durumda formun kendisi ve onu işleme kodu
aynı sayfada yer alıyor. Bu elbette her zaman uygun değildir,
ancak bazen gerekli olabilir.
Bir sayfada form kullanarak kullanıcıdan soyadı, adı ve yaşını sorun. Bu verileri oturuma kaydedin. Başka bir sayfaya girildiğinde bu verileri ekranda gösterin.