Autor | Zpráva | ||
---|---|---|---|
dedMaus Profil * |
#1 · Zasláno: 14. 2. 2011, 08:17:47
Dobré ráno,
mám problém s koláčky. Normálně je zapíšu, jsou v prohlížeči a fungují. Mám je použité pro přihlašovací formulář. Bohužel když vypnu prohlížeč a znovu ho zapnu na té stránce, tak se hned nenačtou a proto musím dát na jiný odkaz na stránce a pak normálně fungují. Nevíte co s tím? $iflogin = $_COOKIE['login']; $ifpass = $_COOKIE['pass']; $ifalias = $_COOKIE['alias']; $sqlifacc = mysql_query("Nějaký select"); $sqlifinfo = mysql_query("Nějaký selec'"); while($arrayifacc = mysql_fetch_array($sqlifacc)) { $login = $arrayifacc['username']; $id = $arrayifacc['id']; } while($arrayifinfo = mysql_fetch_array($sqlifinfo)) { $alias = $arrayifinfo['alias']; } $countifacc = mysql_num_rows($sqlifacc); $countifinfo = mysql_num_rows($sqlifinfo); if($countifacc == 1 AND $countifinfo==1) { $_SESSION['login'] = $login; // Zapíšeme si jeho login, který získáme z MySQL $_SESSION['id'] = $id; // Zapíšeme si jeho id, které získáme z MySQL $_SESSION['alias'] = $alias; // Zapíšeme si jeho nick, který získáme z MySQL } to je můj kód který kontroluje jestli je uživatel přihlášen když vstoupí na web. Toto se vyvolá v headru, který je includován na každé stránce, která má podobu |
||
Luky Profil |
#2 · Zasláno: 14. 2. 2011, 18:51:04
Já si myslím, že po vypnutí prohlížeče se cookies a jiná data mažou (asi záleží na prohlížeči a hlavně jeho nastavení) - nemyslím si, že se tento problém dá nějak vyřešit, teda pokud jde o přihlašování uživatelů na web.
Můj názor, ale třeba to jde a stačí to opatřit jenom dobrým scriptem :D |
||
dedMaus Profil |
#3 · Zasláno: 14. 2. 2011, 18:54:11
Oni se nemažou zůstávají tam, ale tady jde hlavně o to, že pokud to po vypnutí prohlížeče znovu zapnu, tak se to nenačte hned s příchodem na stránku.
|
||
Luky Profil |
#4 · Zasláno: 14. 2. 2011, 19:08:59
Pokud je to v prohlížeči nastavené, tak se cookies nemažou, to je pravda. Ale stejně nevím proč by uživatel na tvé stránce zavíral prohlížeč, zvlášť když tam vyplňuje nějaký formuláře? :D
|
||
dedMaus Profil |
#5 · Zasláno: 14. 2. 2011, 19:51:21
Jak už je napsáno výše, tak to je přihlašovací formulář a z toho je očividně jasné, že to slouží k tomu aby se nemuseli hned potom, jak se dostanou na stránku, znovu přihlašovat.
|
||
Chro Profil |
#6 · Zasláno: 14. 2. 2011, 20:45:27
Jak nastavuješ cookies? Zkus test.
Soubor test.php: <?php if (isset($_COOKIE['test'])) { echo $_COOKIE['test']; } else { setcookie('test', 'COOKIE: Jsem na zivu', time() + 60*60*24*365); echo 'PHP: Cookie uvedena v zivot'; } ?> |
||
dedMaus Profil |
#7 · Zasláno: 14. 2. 2011, 21:36:47
Takže zapisuji coockies...prostě se mi to normal zapíše, ale tady je problém, že jak prostě zapnu ten web tak se hned nespustí ty coockies...až po dalším načtení
$cookielogin = $login; $cookiepass = $sha1pass; setcookie("login", $cookielogin, time()+60*60*24*30); setcookie("pass", $cookiepass, time()+60*60*24*30); setcookie("alias", $alias, time()+60*60*24*30); |
||
Petr__ Profil * |
#8 · Zasláno: 14. 2. 2011, 21:51:55
dedMaus:
„Takže zapisuji coockies...prostě se mi to normal zapíše, ale tady je problém, že jak prostě zapnu ten web tak se hned nespustí ty coockies...až po dalším načtení“ Nedostáváte náhadou nakešovanou stránku? V jakých prohlížečích se vám to tatko chová? |
||
dedMaus Profil |
#9 · Zasláno: 15. 2. 2011, 15:37:49
Petr_:
Dělá mi to jak v chromu, tak i v lišce. Další prohlížeče nepoužívám. Nechápu proč se to tak chová. Mimochodem, zkoušel jsem ten soubor od Chro a normálně mi to funguje hned, i na ostatních stránkách, kde jsem používal cookies mi to normálně funguje. Myslel jsme si, že bude chyba v tom, že ten soubor kde jsou ty cookie je includovan na stránku jako univerzální header, ale bohužel se mi to chová stejně i když to mám pouze na indexu. Nad tím je už jedině mysql_connect. Rád bych Vám to ukázal, ale mám to na localhostu. |
||
Chro Profil |
#10 · Zasláno: 15. 2. 2011, 16:49:25
dedMaus:
Netuším, v čem může být tvůj problém. Ale střelím od boku. Zkus nastavovat cookie s platností pro celou doménu , tzn. cestu (lomítko jako 4. argument funkce), příklad: setcookie('login', $cookielogin, time() + 60*60*24*30, '/'); Pokud se nenastaví cesta, platí cookie pro adresář, ve kterém skript cookie nastavil, případně podadresáře daného adresáře. |
||
Petr__ Profil * |
#11 · Zasláno: 15. 2. 2011, 17:14:00
dedMaus:
Nemáte před tím setcookie nějaký (jakýkoliv) výstup? Nesmí tam před tím být žádný HTML kód, ani mezera, prázdné řádky, cokoliv, prostě nic. Taky tam můžete mít vložený BOM. Pokud vám funguje ten čistý soubor od Chro, tak máte chybu někde u sebe. |
||
Tori Profil |
#12 · Zasláno: 15. 2. 2011, 18:23:39
dedMaus:
„Takže zapisuji coockies...prostě se mi to normal zapíše, ale tady je problém, že jak prostě zapnu ten web tak se hned nespustí ty coockies...až po dalším načtení“ Funkce setcookie odešle cookie prohlížeči. Ta samá cookie se ale objeví v poli $_COOKIE až při dalším požadavku (stránce). Pokud používáte něco jako: setcookie('prihlasen', 1, time()+60*60*24*30, '/'); if ($_COOKIE['prihlasen']) { ....... Pomohlo by paralelně odesílat koláčky prohlížeči i ukládat do $_COOKIE ? |
||
dedMaus Profil |
#13 · Zasláno: 15. 2. 2011, 20:25:22
Krása...Díky moc pánové. Ten 4. parametr pomohl a teď to šlape perfektně. Znova mnohokrát všem děkuji za pomoc. Škoda, že se nedá dávat plusko na fóru :D
|
||
Časová prodleva: 13 let
|
0