Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Istnienie pliku
Forum PHP.pl > Forum > PHP
felixk
Witam, piszę skrypt, którego zadaniam jest wyświetlanie komunikatu gdy dany plik nie istnieje. Problem w tym, że w poniższym kodzie komunikat wyświetla się nawet wtedy gdy plik istnieje. Jak to zmienićquestionmark.gif Z góry dziękuje za pomoc
Kod skryptu:

  1. if ( !file_exists("$strona.php")) { echo ' TEORETYCZNIE DZIAŁA '; }
  2.  
  3. if(!isset($strona)) {
  4. header('Location: www.strona.pl/blad.html');
  5. }
  6. else if
  7. (is_file("$strona.php")) {
  8. include "$strona.php";
  9. }
Ellington
W Twoim skrypcie najpierw sprawdzasz czy plik NIE istnieje, wyrzucasz komentarz przez echo, ale skrypt nadal Ci się wykonuje, mimo że stwierdziłeś, że pliku nie ma.

Poza tym sprawdzasz czy istnieje zmienna $strona, której nie definiowałeś nigdzie.

Poczytaj może o file_exists i o instrukcji warunkowej if. Tak na start.
felixk
Cytat(Ellington @ 1.02.2010, 18:22:55 ) *
W Twoim skrypcie najpierw sprawdzasz czy plik NIE istnieje, wyrzucasz komentarz przez echo, ale skrypt nadal Ci się wykonuje, mimo że stwierdziłeś, że pliku nie ma.

Poza tym sprawdzasz czy istnieje zmienna $strona, której nie definiowałeś nigdzie.

Poczytaj może o file_exists i o instrukcji warunkowej if. Tak na start.


Dobra, ale powiedz mi jak zatrzymać działanie tego warunku w momencie gdy on jest spełniony, bo to w tym jest problem. On działa cały czas a powinien tylko wtedy gdy plik nie istnieje.
Kod
$strona=$_GET["strona"];

    if ( !file_exists("$strona.php")) { echo ' TEORETYCZNIE DZIAŁA '; }
    

    if(!isset($strona)) {
    header('Location: http://www.ostroleka.monar.org/glowna,strona.html');
    }
    else if
        (is_file("$strona.php")) {
            include "$strona.php";
    }

Ellington
Stwierdzasz, że plik nie istnieje, to częstujesz go funkcją die, albo jakimś redirectem - w zależności, co potrzebujesz. Wtedy dalsza część skryptu się nie wykona. Ewentualnie część skryptu, która ma nastąpić po stweirdzeniu, że plik istnieje umieszczasz w else {}.

Kod
if(file_exists('plik.php'))
{
  // jezeli istnieje
}
else
{
  // jezeli nie istnieje
}
felixk
Teraz przekierowuje wszystko. Pomysły??
  1. $strona=$_GET["strona"];
  2.  
  3. if ( !file_exists("$strona.php"))
  4. {
  5. header('Location: www.strona.pl/blad.html');
  6. }
  7. else
  8. {
  9. include "$strona.php";
  10. }
  11.  
  12. if(!isset($strona))
  13. {
  14. header('Location: www.strona.pl/blad.html');
  15. }
TheSnake
  1. $strona = $_GET['strona'];
  2.  
  3. if(empty($strona))
  4. {
  5. header('Location: www.strona.pl/blad.html');
  6. }
  7. else if(!file_exists($strona . '.php'))
  8. {
  9. header('Location: www.strona.pl/blad.html');
  10. }
  11. else
  12. {
  13. include $strona . '.php';
  14. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.