Przetestuj działanie poniższego kodu:
$_COOKIE
przy pierwszym uruchomnieniu,setcookie('ciastko','smaczne'); var_dump($_COOKIE);
Przetestuj działanie poniższego kodu:
define('CIACHO','mojeciasteczko'); if (!setcookie(CIACHO,'dane',time()+10)) echo 'nie moge wysłać ciastka...'; if (isset($_COOKIE[CIACHO])) echo $_COOKIE[CIACHO]; else echo 'brak danych';
Napisz pojedynczy skrypt PHP, który:
zapomnij
: http://..../skrypt.php?zapomnij
).Powyższy mechanizm możesz wykorzystać, aby np. dodać do galerii logowanie użytkownika, tak aby nie trzeba było za każdym razem podawać nazwy użytkownika oraz hasła przy dodawaniu lub usuwaniu obrazków.
Powtórz poprzednie ćwiczenie korzystając z mechanizmu sesji. Możesz wykorzystać poniższy kod.
session_start(); if (isset($_GET['zapomnij'])){ echo 'Zapominam...'; unset($_SESSION['moje']); } else { if (!empty($_SESSION['moje'])) { echo $_SESSION['moje']; } else { $_SESSION['moje']='jest'; } }
Skorzystaj z kodu galeri z poprzednich ćwiczeń, biorąc pod uwagę poniższe wymagania.
1.jpg
, 2.jpg
itd., tak aby można było łatwo wyświetlić obrazki w kolejności dodawania.Podpowiedź: nazwa dodawanego obrazka = ilość plików w katalogu z obrazkami + 1, np.:
$ile=count(glob('*.jpg'));
W poniższym kodzie zastąp wartość KLUCZ unikalną w ramach grupy laboratoryjnej liczbą – możesz użyć identyfikatora użytkownika na serwerze (polecenie id
po zalogowaniu na serwere za pomocą ssh
).
define('KLUCZ',123456); $sem=sem_get(KLUCZ); if ($sem != FALSE) { echo 'Wejscie do sekcji krytycznej<br>'; $start=time(); sem_acquire($sem); echo 'Jestem w sekcji krytycznej<br>'; /* tutaj kod sekcji krytycznej */ sem_release($sem); echo 'Wyjscie z sekcji krytycznej<br>'; echo 'Czas wykoania: '.(time()-$start).'<br>'; } else {echo 'Problemy z semaforem...<br>';}
Działanie w/w kodu możesz przetestować w poniższy sposób:
.php
na serwerze,Dany jest kod:
echo 'Wejscie do sekcji krytycznej<br>'; $start=time(); $fp = fopen('semafor', 'r+'); if (flock($fp, LOCK_EX)) { echo 'Jestem w sekcji krytycznej<br>'; /* tutaj kod sekcji krytycznej */ flock($fp, LOCK_UN); echo 'Wyjscie z sekcji krytycznej<br>'; echo 'Czas wykoania: '.(time()-$start).'<br>'; } else { echo 'Problemy z blokada...<br>';} fclose($fp);
Działanie w/w kodu możesz przetestować w poniższy sposób:
.php
na serwerze,semafor
,