Autor | Zpráva | ||
---|---|---|---|
DJ Profil * |
#1 · Zasláno: 23. 9. 2011, 11:49:42
Ahoj,
snažím se vytvořit trvalé přihlášení uživatelů dle http://php.vrana.cz/trvale-prihlaseni.php. Dle tohoto skriptu by se, pokud uživatel zatrhne políčko "Přihlásit trvale", měly uložit údaje o přihlášení do tabulky users_login se sloupci username a token: if(($_POST['set_cookie'])) { $token = md5(uniqid(mt_rand(),true)); setcookie("permanent_log", "$_SESSION[user_name]:$token", strtotime("+1 month")); mysql_query(" INSERT INTO users_login (username, token) VALUES ($_SESSION[user_name], '$token') "); } Avšak nic se do databáze neuloží, kde by mohla být chyba? (Dodávám, že podmínka if(($_POST['set_cookie'])) je splněna) Předem děkuju za odpovědi. |
||
YoSarin Profil |
#2 · Zasláno: 23. 9. 2011, 13:09:01 · Upravil/a: YoSarin
DJ:
třeba v tom, že $_SESSION['user_name'] není "ouvozovkované": mysql_query('INSERT INTO users_login (username, token) VALUES ("' . $_SESSION['user_name'] .'", "' . $token . '")'); A hlavně: koukej do php error logu, co se tam píše, používej mysql_error pro vypsání chyby v SQL - budeš pak mít o dost jednodušší práci. |
||
okolojdouci Profil * |
#3 · Zasláno: 23. 9. 2011, 13:28:55
DJ:
A taky by mě překvapilo, kdyby takto použité setcookie fungovalo tak, jak si představuješ. Jak pracovat s uvozovkami, viz YoSarin. |
||
DJ Profil * |
#4 · Zasláno: 23. 9. 2011, 13:52:03
YoSarin
už to funguje, díky |
||
DJ Profil * |
#5 · Zasláno: 23. 9. 2011, 13:54:28
okolojdouci:
„A taky by mě překvapilo, kdyby takto použité setcookie fungovalo tak, jak si představuješ. Jak pracovat s uvozovkami, viz YoSarin.“ Proč? S cookies si hraju prvně, takže spíš jen slepě důvěřuju návodu, proto by mě tvůj názor zajímal. |
||
YoSarin Profil |
#6 · Zasláno: 23. 9. 2011, 14:33:22
DJ:
okolojdouci asi narážel na použití $_SESSION[user_name] v řetězci. Ono to funguje, ale je to (IMO) poměrně nepřehledné. Lepší (hezčí) zápis je "{$_SESSION['user_name']}:$token" $_SESSION['user_name'] . ':' . $token |
||
Alphard Profil |
#7 · Zasláno: 23. 9. 2011, 15:29:15 · Upravil/a: Alphard
Pánové, použité uvozovkování klíčů polí v řetězci bylo naprosto správné. Stačí doplnit uvození celého řetězce v kontextu MySQL.
mysql_query(" INSERT INTO users_login (username, token) VALUES ('$_SESSION[user_name]', '$token') "); Uživatelské jméno bych raději escapoval. |
||
YoSarin Profil |
#8 · Zasláno: 23. 9. 2011, 15:44:52
Alphard:
„použité uvozovkování klíčů polí v řetězci bylo naprosto správné“ Ano, to píšu v minulém příspěvku (byť poměrně vágně). A stejně to shledávám nepřehledným (nejsem na to zvyklý). |
||
Časová prodleva: 13 let
|
0