Php sayfaları arasında POST veya GET metoduyla gelen değerleri veya sayfa içindeki dizi veya nesnelerin alt elemanlarıyla beraber değerlerini taşımak için aşağıdaki yöntemi kullanabilirsiniz.
form.html // Form verilerinin POST metodu ile gönderileceği form sayfası.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Form</title> </head> <body> <form action="islem1.php" method="POST"> Adı : <input type="text" name="adi" size="30"><br> Soyadı : <input type="text" name="soyadi" size="30"><br> Email : <input type="text" name="email" size="50"><br> Telefon : <input type="text" name="Telefon" size="30"><br> Şehir : <select name="sehir"> <option>İstanbul</option> <option>Ankara</option> <option>İzmir</option> </select><br> <input type="submit" value="Gönder"> </form> </body> </html>
islem1.php //Formdan POST metoduyla gelen değerler islem2.php dosyasına aktarılacak.
<? $param=base64_encode(serialize($_POST)); $link = 'islem2.php?data='.$param; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>1. Adım</title> </head> <body> <a href="<?=$link?>">2. Adıma Geç</a> </body> </html>
Burada form verilerini aktarmak için php’nin serialize ve base64_encode fonksiyonlarını kullanıyoruz. Serialize fonksiyonu bir değişken(dizi veya nesne) içindeki değerleri string’e dönüştürür. base64_encode fonksiyonu ise verilen değeri 64 bit olarak şifreler ve yine string bir değer oluşturur. Oluşturduğumuz bu string değeri sayfalar arasında taşımak, formdaki her bir değeri ayrı ayrı yazıp taşımaktan daha kolaydır. Hatta bazı durumlarda değişkenlerde değişebileceği için bu yöntem daha sağlıklı olacaktır.
<? $renk[0]='mavi'; $renk[1]='kırmızı'; $renk[2]='yeşil'; $data = serialize($renk); echo $data; //a:3:{i:0;s:4:"mavi";i:1;s:10:"kırmızı";i:2;s:6:"yeşil";} $data=base64_encode($data); echo $data; //YTozOntpOjA7czo0OiJtYXZpIjtpOjE7czoxMDoia8Sxcm3EsXrEsSI7aToyO3M6NjoieWXFn2lsIjt9 ?>
islem2.php //islem1.php sayfasındaki form değerleri bu sayfaya aktarıldı.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>2. Adım</title> </head> <body> <? if(isset($_GET['data'])) { $_POST=unserialize(base64_decode($_GET['data'])); echo 'Adı : '.$_POST['adi'].'<br>'; echo 'Soyadı : '.$_POST['soyadi'].'<br>'; echo 'Email : '.$_POST['email'].'<br>'; echo 'Şehir : '.$_POST['sehir'].'<br>'; } ?> </body> </html>
islem1.php dosyasından aktarılan değerleri yeniden kullanabilmemiz için yaptığımız işlemlerin tersini gerçekleştirmemiz gerekiyor. base64_encode ile şifrelediğimiz veriyi base64_decode fonksiyonu ile dönüştürüyoruz. serialize ile string hale dönüştürdüğümüz verieri de unserialize ile dönüştürüyoruz. Artık değişkenlerimizi sayfa içerisinde kullanabiliriz.



Son Yorumlar