Me sa kuptova, ti do që të kalosh disa të dhëna në një formular, pa i parë vizitori. Ka disa mënyra për të bërë këtë gjë.
I. GET/POST
Mënyra e parë është duke i hedhur të dhënat në një fushë të fshehur (hidden) në formular. Nëse formulari përdor metodën GET për të dërguar të dhënat, të gjitha fushat, përfshirë ato të fshehurat, do shfaqen në URL dhe vizitori mund t'i shikojë shumë lehtë. Nëse përdor metodën POST, fushat nuk shfaqen në URL.
Ja një shembull i formularit:
HTML e Formularit
Tani në skriptin test.php do kemi dy fusha, $_REQUEST['fusha'] dhe $_REUEST['fusha_fshehur'].
Metoda POST nuk i shfaq të dhënat në URL, por vizitori mund t'i shikojë ato nëse hap kodin HTML të formularit, ose nëse përndor një program që përgjon/regjistron komunikimet e shfletuesit (IE, Firefox) me serverin.
II. Sesionet
Mënyra tjetër për të shkëmbyer informacion midis disa kërkesave (faqeve) është duke përdorur sesionet (sessions). Sesionet mund t'i mendosh njësoj si kërkesat (requests), por të dhënat e sesioneve ruhen vetëm në server dhe nuk i dergohen vizitorit.
Më poshtë po jap një shembull se si përdoren sesionet. Vizitori do hapë faqen e formularit. Të dhënat do dërgohen tek test.php.
HTML e Formularit - pa fusha të fshehura
test.php do i ruajë të dhënat e formularit sesion ($_SESSION) bashkë me të dhënat shtesë dhe do e drejtojë vizitorin tek faqja test2.php.
test.php
Kodi PHP:
<?php
// session_start duhet të jetë në krye të çdo faqeje që përdor sesionet
session_start();
// ruajme të dhënat e formularit në sesion
$_SESSION['fusha'] = $_REQUEST['fusha'];
// shtojme disa të dhëna të tjera
$_SESSION['fusha_fshehur'] = 'fushe e shtuar ne test.php';
// drejtoje vizitorin tek test2.php
header('Location: test2.php');
?>
test2.php nuk merr të dhëna nga test1.php, por i lexon ato nga sesioni dhe i nxjerr në faqe.
test2.php
Kodi PHP:
<?php
// session_start duhet të jetë në krye të çdo faqeje që përdor sesionet
session_start();
// marrim te dhenat e ruajtura ne sesion
$fusha = $_SESSION['fusha'];
$fusha_fshehur = $_SESSION['fusha_fshehur'];
?>
fusha = <?=$fusha?>
fusha_fshehur = <?=$fusha_fshehur?>
Rezultati
Kodi:
fusha = fusha e formularit
fusha_fshehur = fushe e shtuar ne test.php
Pra, nëpërmjet sesioneve kemi kaluar informacion nga test.php në test2.php pa dijeninë e vizitorit. Ndryshe nga mënyra GET/POST, të dhënat e shtuara në test.php nuk dërgohen tek vizitori dhe ai nuk mund t'i shikojë ato.
Para se të përdorësh sesionet, duhet të lexosh më shumë se si funksionojnë dhe cilat janë avantazhet dhe disavantazhet e tyre. Fillo me faqen php.net dhe ndiq ndonjë guidë në internet për të mësuar më shumë. Sigurisht që mund të pyesësh edhe këtu nëse vazhdon të jesh i paqartë.
Krijoni Kontakt