Autor Zpráva
zdenek
Profil
ahoj, mám problém. tentokrát se potýkám s tímto:

mám složju, jejíž obsah mám zobrazen na stránce. když se klikne na jeden z uploadovaných souborů, tak se mi načte znovu. viz toto vlákno, ale nejde mi to. když se zadá adresa například: neco.php?action=history&soubor=neco.txt a poté mám kód
$action = $_GET['action'];

switch($action){
	case history:

		$soubor_name_get = $_GET['soubor'];

		if (!$ukazatel=file_get_contents($soubor_name_get)) {
			echo "Soubor nelze precist!";
		}
else {

	fpassthru($soubor_name_get);

}

		break;

}


kde mám chybu? protože mi to píše: Warning: fpassthru(): supplied argument is not a valid stream resource in /var/www/web6/elposys.eu/elposys.eu/rws/aufnehmen/index.php on line 55

a na řádku 55 je toto:
fpassthru($soubor_name_get);
Tori
Profil
Chybí tam otevření souboru (fopen). Vizte příklad u funkce fpassthru v manuálu.
king26
Profil
Ta chyba ti nic nenapověděla? Ani PHP manuál?

Musíš otevřít soubor.
zdenek
Profil
Tori:
díky za odpověď

když dám před to


$neco = fopen($ukazatel);
fpassthru($neco);


tak mi to zobrazí

Warning: fopen() [function.fopen]: Unable to access zdendadasdasdassda in /var/www/web6/elposys.eu/elposys.eu/rws/aufnehmen/index.php on line 54

Warning: fopen(zdendadasdasdassda) [function.fopen]: failed to open stream: No such file or directory in /var/www/web6/elposys.eu/elposys.eu/rws/aufnehmen/index.php on line 54

Warning: fpassthru(): supplied argument is not a valid stream resource in /var/www/web6/elposys.eu/elposys.eu/rws/aufnehmen/index.php on line 55
king26
Profil
Není nad kvalitní vypisování chyb. Řekl bych, že soubor "zdendadasdasdassda" asi neexistuje, co ty na to?

Navíc by jsi měl otevírat přímo
$soubor_name_get
Tori
Profil
Teď na to znova koukám... proč vlastně čtete ten soubor dvakrát (file_get_contents a fpassthru)? Stačilo by načíst jen jednou do proměnné, a pak podle hodnoty té proměnné buď vypsat její obsah, anebo chybovou hlášku.

PS: Sice jste se na to neptal, ale přidala bych nějakou ochranu, aby se nedalo do $_GET['soubor'] propašovat i relativní cestu (třeba ../hesla-k-databazi.inc), např. basename.
zdenek
Profil
už to funguje. díky všem. :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0