hodne promennych
26 príspevkov · strana 1 z 2
Archív diskusného fóra
Fórum je uzavreté a slúži iba na čítanie. Niektoré informácie môžu byť zastarané.
-
mam mozna jednoduchy dotaz: jak snadneji posilat hodne promennych mezi strankama? pri prechodu na jinou potrebuji, aby zustaly vsechny promenne zachovany a tenhle styl "neco.php?v1=as&v2=dsdds&...&v45=sdfsf" moc vhodny neni... da se nejak predavat POLE? nebo mam pouzivat cookies? poradte
-
spis sessions...
-
Pouziti sessions je mnohem snazsi i bezpecnejsi. Veskere promenne jsou ulozeny na serveru, staci prenaset jen session ID.
-
aha, uz na to mrkam v manualu, todle bude asi lepsi... nemate odkaz na nejaky "tutorialek" a s nazornymi prikladky?... ;). jinak moc dik
-
Je to velice jednoduche: session_start(); //nastartuje sessions $_SESSION['promenna'] = $promenna; // muzes si ulozit lib. pocet promennych, udaju, atp. Pokud budes chtit obsah vyvolat v jinem souboru, opet: session_start(); $promenna = $_SESSION['promenna']; session_start() musi vyt pouzito pred vystupem, jelikoz posila cookie v http zahlavi
-
vyzkousim... diky!
-
Pokud by nesly ty sessions (neby byl nejaky jiny duvod proc je nepouzit), tak i pole se v URL samozrejme prenaset da, ale musi byt ve specialnim formatu. To se zajisti funkci serialize(), ktera z toho pole udela byte-stream (bitovou reprezentaci toho pole), ktery se da prenest pres GET nebo POST, atd. Na te druhe strance to prectes napr. ze $_GET[] a zavolas na to unserialize() a ono ti to z toho byte-streamu udela zase to pole.
-
toz diky, to se taky celkem hodi... ;)
-
a tedkom este doplnujici otazecka: na netu sessions funguji, jak to ale zprovoznit na localhost?... haze mi to neco jako: >>> Warning: session_start(): open(/tmp\sess_96c08fac8606c8cf3894eafb1fc69f4b, O_RDWR) failed: No such file or directory (2) in e:\web\php\test.php on line 2 Warning: session_start(): Cannot send session cookie - headers already sent by (output started at e:\web\php\test.php:2) in e:\web\php\test.php on line 2 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at e:\web\php\test.php:2) in e:\web\php\test.php on line 2 count not set! <<<, kde "count" je testovana promenna... v php.ini sem se nejdrive pokousel neco nastavit s tmp cestou, ale asi to moc nepomohlo... az sem si vytvoril na "c:" adresar "tmp", tak to tam zaclo vytvaret 0B soubory "sess_xxx..." a na strance jenom vypis vyse zminenych hlasek...
-
Se session jsem ještě nedělal, ale zkusím střílet od pasu: open(/tmp\sess... buď je špatně "/" nebo "\". Předpokládám, že to druhé. Cannot send session cookie - headers already sent ... funkce session_start() musí být volána ještě před odesláním prvního znaku prohlížeči, tedy na začátku skriptu. Ta třetí chyba bude mít stejnou příčinu. Vidím, že volání funkce session_start() máš na druhém řádku. Co máš na prvním?
-
jezz: v php.ini musis napred nastavit adresar na ukladani sessions, je to konkretne direktiva session.save_path. Jeji hodnota je obyvkle neco jako C:\Windows\Temp, ale muze to byt lib. adresar., dale pred prikazem session_start() nesmi predchazet jakykoliv vystup (zadne HTML, ani echo(), ale ani prazdy radek)
-
no jenom pro testovani sem udelal tohle: <? session_start(); $count = $_SESSION['count']; if (!(isset($count))) { echo "count not set!<br>"; } else { echo $count; } $_SESSION['count'] = "xxx"; echo "<a href=".$PHP_SELF.">link-ses</a>"; ?> na wz.cz to funguje presne podle dane logicke struktury (jezz.wz.cz/test.php)... ale diky dial-up connection :/ to nejdrive pisu a zkousim via apache(1.3.28) a mam tu php(4.3.3) a win2000. pravdepodobne bude chyb v nastaveni v php.ini... jinak obcas to vyhodi i tyto chyby (pri spatne nastavenem temp path: "C:/tmp"): >>> Warning: Unknown(): open(/tmp\b\sess_b6a64f083d406930a01ce9b29bcfb7a6, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (1;/tmp) in Unknown on line 0 <<< takze v php.ini mam: session.save_path = "c:\tmp" a vypisuje to ty tri hlasky, ktere jsou nekolik prispevku nazpatek... a pritom se v "c:\tmp" vesele tvori ty prazdne soubory "sess_xxx...xxx", dulezite ale je, ze to funguje tady na wz.cz
-
btw: nevite o nejakem free_web_hostingu s moznosti pouziti https?...
-
jezz: Mas spatne nastavenou cestu session.save_path v php.ini
-
toz dobre, co tam mam ale napsat?
-
ak sa ti tam tvoria tie session subory (sess....), tak by konfiguracia mala byt v poriadku, mozno prava na dany adresar nie su dobre nastavene, skontroluj ci je to povolene pre everybody....
-
pinkynew: Bezi-li Apache jako sluzba, pak je to standardne ucet SYSTEM, a to by melo bejt defaultne OK
-
je to cely divny... :/
-
Sojkovec: hej, to mas pravdu... potom neviem kde moze byt chyba. ked som si nastavoval sessiony, stacilo ich povolit a nastavit save_path a funguje mi to bez problemov... :-|
-
Jo, to me prave taky ..
-
Běží-li Apache jako služba, měl by běžet s minimálními právy.
-
Kit: No a on bezi s maximalnimi :-))
-
Tak to je chyba. Když ho někdo hackne, dostane se do systému. Ještě se dává do chrootovaného prostředí kvůli zvýšení bezpečnosti.
-
Kit: lze to nastavit, ale vychozi nastaveni je opravdu MS_FULL_ACCESS_TO_YOUR_SYSTEM (tm) :)
-
U mne má Apache práva skutečně jen minimální - v default instalaci a funguje. Jak je to možné?