Скачиваний:
8
Добавлен:
27.11.2023
Размер:
2.27 Mб
Скачать

4 Mısal. Formalardıń quramalı ózgeriwshileri

<?php if ($_POST) {     echo '<pre>';     print_r($_POST, true);     echo '</pre>'; } ?> <form action="" method="post"> Ismińiz:  <input type="text" name="personal[name]" /><br /> Email: <input type="text" name="personal[email]" /><br /> Joqarı oqıw ornı: <br />     <select multiple name="university[]">         <option value="tuit">TITU</option>         <option value="ksu">QMU</option>         <option value="nspi">NMPI</option>     </select><br />     <input type="submit" value="Jiberiw" /> </form>

4.5. Cookies

PHP tili cookieslardı RFC6265 standartında kórsetilgendey qollap-quwatlaydı. Cookies – bul brauzerde maǵlıwmatlardı saqlaw hám paydalanıwshılardı identifikatsiyalaw mexanizmi. setcookie() funkciyasin paydalanip cookies di ornatıwıńızǵa boladı. Cookies HTTP-baslamasınıń bólegi bolıp esaplanadı, sonlıqtan setcookie() funkciyası brauzerge maǵlıwmat jibermesten aldın shaqırılıwı kerek. Cookies de saqlanıp atırǵan maǵlıwmatlar sáykes keletuǵın $_COOKIE massivte saqlanadı.

Cookies ornatıw ushın tómendegi sintaksisten paydalanamız:

setcookie ($name [, $value = "" [, $expire = 0 [, $path = "" [, $domain = "" [, $secure = false [, $httponly = false ]]]]]] )

Tórtmúyesh qawsırmanıń ishinde shártli emes parametrler kórsetilgen. Kórip turǵanıńızday, name atributı shártli bolıp esaplanadı – bul cookies tıń atı. Value parametri bolsa cookies tıń mánisi bolıp, qálegen qatar bolıwı múmkin. Expire parametri cookies tıń múddetin belgileydi hám mánis sıpatında Unix waqıt belgisin (1970 jıl 1 yanvardan ótken sekundlar sanın) qabıllaydı. Expire parametrin mısal ushın time()+sekundlar sanı járdeminde belgilewimiz múmkin. Path parametri serverdegi katalogtıń atın kórsetedi, cookies tek usı katalogtan ashılatuǵın boladı. Eger mánis sıpatında '/' berseńiz, cookies domende barlıq kataloglarda isleydi. Domain parametri cookies qaysı domende isleytuǵınıń belgileydi. Secure parametri járdeminde cookies tı tek qorǵalǵan, qáwipsiz HTTPS protokol arqalı jiberiw kerek ekenligin belgileydi. Httponly parametri cookies tı tek http protokol járdeminde alıw múmkinligin belgileydi, sonda JavaScript te onı oqıwǵa ruxsat berilmeydi.

Cookies tiń bir ózgeriwshisine kóplegen mánis ózlestiriw ushın, bul maǵlıwmatlardı massiv sıyaqlı berseńiz boladı. Mısal ushın:

<?php   setcookie("MyCookie[bir]", 'Test 1', time()+3600);   setcookie("MyCookie[eki]", 'Test 2', time()+3600); ?>

Bul kod járdeminde eki cookies jaratıladı. Olardıń múddeti – házirgi waqıttan (time() funkciyası) baslap 1 saat (3600 sekund) dawamında, keynen bul cookie óshiriledi. Biraq siziń skripińizde MyCookies endi bir massiv boladı.

Diqqatıńızdı awdarıń, cookies tı ornatsańız al aldınǵı usı atqa iye cookies tı almastiriladı, eger mánzil yamasa hám domen parıqlanbasa. Tómende internet-dúkándaǵı “sebetshe” (korzina) ushın esaplaǵısh ornatıw ushın kishkene kod bólegi keltirelgen:

5 mısal: setcookie() paydalanıwina mısal

<?php

//cookie órnatılǵan bolsa if (isset($_COOKIE['count'])) {     $count = $_COOKIE['count'] + 1; //bir qosamız } else {

// bolmasa sebetshede 1 dana ónim bar dep esaplaymız     $count = 1; }

//cookie ornatıw setcookie('count', $count, time()+3600); setcookie("Cart[$count]", $item, time()+3600); ?>

Ádette PHP skriptke jiberip atırǵan ózgeriwshilerdi ózgertpeydi. Biraq kórsetip ketiw kerek, PHP ózgeriwshiniń atında noqat belgisi sáykes belgi bolıp esaplanbaydı. Sonıń ushın POST, GET yamasa COOKIE massivlerden kelgen ózgeriwshilerde noqat belgisi bar bolsa, bul belgi astı sızıq (_) belgisine almastırıladı.

Соседние файлы в предмете Программирование для Web