Autor Zpráva
Anonymní
Profil *
Ahoj, prosím o radu, co s následujícím problémem:

tady je kousek webové stránky:

</head>

<body>
<?php include ("./hlavicka.php");?>
<hr>
<?php include(ZobrazMenu());?>
<hr>
<?php include(ZobrazFormular());?>


a před ní je tenhle kód:
///////////////////////////////////////
// pokud je přihlášen uživatel, zobrazí menu, pokud není přihlášen, zobrazí přihl.formulář

function ZobrazMenu(){

if($_SESSION["jmeno"]=="nepřihlášen"){
$zobrazMenu = "prihl_form.php";
} else {
$zobrazMenu = "menu.php";
}
return $zobrazMenu;
}
///////////////////////////////////////
//zobrazí v závislosti na "rozcestniku" buď přímo výsledek nebo další form na zadání parametrů
function ZobrazFormular(){
switch ($_SESSION["rozcestnik"]){
case "Zobrazit vše":{
$navrat = "zobrazit_vse.php";
break;
}
case "Najít kontakt":{
$navrat = "najit_kontakt.php";
break;
}
case "Upravit kontakt":{
$navrat = "upravit_kontakt.php";
break;
}
case "Smazat kontakt":{
$navrat = "smazat_kontakt.php";
break;
}
case "Přidat kontakt":{
$navrat = "pridat_kontakt.php";
break;
}
}
return $navrat;
}
///////////////////////////////////////


a hlásí mi to tuhle chybku:
Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.') in /DISK3/WWW/modrydrak.com/www/pokus/index.php on line 106
předem díky, pokud se v tom někdo vyzná ....
Anonymní
Profil *
... jo, to jsem ještě já :), zapomněl jsem napsat, že na localhostu mi to funguje a na pipni mi to nefunguje: skoukněte zde...
Anonymní
Profil *
...jo, přihlašovací jméno je "karel" :D
havs
Profil
ten switch by asi měl mít pod posledním case nějaký default - výchozí stránku, nebo nějaký text:

switch ($_SESSION["rozcestnik"]){
// ......
default: $navrat = "uvod.php"; break;
}
Karaya1
Profil *
Ještě by se hodilo říct, který řádek je číslo 106...

Už tak od pohledu se mi ale vůbec nelíbí include(ZobrazMenu()); a include(ZobrazFormular());. Aneb co nám říká manuál?
»The include() statement includes and evaluates the specified file.«
Z toho nám plyne, že dávat jako parametr fce include() funkci je nesmysl.
Anonymní
Profil *
to: havs
no, já myslím, že tam default být nemusí.

to: Karaya1
jak říkám, na localhostu mi to funguje, výstup z té fce na např. řetězec "menu.php"... no dalo by se to udělat třeba takhle:

<?php $neco = ZobrazMenu(); include("$neco");?>

takhle by to bylo OK?
Anonymní
Profil *
to havs
částečná omluva: pro funkčnost té samotné funce default větev být nemusí, pro funkčnost mého skriptu ano. Totiž v případě, že ještě nebyla naplněna proměnná $rozcestnik, vracela
fce prázdný řetězec a vce include() se snažila načíst soubot '' (prázdný řetězec) :D

to Karaya1:
include (ZobrazFormular()) bez problémů funguje.

jinak děkuji všem,

K.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0