Autor Zpráva
Jarko
Profil *
ahoj, mam takovou podminku..

if (empty($_GET['page'])) {
...
echo "script 1";
...
} elseif (file_exists($file)) {
...
echo "script 2";
...
} else {
...
echo "script 3";
...
}

do ktere nemuzu zaclenit jeste jednu podminku.
Jedna se o to, ze potrebuji vypsat "script 3",
a to vzdy kdyz existuje $_SESSION['error'].

samostatne to takhle funguje ale chtel bych to dat do jedne a to je snad nemozne


if(!empty($_SESSION['error'])){
...
echo "script 3";
...
}


diky za pomoc
Majkl578
Profil
if (empty($_GET['page'])) {
...
echo "script 1";
...
} elseif (file_exists($file)) {
...
echo "script 2";
...
} elseif (!empty($_SESSION['error'])) {
...
echo "script 3";
...
} else {
//script 4?
}
AM_
Profil
Jo, ale to musíš vysvětlit, jakou prioritu to má. Předpokládám, že vyšší, než GET požadavek na stránku, takže to musíš dosadit na první místo.
Majkl578
Profil
AM_
vzdyt to vysvetlil

Jedna se o to, ze potrebuji vypsat "script 3",
a to vzdy kdyz existuje $_SESSION['error'].
AM_
Profil
Majkl578
To asi přesně nebude ono, protože předpokládám, že $_SESSION['error'] se vyplní, když při předchozím načtení došlo k nějaké chybě. A pak by muselo být zároveň splněno, že URL odkazuje na neexistující stránku, což není moc logické.
Majkl578
Profil
AM_
soude dle toho, ze se ma vypisovat "script 3", ktery je jiz uvedeny v else, jsem dosadil podminku tak, aby se pri splneni vypsalo "script 3" tak, jak je v te oddelene podmince. :)
Jarko
Profil *
ahoj,

pokazde kdyz neexistuje $_GET['page'] vypsat echo "script 1";

pokazde kdyz existuje file_exists($file) a neexistuje $_SESSION['error'] tak vypsat echo "script 2";


