Autor Zpráva
Ahoj
Profil *
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
Ahoj:
Viz i zvýraznění kódu zde na diskusi, za === 'heslo chybí ukončení řetězce.
Ahoj
Profil *
Ano, to jsem zkoušel, ale pořád to píše to samé. :-) Nějaký jiný návrh?
panther
Profil
Ahoj:
spočítej si závorky v první podmínce.
Ahoj
Profil *
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
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 *
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 *
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
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 *
if((!empty($_POST['login']))and(!empty($_POST['password'])))

{

if(($_POST['login']==='jmeno')and($_POST['password']==='heslo))

{
Ahoj
Profil *
Funguje, díky. :-)
Ahoj
Profil *
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 *
Prosim Vás, mohli byste mi s tim tedy ještě pomoc?
Tori
Profil
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
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0