Diskuze: php nový záznam do pole
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
A co kutíš, nebyla by lepší databáze? Do session můžeš uložit přeci cokoli, tedy i pole a potom to do děj přidávat, PHP má něco jako array_append nebo to snad jde i jako $pole[] = ... (teď si nejsem jistý).
dělám takovou malou osobní galerii takže databáze by lepší určitě
byla. Když už bych se do ní pouštěl tak by bylo záhodno tu galerii
předělat na "databázovou" tzn.: většinu předělat. Jelikož to mám skoro
hotový a přál bych si to už dodělat, tak jsem se uchýlil k uložení dat
do pole.( Na databázový systém to předělám určitě někdy v budoucnu.) No
ale k problému... Nemám problém uložit něco do sessions, špatně si mě
pochopil, nebo spíše jsem se blbě vyjádřil
Pokud uložím hned pole do sessions a budu do něj přidávat další záznamy
tak mi v tom poli ty záznamy vydrží jen do zavření prohlížeče... Já
potřebuji aby tam byli furt. Tzn. ukládat řetězce s jejich indexy do pole a
až pak jako výsledné pole "vložit" do sessions (pro dostupnost všude). Než
jsem sem psal udělal jsem tohle:
if(!isset($_SESSION["zaznam_jmen"])) {
$_SESSION["zaznam_jmen"] = array();
}
$name_s_diakritikou = ucfirst($_POST["name_kategory"]);
$name_bez_diakritiky = bez_DK($_POST["name_kategory"]);
$_SESSION["zaznam_jmen"][$name_bez_diakritiky] = $name_s_diakritikou;
// výpis hodnoty pole
echo "<li><a href=\"index.php?gal=$nazev\">".$_SESSION['zaznam_jmen'][$nazev]."</a></li>";
teď to funguje ale právě jen do doby než zavřu prohlížeč, což je jasný...
V kódu prvního příspěvku jsem se to snažil udělat tak aby data v poli zůstala "furt". Výsledkem ale bylo že se data neustále v poli přepisovala... Právě s tímhle si nevím rady, nechápu proč se přepisují...
Session je vázána na jednotlivé uživatele a po zavření prohlížeče o relaci přijdeš, takhle prostě funguje, nic s tím nenaděláš. Není to nějaké globální pole na serveru, je to pole pro jednu otevřenou relaci s jedním uživatelem a jeho prihlížečem, který když zavře, zmizí.
Session je dočasná proměnná (resp. pole), která je určena k dočasnému uchování informace o přihlášeném uživateli. Její životnost je obvykle nastavena na 25 minut, ale je možné ji zkrátit.
Na ukládání permanentních dat se vůbec nehodí už kvůli tomu, že každý návštěvník má svou vlastní session. Obvykle se do ní ukládá jen číslo přihlášeného uživatele plus nějaká ochrana proti odcizení.
Permanentní data patří do databáze.
Zobrazeno 5 zpráv z 5.