diky
Jarko
Profil *
doplneni
jinak vypsat echo "script 3";
Jarko
Profil *
podle me by tohle melo byt spolu v jednom elseif..

} elseif (file_exists($file) AND (empty($_SESSION['error'])) {

ale to prave zlobi..
Majkl578
Profil
mas tam o ( vic, pred empty :)
AM_
Profil
Aha, musíš "doslova" zapsat do kódu to, co říkáš:
if (empty($_GET['page'])) { 
... 
echo "script 1";
... 
} elseif (file_exists($file) && !isset($_SESSION['error'])) { 
... 
echo "script 2"; 
... 
} else { 
... 
echo "script 3"; 
... 
}
Jarko
Profil *
Porad to stejny, proste $_SESSION['error'] existuje ale script 3 se neprovede..
Majkl578
Profil
AM_
Jarko
protoze je negace pred isset, popr neni negace pred empty
AM_
Profil
Pokud máš ve skriptu přesně tohle, existuje ti $_SESSION['error'] a provede se "script 2", tak je to zřejmě něco mezi nebem a zemí.
Jarko
Profil *
jeste je tady vypis jak to vypada

[error] => 1

ale to by melo byt ok
Jarko
Profil *
AM_
Jarko
protoze je negace pred isset, popr neni negace pred empty
no a co s tim?

Pokud máš ve skriptu přesně tohle, existuje ti $_SESSION['error'] a provede se "script 2", tak je to zřejmě něco mezi nebem a zemí.
ano provadi se porad script 2
AM_
Profil
Majkl578
Ta negace je tam naprosto správně, Jarko chce provést script 2, pokud soubor existuje a NEexistuje session error
Předpokládám, že pokud není zadán $_GET['page'], chce zobrazit nějakou úvodní stránku (script 1), pokud je zadán a odkazovaný soubor existuje a nedošlo k chybě (doufám, že tam někde správně tvoří proměnnou $file), zobrazí nějakou sekci (script 2), pokud došlo k chybě nebo odkazovaná sekce neexistuje, zobrazí skript 3. Je to tak?
Jarko
Profil *
Majkl578
Ta negace je tam naprosto správně, Jarko chce provést script 2, pokud soubor existuje a NEexistuje session error
Předpokládám, že pokud není zadán $_GET['page'], chce zobrazit nějakou úvodní stránku (script 1), pokud je zadán a odkazovaný soubor existuje a nedošlo k chybě (doufám, že tam někde správně tvoří proměnnou $file), zobrazí nějakou sekci (script 2), pokud došlo k chybě nebo odkazovaná sekce neexistuje, zobrazí skript 3. Je to tak?
je to presne tak.. bez te kontroly session to chodi bez problemu.. i kdyz jsou ty podminky oddelene viz 1 prispevek.. ale spolu to proste nejde..
AM_
Profil
Zkus pastnout celý kód, chyba bude jinde.
Jarko
Profil *
Zkus pastnout celý kód, chyba bude jinde.
no ono neni co pastnout :-( vcera jsem to zacal resit a narazil jsem na tento problem, tak ze tohle je jen ve fazi testovani, neni tam nic krome toho co jsem poslal a vypadat to bude jak psal Majkl578 teda pokud se mi to podari.. zadne nacitani souboru tam zatim nemam.. jen ty echa..
AM_
Profil
Myslíš jak jsem psal já 18:53?
Chyba musí být opravdu jinde, pokud máš $_SESSION['error'] == 1, nemůže to projít podmínkou !isset($_SESSION['error']). Nebo něco špatně říkáš.
Jarko
Profil *
Myslíš jak jsem psal já 18:53?
Chyba musí být opravdu jinde, pokud máš $_SESSION['error'] == 1, nemůže to projít podmínkou !isset($_SESSION['error']). Nebo něco špatně říkáš.

Jejda, omlovam se! to jsi psal ty, ne Majkl578.. promin ;) uklepl jsem se..
mam to ted takto, ale vysledek je porad stejny.. fakt nevim, nechapu to..

kdyz existuje promenna page a existuje soubor a session error se nerovna 1 tak se provede script 2
kdyz existuje promenna page a existuje soubor a session error se rovna 1 tak se taky provede script 2

if (empty($_GET['page'])) {
echo "script 1";
} elseif (file_exists($file) and ($_SESSION['error']!=1)) {
echo "script 2";
} else {
echo "script 3";
}
Jarko
Profil *
Nechal bych to i takhle, jelikoz to takhle funguje OK, jenze v tomto pripade se ten "script 3" pak zbytecne zpracovava 2x

if (empty($_GET['page'])) { echo "script 1"; }
elseif (file_exists($file)) { echo "script 2"; }
else { echo "script 3"; }

if(!empty($_SESSION['error'])){ echo "script 3"; }
Jarko
Profil *
oprava uz jsem uplne dopleteny, ne 2x ale script 2 se provede zbytecne kdyz neni potreba, kdyz existuje $_SESSION['error'] tak se ma provest jen script 3..
AM_
Profil
a kde třeba plníš proměnnou $file ? Ukaž CELÝ skript.
Jarko
Profil *
a kde třeba plníš proměnnou $file ? Ukaž CELÝ skript.

promenou $file plnim jen testovacim suborem hned nad prvni podminkou..

$file = dirname(__FILE__)."/".$_GET['page'].".php";

if (empty($_GET['page'])) { echo "script 1"; }
elseif (file_exists($file)) { echo "script 2"; }
else { echo "script 3"; }

if(!empty($_SESSION['error'])){ echo "script 3"; }
Jarko
Profil *
a uplne nahore mam jeste

<?php
session_start();
$_SESSION['error'] = true;
AM_
Profil
Pastni úplně celý soubor (s tou variantou, která ti nefunguje, je na nic posílat skript, který funguje).
fuckin
Profil *
a proc to musi byt vsechno v jedne podmince? Co takhle to rozdelit do samostatnych podminek?
Jinak jak se na to divam tak ten script je v poradku, problem bude jinde...
AM_
Profil
a proc to musi byt vsechno v jedne podmince?
Zřejmě proto, aby si program zachoval požadovanou logiku. Spíš nevidím důvod to dělit na více podmínek.

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: