Autor Zpráva
Gix
Profil *
Ahoj,

mám jednoduchý script na kontrolu existence souboru a nemůžu přijít na to kde je chyba.

<?php
// nacteni $zaznam["soubor"] z db

$cesta = 'vykresy/'.$zaznam["soubor"];

echo $cesta;

if (file_exists($cesta)) {
    echo "<a href=\"".$cesta."\">".$zaznam["soubor"]."</a>";
} else {
    echo "Soubor s výkresem neexistuje";
}

?>

V případě že soubor existuje vypíše to vše v pořádku. V případě, že neexistuje vyhodí to "<a href=""></a>" místo hlášky "Soubor s výkresem neexistuje".

Soubor existuje ve složce vykresy/neco.pdf a v db mám "neco.pdf"

Kde dělám chybu? děkuji za rady
Tori
Profil
Gix:
vyhodí to <a href=""></a>“ vs. $cesta = 'vykresy/'.$zaznam["soubor"];

Tomuhle nerozumím - i kdyby z databáze přišel prázdný řetězec (tzn. by se ověřovala existence složky ./vykresy, což by podmínkou prošlo), tak v href nemůže být prázdný řetězec, ale měl by tam pořád zbýt ten název složky. Nepracujete ještě nějak s tou proměnnou mezi řádky 4 a 9, že by se náhodou někde přemazala?
Gix
Profil *
Já to špatně napsal. Ano vyhodí to samozřejmě "<a href="./vykresy/"></a>" s proměnnou jinde než zde nepracuji. Kde by mohla být chyba?
Tori
Profil
Gix:
To je ale správně, to vás jen plete název funkce - ona ověřuje existenci jak souboru, tak složky - např. file_exists('.') vrátí taky true. Použijte místo ní třeba is_file.
Gix
Profil *
Už to funguje :-) Díky moc

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: