ik snap het ni sorry ....

Plaats reactie
Gebruikersavatar
Erik
Elite Poster
Elite Poster
Berichten: 1321
Lid geworden op: 15 sep 2002, 02:46
Uitgedeelde bedankjes: 2 keer
Bedankt: 18 keer

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 ??
Registered Linux user #286313
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01
Contacteer:

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 ;)
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

$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 :-)
Gebruikersavatar
Erik
Elite Poster
Elite Poster
Berichten: 1321
Lid geworden op: 15 sep 2002, 02:46
Uitgedeelde bedankjes: 2 keer
Bedankt: 18 keer

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 ;)
Registered Linux user #286313
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

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.
Gebruikersavatar
Erik
Elite Poster
Elite Poster
Berichten: 1321
Lid geworden op: 15 sep 2002, 02:46
Uitgedeelde bedankjes: 2 keer
Bedankt: 18 keer

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:
Registered Linux user #286313
Plaats reactie

Terug naar “Development”