Erreur 500 sur validation formulaire

Petit nouveau ! | 3 Messages

13 nov. 2011, 23:23

Bonjour
Je suis chez Online.net ( pas tres sympa d’ailleurs...) et j'ai une erreur 500 lorsque j'envoie le formulaire, mais le message arrive bien sur mon mail.
Pouvez vous m'aider s'il vous plait??
(si vous voulez essayer..... http://www.sattia.fr (le site est en construction))

Cordialement

Merci
<?php
$to = "[email protected]";
$from = "[email protected]"; 

session_start();

function VerifierAdresseMail($mail){
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
if(preg_match($Syntaxe,$mail)){
return true;
}else{
return false;
}
}


/* PetitClean($var,$lg) */
/* $var la varible à traiter */
/* la longueur de sortie */  

function PetitClean($var,$lg){
$var=strip_tags($var);
  
  if(strlen($var)>$lg){
  $var = substr($var, 0, $lg);
  $last_space = strrpos($var, " ");
  $var = substr($var, 0, $last_space);
  }else{
  $lg=0;
  } 
return $var;
}
    
$error=NULL;

if(isset($_POST['nom']) && !empty($_POST['nom'])){
$nom=$_POST['nom'];$error=NULL;
//filtrage 
$nom=PetitClean($nom,30); /*30 caractères maxi*/
}else{
echo $error='<h3 align="center">Le nom est vide - <a href="javascript:history.back();">Retour au formulaire</a></h3>';exit;
}

if(isset($_POST['mail']) && !empty($_POST['mail'])){
$mail=$_POST['mail'];$error=NULL;$mail=htmlentities($mail);
//filtrage
$mail=PetitClean($mail,60);
}else{
echo $error='<h3 align="center">Le e-mail est vide - <a href="javascript:history.back();">Retour au formulaire</a></h3>';exit;
}

if(isset($_POST['objet']) && !empty($_POST['objet'])){
$objet=$_POST['objet'];$error=NULL;
//filtrage
$objet=PetitClean($objet,100);
}else{
echo $error='<h3 align="center">L\'objet est vide - <a href="javascript:history.back();">Retour au formulaire</a></h3>';exit;
}

if(isset($_POST['message']) && !empty($_POST['message'])){
$message=$_POST['message'];$error=NULL;
//filtrage
$message=PetitClean($message,300);
}else{
echo $error='<h3 align="center">Le message est vide - <a href="javascript:history.back();">Retour au formulaire</a></h3>';exit;
}

if(VerifierAdresseMail($mail)){
//echo 'mail ok';
}else{
echo $error='<h3 align="center">Votre adresse e-mail n\'est pas valide - <a href="javascript:history.back();">Retour au formulaire</a></h3>';exit;
}

if($_SERVER['REQUEST_METHOD']==='POST' && isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){ 


$destinataire="[email protected]"; 
$subject=$objet;
$body=$message;


$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
/*ici on détermine l'expediteur et l'adresse de réponse*/
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";
    
    if (mail($destinataire,$subject,$body,$headers)){

    $message=NULL;
    $mail=NULL;
    $nom=NULL;
    $objet=NULL;
    $_POST=NULL;
    $_SESSION['verif']=NULL; 
    $destinataire=NULL;

    echo '<h3 align="center">Votre message est envoyé, merci ! - <a href="javascript:history.back();"Location: http://sattia.fr/merci.htm"';exit; 
 
    
    }else{
   
    $message=NULL;
    $mail=NULL;
    $nom=NULL;
    $objet=NULL;
    $_POST=NULL;
    $_SESSION['verif']=NULL;  /*anti double post*/
    $destinataire=NULL;
    echo '<h3 align="center">Désolé votre message n\'a pas pu être envoyé ! - <a href="javascript:history.back();">Retour au formulaire</a><br /></h3>';exit;
    
    }

$message=NULL;
$mail=NULL;
$nom=NULL;
$objet=NULL;
$_POST=NULL;
$destinataire=NULL;

} else {
echo $error='<h3 align="center">ERREUR SUR LE CODE DE SECURITE - <a href="javascript:history.back();">Retour au formulaire</a></h3>';exit;
}

?>

ViPHP
ViPHP | 1996 Messages

14 nov. 2011, 00:04

Dans ton code source je n'ai pas vu de <form> </form> . Est ce normal ? (ou ai-je mal lu)
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 nov. 2011, 00:15

salut,

si tu a des ré écriture d'url vire les pour voir (.htaccess)

si tu a acces aux log du serveur web regarde dedans tu doit y avoir plus d'infos


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

14 nov. 2011, 10:14

Merci Aureusms et Moogli, je contrôle tout cela et je vous tiens au courant
Pour (form ect... )c'est sur une autre page (html) (j’espère que je ne réponds pas une connerie ;-))


En tous cas tout fonctionne bien, sauf que j'ai cette erreur 500 au lien d'avoir la page "Merci"
Bonne journée
Et un p'tit bonjour de Cannes (enfin!! un peu au dessus ds la montagne)
Didier

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 nov. 2011, 12:32

Modération :
Les titres contenants "Help", "SOS", ... ne sont d'aucune utilité. Nous savons par ta présence que tu as besoin d'aide.

De plus, merci de penser à utiliser les balises [php] pour mettre en forme ton code
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

14 nov. 2011, 14:18

Bonjour,
Bien pris note
Sorry, mais comme quoi!! même a 60 balais on peut être débutant
Cordialement
Didier
(Mais si vs avez la solution a mon problème..... ;-))

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 nov. 2011, 14:29

si tu a acces aux log du serveur web regarde dedans tu doit y avoir plus d'infos
@+
??

un erreur 500 c'est une "erreur interne du serveur" donc ça doit être dans les journaux (log) du serveur. généralement les hébergeurs permettent de les consulter.

@+
Il en faut peu pour être heureux ......

ViPHP
ViPHP | 2577 Messages

14 nov. 2011, 14:53

Bonjour,

J'ai un gros doute sur :
    echo '<h3 align="center">Votre message est envoyé, merci ! - <a href="javascript&#058;history.back();"Location: http://sattia.fr/merci.htm"';exit; 
Peut être :
header("Location: http://sattia.fr/merci.htm");
exit; 
J'ai été client d'Online il y a longtemps et la fonction mail() n'était pas la fonction standard de PHP avec le paramètre expéditeur en plus. Mais si tu recois le mail ca ne doit plus être le cas.