Switch...Case probléma?!
Sziasztok!
Adott a következő switch-case szerkezet:
switch( $_GET["oldal"] ) {
case "fooldal":
{
Fooldal();
break;
}
case "leker":
{
Leker( $_GET["melyik"] );
break;
}
case "admin":
{
header("Location: html/fv_admin_login.php");
break;
}
}
Működik minden, csak az admin blokk nem... Beírom a böngészőmbe, hogy index.php?oldal=admin, és nem irányít át. Csináltam egy másik php-t, amiben csak a header szerepel, az minden gond nélkül elvégzi a dolgát.
Mi lehet a probléma??
(PHP/4.3.4)
Előre is köszi!
■ Adott a következő switch-case szerkezet:
switch( $_GET["oldal"] ) {
case "fooldal":
{
Fooldal();
break;
}
case "leker":
{
Leker( $_GET["melyik"] );
break;
}
case "admin":
{
header("Location: html/fv_admin_login.php");
break;
}
}
Működik minden, csak az admin blokk nem... Beírom a böngészőmbe, hogy index.php?oldal=admin, és nem irányít át. Csináltam egy másik php-t, amiben csak a header szerepel, az minden gond nélkül elvégzi a dolgát.
Mi lehet a probléma??
(PHP/4.3.4)
Előre is köszi!
Tartalom
Mert a header csak akkor fog működni, ha előtte semmilyen tartalmat nem iratsz ki.
Miért rakod a case elemeit {}-be? nekem így, főleg, hogy nem használtad a colorer elemet a tartalmad beküldésénél nem tűnik áttekinthetőnek, és egyébként is felesleges.
--------
Poetro
De igen, irattatok ki
Akkor azért nem működik
"Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP."
Azt hiszem VBala által
Nem fog menni a
Az a lényeg hogy a programon belül legfelül legyen a header();
Pontosabban szólva SEMMILYEN a kliensnek küldött kimenet ne legyen előtte, még az include()-al beépített állományokban sem!!!!!
Ha nem lehet így megoldani, ami a program struktúrális hibájára utal, akkor javaslom tetézd még egy oltári primitív megoldással:
case "admin":
echo("<script> document.location.href=\"html/fv_admin_login.php\"; </script>");
break;
Ez egy javascript, és ha ki van kapcsolva a kliens böngészőjébe, akkor nem fog működni... de még mindig jobb, mint az alábbi gondolom ismerős üzenet:
"Cannot add header information - headers already sent by (output .......)"
PPS
Nem akar menni sehogy, eddig
Tudsz esetleg valami megoldást? a JavaScripten kívül...
Ha nem akarsz header()-t