Bu yazıda PHP ile toplama işlemi yaparak güvenlik kodu oluşturacağız. Nasıl bir uygulama olacağını bu yazının yorum yap kısmında görebilirsiniz. Birkaç input ile form oluşturup toplama işlemiyle güvenlik kodunu ekleyeceğiz. Toplama işleminin sonucu session (oturum) ile kontrol edeceğiz. Eğer işlem doğruysa doğru olduğuna dair bilgi mesajı, yanlışsa da hata mesajı verecek.
Oluşturulan Form Görüntüsü
Toplam 2 tane php dosyası oluşturacağız. İlkinin ismi "toplama.php", ikincisinin ismi "sonuc.php" olacak.
toplama.php içerisinde resimdeki basit tasarımı oluşturmak için HTML ve CSS kodları, sayıları oluşturmak için de PHP kodları olacak. mt_rand() fonksiyonu ile sayıları oluşturacağız. Oluşturduğumuz sayıları topladıktan sonra session oluşturup toplamı session'a atayacağız. Daha sonra sayıları inputlarda göstereceğiz. Ben burada sayılar değiştirilmesin diye placeholder kullandım, aynı şekilde readonly kullanmak da mümkün. Son olarak "Gönder" butonuna basıp post metoduyla formu sonuc.php sayfasına gönderiyoruz, eğer toplama işlemini doğru yaptıysak işlemin doğru olduğuna dair bilgi mesajı, yanlış yaptıysak hata mesajı verecek.
sonuc.php içerisinde toplama.php'den alınan toplama sonucuyla (bizim girdiğimiz) ve session'da kayıtlı duran toplama sonucunu (gerçek sonuç) karşılaştıracağız. Dönen değere göre bilgi veya hata mesajı toplama.php içerisinde yazılacak.
Kodların bir kısmını örnek olması için paylaşıyorum, uygulamayı denemek için önizlemeyi, bütün kodları indirmek için indir butonuna tıklayabilirsiniz.
toplama.php => Sayı Oluşturma Kodları
<?php
$toplam1 = mt_rand(1,9);
$toplam2 = mt_rand(1,9);
session_start();
$toplam_sayi = $toplam1+$toplam2;
$_SESSION['toplama'] = $toplam_sayi;
?>
sonuc.php => Güvenlik Sorusunu Kontrol Kodları
<?php
$girilen_sonuc = $_POST['sonuc'];
session_start();
if($_SESSION['toplama'] != $girilen_sonuc)
$_SESSION['bilgi'] = "Hata";
else
$_SESSION['bilgi'] = "Doğru";
header("Location: toplama.php");
exit;
?>