⊗ppPmSsFr 322 of 447 menu

Sessioonid ja vormid PHP-s

Oletame, et meil on kaks PHP faili. Paneme faili test1.php vormi, mis küsib kasutajalt kahte numbrit:

<form method="GET"> <input name="num1"> <input name="num2"> <input type="submit"> </form>

Samasse faili paneme vormi töötlemise koodi. Selles koodis kirjutame sisendite andmed sessiooni:

<?php session_start(); if (!empty($_GET)) { $_SESSION['num1'] = $_GET['num1']; $_SESSION['num2'] = $_GET['num2']; } ?>

Oluline nüanss: failis peab vormi töötlemise kood olema enne vormi ennast. Miks: sest selles koodis töötame sessiooniga ja see tähendab, et enne seda ei tohiks olla mingit väljundit ekraanile.

Leiame nüüd failis test2.php sessioonis salvestatud numbrite summa:

<?php if (!empty($_SESSION)) { echo $_SESSION['num1'] + $_SESSION['num2']; } ?>

Millises järjestuses peaks see kõik töötama? Kõigepealt läheb kasutaja lehele test1.php, täidab vormi ja vajutab nuppu. Pärast seda satub ta jälle lehele test1.php, kuid nüüd juba saadetud vormiandmetega. Sel juhul satub ta tingimusesse, milles kirjutame vormi andmed sessiooni.

Seejärel peaks kasutaja käsitsi minema lehele test2.php - ja seal näeb ta sisestatud numbrite summa.

Võite küsida: miks nii keeruliseks minna? La vormi oleks võinud kohe saata lehele test2.php. Asi on selles, et antud juhul on mugavus selles, et vorm ise ja selle töötlemise kood asuvad ühel lehel. See muidugi pole alati mugav, kuid mõnikord on seda vaja.

Ühel lehel küsige vormi abil kasutajalt perekonnanimi, eesnimi ja vanus. Kirjutage need andmed sessiooni. Teisele lehele minnes kuvage need andmed ekraanil.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu