[PHP] include (); en niet bestaande documenten

Pagina: 1
Acties:

  • Palomar
  • Registratie: Februari 2000
  • Niet online
ik maak in een PHP script gebruik van include() om een bestand aan te roepen. Dit bestand bestaat echter niet altijd (als bijv. in mn gastenboek nog geen reacties zijn gepost). In je browser krijg je vervolgens een hoop php-geblaat dat het bestand niet bestaat, inclusion path e.d.. is dit ook te omzeilen door een wat gebruiksvriendelijkere error? Ik heb al met een .htaccess bestand een custum 404 error gemaakt maar die pakt ie niet bij php include..

heeft iemand een idee hoe ik dit oplos?

Verwijderd

niet getest, maar probeer if(!include("blaat.php")) echo "neuh, dit ging niet goed";

  • Palomar
  • Registratie: Februari 2000
  • Niet online
Op maandag 19 november 2001 19:26 schreef Cheatah het volgende:
niet getest, maar probeer if(!include("blaat.php")) echo "neuh, dit ging niet goed";
dat werkt gedeeltelijk, dwz. als het bestand niet bestaat krijg ik eerst die php error (Warning, failed opening..) en daarna de echo 'ging niet goed'.

Hoe zou ik die php error helemaal weg kunnen krijgen :?

  • nrg
  • Registratie: April 2001
  • Laatst online: 07:45

nrg

met n @ ervoor ?
PHP:
1
2
3
<?
if(!@include("blaat")) { echo("helaas"); }
?>

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 13-09 21:26
require "blaat.php";

probeer dattis

Verwijderd

als je het helemaal voordat je iets naar het document hebt geschreven, zou je nog een header kunnen sturen, en dan de page redirecten naar een standaard errorpage.

header("Location:errorpage.html\n");

ipv. echo dus...

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

PHP:
1
2
3
4
5
6
7
8
9
10
<?
if (file_exists("blaat.php"))
{
     include("blaat.php");
}
else
{
     die("Helaas blaat.php bestaat niet");
}
?>
als je het helemaal voordat je iets naar het document hebt geschreven, zou je nog een header kunnen sturen, en dan de page redirecten naar een standaard errorpage.
header("Location:errorpage.html\n");

ipv. echo dus...
Dat is een goed idee maar vergeet dan niet het script te laten afsterven met een die(); of een exit();

Aangezien een het script gewoon blijft door gaan, totdat hij helemaal klaar is!

Programmer - an organism that turns coffee into software.


  • Palomar
  • Registratie: Februari 2000
  • Niet online
ok, bedankt. Denk dat ik zo wel ff verder kom :)

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Je kan ook file_exists gebruiken:
PHP:
1
2
3
4
5
6
7
<?
if(file_exists($filename)){
  include($filename);
}else{
  echo "Baluh, hij bestâet niet!";
}
?>

  • Palomar
  • Registratie: Februari 2000
  • Niet online
alles werkt nu zoals ik het wil. Ik heb het volgende gebruikt:
PHP:
1
2
3
<?
if(!@include("mededelingen.htm")) { echo("Leeg"); }
?>

nogmaals bedankt :)

  • DiveZoner
  • Registratie: Augustus 2001
  • Laatst online: 09-08 17:07
Je kan eventueel ook nog de foutmeldingen uitzetten naar de gebruiker. Dit is zowiezo wel netjes. Beter dat gebruikers een fout opgemaakte pagina zijn dan een php foutmelding met de URL naar je php bestanden en zo. Denk er wel aan om lokaal deze optie niet te gebruiken want het debugt een stuk lastiger zonder foutmeldingen.
PHP:
1
2
3
<?
ini_set ("display_errors", "0");
?>

Sign here: _________________


  • Palomar
  • Registratie: Februari 2000
  • Niet online
Op dinsdag 20 november 2001 13:08 schreef Puffin het volgende:
Je kan eventueel ook nog de foutmeldingen uitzetten naar de gebruiker. Dit is zowiezo wel netjes. Beter dat gebruikers een fout opgemaakte pagina zijn dan een php foutmelding met de URL naar je php bestanden en zo. Denk er wel aan om lokaal deze optie niet te gebruiken want het debugt een stuk lastiger zonder foutmeldingen.
PHP:
1
2
3
<?
ini_set ("display_errors", "0");
?>
goede tip. zal ik onthouden :)
Pagina: 1