Autor | Zpráva | ||
---|---|---|---|
matthew Profil |
#1 · Zasláno: 10. 1. 2008, 21:39:12
Doma na localhostu mi to jede, ale na webzdarma nikoliv.
Jiné cookies mi na webzdarma ale jedou... Čím to je, že mi nefunguje tento skript? <?php include('config.php'); for($i=1; isset($login[$i]); $i++){ if ($login[$i] == $_POST['login'] && $heslo[$i] == $_POST['heslo']) { Setcookie("login",$login[$i],time() + 86400); Setcookie("heslo",$heslo[$i],time() + 86400); } } header("Location: administrace.php"); ?> config.php: <?php $login[1] = 'admin'; $heslo[1] = 'superheslo'; $login[2] = 'meno2'; $heslo[2] = 'heslo2'; ?> |
||
Joker Profil |
#2 · Zasláno: 10. 1. 2008, 21:40:45
Čím to je, že mi nefunguje tento skript?
Je to rozbitý. Co znamená "nefunguje"? |
||
matthew Profil |
#3 · Zasláno: 10. 1. 2008, 21:43:01
Ty cookies jakoby se vubec nezapsaly...
|
||
tiso Profil |
#4 · Zasláno: 10. 1. 2008, 22:47:10
1. ukladať do COOKIE meno a heslo nie je práve najbezpečnejšie...
2. 4-tý parameter pre COOKIE je cesta, nemáš náhodou skript pre logovanie mimo rootu? 3. pri presmerovaní sa podľa normy má používať absolútna adresa |
||
Leo Profil |
#5 · Zasláno: 10. 1. 2008, 23:27:08
"Ty cookies jakoby se vubec nezapsaly..."
A co kouknout se treba na http komunikaci klient-server (pro Firefox napr. Live HTTP Headers), Leo |
||
matthew Profil |
#6 · Zasláno: 11. 1. 2008, 15:57:37
1. ukladať do COOKIE meno a heslo nie je práve najbezpečnejšie...
Já vím, ale jak to udělat jinak? Poraď... 2. 4-tý parameter pre COOKIE je cesta, nemáš náhodou skript pre logovanie mimo rootu? Mám to v /admin/prihlasovani.php setcookie("login",$login[$i],time() + 60*60,"/admin"); To taky nefunguje... :-( 3. pri presmerovaní sa podľa normy má používať absolútna adresa header("Location: http://nazevwebu.borec.cz/admin/administrace.php"); Tohle? A proč? |
||
matthew Profil |
#7 · Zasláno: 11. 1. 2008, 18:34:43
Když to dám do rootu, stejně to nefunguje...
Ale jak je možné, že u mě na localhostu to funguje, a na webzdarma ne??? :-O :-( :-/ |
||
Jack Finger Profil |
#8 · Zasláno: 11. 1. 2008, 19:31:20
setcookie("login",$login[$i],time() + 60*60,"/admin");
nejsem si jistej, ale když dáš na začátek cesty znak / , nebere se to od úplně nejvyššího adresáře? tzn, že to je nějakej tam /home/ftp/ic.cz/domena/admin..... nebo něco takového.... nebo se mýlím? |
||
matthew Profil |
#9 · Zasláno: 11. 1. 2008, 20:49:02
asi jo, a jak to zjistim?
|
||
Jack Finger Profil |
#10 · Zasláno: 11. 1. 2008, 21:07:37
echo $_SERVER['DOCUMENT_ROOT'];
nebo nějak tak, use google, nebo phpinfo() |
||
Leo Profil |
#11 · Zasláno: 11. 1. 2008, 21:21:02
Rekl bych, ze / jako cesta se vztahuje ke korenovemu adresari DOMENY, ne souboroveho systemu serveru. Uz jste se koukal na tu http komunikaci nebo to porad delate jako kdyz slepy chirurg operuje slepe strevo? Leo
|
||
Jack Finger Profil |
#12 · Zasláno: 12. 1. 2008, 09:21:33
Leo
aha, díky za upřesnění. |
||
matthew Profil |
#13 · Zasláno: 12. 1. 2008, 10:45:31
to Leo:
Na komukinaci sem koukal, a nic... Ale už vím v čem je problém! include('config.php'); if ($login[$i] == $_POST['login'] && $heslo[$i] == $_POST['heslo']) Když vypíšu echo $login[1]; Vypíše to pouze první písmeno!!! A tak se nesplní podmínka, a cookie se nezapíše! Ale u mě na localhostu to funguje... nevíte čím to může být? |
||
matthew Profil |
#14 · Zasláno: 12. 1. 2008, 11:27:41
Po pár hodinách testování se mi to konečně podařilo!
Ani nevím jak... Nechápu to, ale když se pole jmenuje login nebo heslo, tak se vypisuje jen 1. písmeno... Pojmenoval jsem to log a pass, a všechno funguje... :-) |
||
bukaj Profil |
#15 · Zasláno: 12. 1. 2008, 11:28:51
matthew
Když vypíšu echo $login[1]; Vypíše to pouze první písmeno!!! Není třebas $login řetězec? A co if ($login == $_POST['login']...? |
||
Leo Profil |
#16 · Zasláno: 12. 1. 2008, 12:24:07
Pokud mate zapnute register globals pak neni dobry napad pojmenovat stejne ($login) globalni promennou i cookie (nebo session promennou). Zkuste pro nazev cookie (prvni parametr v setcookie) neco jineho nez login, Leo
|
||
Časová prodleva: 16 let
|
0