Autor | Zpráva | ||
---|---|---|---|
Ahoj Profil * |
#1 · Zasláno: 26. 8. 2010, 17:43:51
if((!empty($_POST['login']))and(!empty($_POST['password'])) { if(($_POST['login']==='jmeno')and($_POST['password']==='heslo)) { Ahoj, tyto dva řádky - vypisují tuto chybu Parse error: parse error in C:\phpserver\www\prihlaseni.php on line 18 (chyba ukazuje přesně na {, proto píšu oba řádky) kód je použit z minulé diskuse tady na diskusi.JPW.cz, ale tato chyba tam není řešena, jen zmíněna. Děkuji za odpovědi, buď jsem slepej, nebo blbej. :-)) |
||
Joker Profil |
#2 · Zasláno: 26. 8. 2010, 17:46:28
Ahoj:
Viz i zvýraznění kódu zde na diskusi, za === 'heslo chybí ukončení řetězce. |
||
Ahoj Profil * |
#3 · Zasláno: 26. 8. 2010, 17:47:20
Ano, to jsem zkoušel, ale pořád to píše to samé. :-) Nějaký jiný návrh?
|
||
panther Profil |
#4 · Zasláno: 26. 8. 2010, 17:54:31
Ahoj:
spočítej si závorky v první podmínce. |
||
Ahoj Profil * |
#5 · Zasláno: 26. 8. 2010, 17:57:57
if((!empty($_POST['login'])and(!empty($_POST['password'])) ani if((!empty($_POST['login']))and((!empty($_POST['password'])) to nebere... pořád ta samá chyba |
||
Joker Profil |
#6 · Zasláno: 26. 8. 2010, 17:58:58 · Upravil/a: Joker
Ahoj:
„Nějaký jiný návrh?“ Používat editor se zvýrazněním syntaxe a označováním souvisejících závorek. Takové chyby by v něm měly jít poznat na první pohled. edit: ad [#5], ani v jednom není správný počet závorek. if( (!empty($_POST['login']) and (!empty($_POST['password'])) |
||
Ahoj Profil * |
#7 · Zasláno: 26. 8. 2010, 17:59:34
if((!empty($_POST['login']))and((!empty($_POST['password'])) { if(($_POST['login']==='jmeno'))and(($_POST['password']==='heslo')) { pořád nejde, jinak syntaxe zobrazuji, bohužel nevidím stejně nic... |
||
Ahoj Profil * |
#8 · Zasláno: 26. 8. 2010, 18:02:44
to Joker:
opraveno jak si řikal: if( (!empty($_POST['login']) and (!empty($_POST['password'])) { if( ($_POST['login']==='jmeno') and ($_POST['password']==='heslo')) { ale pořád ta samá chyba. :-)) |
||
Joker Profil |
#9 · Zasláno: 26. 8. 2010, 18:06:40
Ahoj:
Moje chyba, na konci chybí ještě jedna uzavírací závorka. Mimochodem, když už je tu napsané kde je problém, snad není takový problém si ty závorky (případně s pomocí editoru) přepočítat, ne jen zkopírovat kód co tu napíšeme a říct „stále nefunguje“. |
||
krteczek_ Profil * |
#10 · Zasláno: 26. 8. 2010, 18:07:53
if((!empty($_POST['login']))and(!empty($_POST['password'])))
{ if(($_POST['login']==='jmeno')and($_POST['password']==='heslo)) { |
||
Ahoj Profil * |
#11 · Zasláno: 26. 8. 2010, 18:13:13
Funguje, díky. :-)
|
||
Ahoj Profil * |
#12 · Zasláno: 26. 8. 2010, 18:30:27
bohužel, je tu ještě chybka a to v tomto kódu, hned vysvětlím jak se chová:
session_regenerate_id(); //nastavíme session, může jich být více a můžeš v nich přenášet třeba jméno přihlášeného... $_SESSION['prihlasen']=1; //a znovunačteme stránku (předpokládám že je to index v kořeni webu header("location: admin.php"); exit; a v admin.php je toto: if((!empty($_SESSION['prihlasen']))and ($_SESSION['prihlasen']===1)) { echo '<p>Jste přihlášen. <a href="index.php?odhlasit">Odhlásit se</a></p>'; } else { header("location: index.php"); } když se přihlásím se špatnými údaji, hodími to předem nastavený else o špatných přístupových údajích, ovšem, když dám dobré - neobjeví se, že jsem dal špatné, proběhne refresh na té samé stránce, takže vlastně to navštíví admin.php a ten tomu dá povel stejnej, jako kdybych neměl povolené SESSION = 1, což je ale blbost, protože jsem se přihlásil a o správnosti údajů jsem přesvědčen, protože jinak to napíše špatné loginy... :-) Takže jde o to, že se to provede, ale v admin.php to vrátí na úvodní stránku, protože se nesplní podmínka, takže nejspíš nepřenáším session, nevíte jak je správně přenášet mezi stránkami? respektive musí být i v admin.php jako skryté položce session_start(), protože když ho tam dám, nemusím být ani přihlášen ani vyplňovat a stejně vidím obsah admin.php snad to pochopíte. :) |
||
Kubi Profil * |
#13 · Zasláno: 26. 8. 2010, 19:22:23
Prosim Vás, mohli byste mi s tim tedy ještě pomoc?
|
||
Tori Profil |
#14 · Zasláno: 26. 8. 2010, 22:04:00
Ahoj:
„respektive musí být i v admin.php jako skryté položce session_start()“ Pokud v admin.php chcete $_SESSION['něco'], tak by tam session_start být mělo. Jakou dobu platnosti session máte nastavenou? A co se má stát, když se odhlašujete - zavolat session_destroy() a/nebo aspoň zrušit proměnnou $_SESSION['prihlasen']? Zkuste si nechat vypsat obsah pole $_SESSION v místě, kde myslíte, že byste určitě měl být odhlášen. |
||
panther Profil |
#15 · Zasláno: 26. 8. 2010, 23:50:22
Tori:
„Pokud v admin.php chcete $_SESSION['něco'], tak by tam session_start být mělo.“ ne mělo, musí. Ahoj: „respektive musí být i v admin.php jako skryté položce session_start()“ musí být všude, kde se sessionami pracuješ. Na každé stránce. Ostatně, na tohle sis odpověděl sám: „[...]protože se nesplní podmínka, takže nejspíš nepřenáším session“. „protože když ho tam dám, nemusím být ani přihlášen ani vyplňovat a stejně vidím obsah admin.php“ to je nějaké divné. Tvůj popis v [#12] je trochu zmatečný, po dvojím čtení to vzdávám. |
||
Tori Profil |
#16 · Zasláno: 27. 8. 2010, 00:38:14
panther:
dík za opravu. ad popis v [#12]: rozuměla jsem tomu takhle: (ale taky nevím, zda správně) :-) - pokud v admin.php nenastartuje session, přesměruje ho to zpět (protože není definováno $_SESSION['prihlasen'] ) - pokud session nastartuje, zobrazí mu to administraci - potud ok. Zároveň se ale do administrace může dostat i když obejde přihlašování a naťuká url admin.php. Takže z nějakého důvodu musí být stále nastaveno $_SESSION['prihlasen'] = 1, třeba proto, že při odhlašování nezruší session. |
||
Časová prodleva: 14 let
|
0