-1 votes

La redirection de l'emplacement de l'en-tête PHP provoque une erreur 500 Internal Server

Je continue à obtenir une erreur 500 Internal Server Error lorsque le script ci-dessous atteint le header('location:php_email_thankyou.php'). Je ne suis pas sûr de ce qui provoque cela, car je peux placer l'expression de l'en-tête avant ou après les déclarations if et cela fonctionne bien. Dans firebug, il est fait mention d'une requête GET pour la page php_email_thankyou.php, mais je ne sais pas si cela signifie quelque chose...

<?php

ini_set('display_errors', 'On');   
error_reporting(E_ALL | E_STRICT);    

include('php/cl/cl_val.php');  
$val = new Validate;  
$print_errors = false;  

if (isset($_POST['email(email)'])){  
    if(isset($_SERVER['HTTP_X_REQUESTED_WITH']))  
    {  
        $validation = $val->clean($_POST);  
        if (isset($validation['send']))   
        {  
            header('location:php_email_thankyou.php');  
            exit();  
        }  
        else   
        {  
            print json_encode($validation);  
            exit();  
        }  
    }   
    else   
    {  
        $validation = $val->clean($_POST);  
    }  
}  

?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  

Merci beaucoup !

0voto

MatW Points 4130

HTTP/1.1 exige que l'emplacement utilisé soit un chemin absolu, et non relatif. Essayez ceci ;

header('Location: http://yourdomain.com/php_email_thankyou.php');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X