Pagina 1 van 1

ik snap het ni sorry ....

Geplaatst: 11 jun 2003, 17:02
door Erik
hallo,

ik snap niet waar dit php scriptje niet redirect wanneer ik dat wil ....

Code: Selecteer alles

<?php

$html_401 = "http://www.yourdomain.com/401.html";
$html_403 = "http://www.yourdomain/403.html";
$html_404 = "http://www.yourdomain.com/404.html";
$html_500 = "http://www.yourdomain/500.html";
$mail = 1; 
$to = '[email protected]';
$subject= "Error on your website";
$body = "";
$url =getenv("HTTP_REFERER");
$ip=getenv("REMOTE_ADDR");

if(!isset($error)|| empty($error)) {
	$error="";
}
if(!isset($page) || empty($page)){
	$page="";
}

if($QUERY_STRING == '401'){
    $body="there is a 401 error on your website $url $ip ";
	$error="401";
	$page="$html_401";
    Header("Location:error.php?error=$error&page=$page");
}
if($QUERY_STRING == '403'){
    $body="there is a 403 forbidden error on your website $url $ip ";
	$error="403";
	$page="$html_403";
    Header("Location:error.php?error=$error&page=$page");
}
if($QUERY_STRING == '404'){
    $body="there is a 404 not found error on your website $url $ip ";
	$error="404";
	$page="$html_404";
    Header("Location:error.php?error=$error&page=$page");
}
if($QUERY_STRING == '500'){
    $body="there is a 500 internal server error on your website $url $ip ";
	$error="500";
	$page="$html_500";
    Header("Location:error.php?error=$error&page=$page");
}
else{
    print "there has been an unknown error !!!!";
}
if($mail ==1){
    mail("$to","$subject","$body","$ip");
}
?>
dus om dat ding te testen typ ik erik.userbase.be/zever (404 error ) maar ik krijg altijd "there has been an unknown error" terwijl hij naar 404.php moet redirecten in een .htaccess heb ik staan

Errordocument 404 http://erik.userbase.be/error.php?error=404

ik snap het niet :-(

of moet je nu $_SERVER['QUERY_STRING'] gebruiken ??

Geplaatst: 11 jun 2003, 17:09
door airzimmy
ik denk dat ik te lang aan het werk ben vandaag :)

Er wordt geen gebruik gemaakt van $_GET en misschien staan register_global_vars af. Nu ja ik zou het rap zelf schrijven Erik ;)

Geplaatst: 11 jun 2003, 17:35
door meon
$ip=getenv("REMOTE_ADDR"); is tegenwoordig

Code: Selecteer alles

$ip = $_ENV['REMOTE_ADDR']
Zelfde verhaal voor $url =getenv("HTTP_REFERER");
Is het voorbeeldje van op PHP.net zie ik :-)

Gebruik overal eens superglobals ($_ENV, $_POST, $_GET en zo), kan misschien de schuldige zijn.

Dadelijk eens proberen als ik de tijd heb :-)

Geplaatst: 12 jun 2003, 20:02
door Erik
hallo,

dit ding weigert gewoon te werken ???? dit heb ik nog nooit meegemaakt

wijzigingen die ik gemaakt heb

Code: Selecteer alles

<?php
$ip=$_ENV['REMOTE_ADDR'];
$url=$_ENV['HTTP_REFERER'];
if(! isset($error) || empty($error)) {
      $error=$_ENV['QUERY_STRING'];
}
?>

maar het werkt nog steeds niet verdomme ;)

Geplaatst: 12 jun 2003, 20:28
door meon

Code: Selecteer alles

<?php 

$html_400 = "http://www.site.com.be/error/400.php"; 
$html_403 = "http://www.site.com/error/403.php"; 
$html_404 = "http://www.site.com/error/404.php"; 
$html_500 = "http://www.site.com/error/500.php";  
$mail = 1; 
$to = '[email protected]'; 
$subject= "Error on your website"; 
$body = ""; 
$url = $_ENV['HTTP_REFERER'];
$ip = $_ENV['REMOTE_ADDR'];

if(!isset($_GET['error'])|| empty($_GET['error'])) { 
   $error=""; 
} 
if(!isset($_GET['page']) || empty($_GET['page'])){ 
   $page=""; 
} 

if(ereg("400",$_SERVER['QUERY_STRING'])){ 
    $body="there is a 400 error on your website $url $ip "; 
   $_GET['error']="400"; 
   $_GET['page']="$html_400"; 
    //Header("Location:error.php?error=".$_GET['error']."&page=".$_GET['page']); 
} 
if(ereg("403",$_SERVER['QUERY_STRING'])){ 
    $body="there is a 403 forbidden error on your website $url $ip "; 
   $_GET['error']="403"; 
   $_GET['page']="$html_403"; 
    //Header("Location:error2.php?error=".$_GET['error']."&page=".$_GET['page']); 
} 
if(ereg("404",$_SERVER['QUERY_STRING'])){ 
    $body="there is a 404 not found error on your website $url $ip "; 
   $_GET['error']="404"; 
   $_GET['page']="$html_404"; 
    //Header("Location:error.php?error=".$_GET['error']."&page=".$_GET['page']); 
} 
if(ereg("500",$_SERVER['QUERY_STRING'])){ 
    $body="there is a 500 internal server error on your website $url $ip "; 
   $_GET['error']="500"; 
   $_GET['page']="$html_500"; 
    //Header("Location:error.php?error=".$_GET['error']."&page=".$_GET['page']); 
} 
else{ 
    print "there has been an unknown error !!!!"; 
} 
if($mail ==1){ 
    mail("$to","$subject","$body","$ip"); 
} 
?> 
In de If's werd iets raars gedaan, daar zat geen reguliere expressie in, nu dus wel :-)

Die //'kes heb ik gezet omdat ge anders een oneindige loop maakt (met mailboxvervuiling), indien deze file error.php heet. Die comment haalt ge maar weg als error.php een zelf gemaakte errorpage is.

Geplaatst: 12 jun 2003, 21:31
door Erik
hallo,

Ja dat is het nu altijd he.Ik zit mij zot te zoeken waarom dat script dienst weigerde en dan is het zoiets stoms ...

thanks meon wa is de rekening :mrgreen: