erreur 500 après mail()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : erreur 500 après mail()

Re: erreur 500 après mail()

par GlobalWind » 31 août 2009, 14:46

J'ai contrôlé mon reporting_error qui est à E_ALL ^ E_NOTICE
Je n'ai qu'une erreur500 et rien d'autres comme info

Re: erreur 500 après mail()

par Dr@ke » 31 août 2009, 11:50

Pour le header je te conseille : ./ ou / précédent le lien
Clair: ./contact.php?envoi=0 ...

Sinon pour le refresh , on peut l'empêcher même sans redirection, comme sur mon site...
Mais la méthode la plus simple c'est surement la redirection, donc ok :wink:

Re: erreur 500 après mail()

par GlobalWind » 31 août 2009, 11:12

Lorsque je teste le script en prod (pour l'envoi de mail) je fait toujours les mêmes actions (c'est une page de contact, je saisis les mêmes textes, même adresses mails, ...)! Le temps d'exécution est rapide sur le serveur.
Je n'ai strictement rien remarqué comme action de ma part qui pouvait justifier l'erreur.


Comment toutefois m'assurer que :
- l'affichage des erreurs est activé sur le serveur sur lequel s'exécute le script ,
- que j'ai accès au log des erreurs PHP

Afin éliminer les hypothèses (soit le serveur, soit mon code), je commence bien évidemment par la seule que je maitrise (un peu) mon code :
et ma question est bien : mon code est-il correct ?
S'il l'est, et bien je verrai auprès d'online. Mais ils ne feront rien, tant que je ne serai pas sur de mon code !

SI quelqu'un pouvait me rassurer sur mon code ...

Re: erreur 500 après mail()

par FuZZyLine » 31 août 2009, 11:04

Salut,
[...]
EN revanche, je n'ai toujours pas de réponse
Si tu souhaites des réponses essaie d'être un minimum cordial, merci.
Ce genre de phrase ne pousse pas à l'aide ;)
Il est clair que la redirection est préférable.
EN outre, j'ai une erreur 500 : il ne s'agit pas d'une erreur du type 'header already sent'.
Et comme l'erreur est aléatoire, je ne pense pas que ca soit du un un espace envoyé ou qq chose du genre.
j'aimerai vraiment saivoir ce qui ne va pas dans mon code !
500 est une erreur serveur: Si c'est aléatoire bien... Soit le serveur provoque cette erreur
suite à quelque chose d'indépdant de ta volonté (possible, surtout si c'est un serveur de prod) soit tu
provoques cette réponse serveur par le jeu de quelques actions que tu fais effectuer par ton script.

Le mieux est d'essayer de reproduire cette erreur en notant chaque action faite.
Ainsi tu cerneras mieux le problème.

Pour le header je te conseille : ./ ou / précédent le lien

@+ bon code, bonne journée ;)

Re: erreur 500 après mail()

par GlobalWind » 31 août 2009, 11:00

Je peux m'en assurer une nouvelle fois mais lorsque j'ai des erreurs notamment liées à des headers déjà envoyés, j'ai un message d'erreur spécifique.
COmment toutefois m'assurer que :
- l'affichage des erreurs est activé sur le serveur sur lequel s'exécute le script ,
- que j'ai accès au log des erreurs PHP


Par ailleurs, j'ai eu (et je ne sais plus comment, le message suivant une fois :
HTTP/1.1 200 OK Date: Sun, 30 Aug 2009 14:09:26 GMT Server: Apache/1.3.34 (Ubuntu) mod_vhost_online/1.2 mod_fastcgi/2.4.2 mod_log_online/0.1 X-Powered-By: PHP/4.4.9-1.standard Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Location: http://www.slipchaud.com/erreur.php?erreur=500 Keep-Alive: timeout=10, max=98 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1

Re: erreur 500 après mail()

par zeus » 31 août 2009, 10:53

Tu es sûr que l'affichage des erreurs est activé sur le serveur sur lequel s'exécute le script ?

Est-ce que tu as accès au log des erreurs PHP ?

Re: erreur 500 après mail()

par Invité » 31 août 2009, 10:42

Il est clair que la redirection est préférable.

EN outre, j'ai une erreur 500 : il ne s'agit pas d'une erreur du type 'header already sent'.
Et comme l'erreur est aléatoire, je ne pense pas que ca soit du un un espace envoyé ou qq chose du genre.

j'aimerai vraiment saivoir ce qui ne va pas dans mon code !

Re: erreur 500 après mail()

par zeus » 31 août 2009, 10:36

L'avantage de la redirection est que, si l'utilisateur fait un refresh sur la page, le mail n'est pas renvoyé.

Re: erreur 500 après mail()

par Dr@ke » 31 août 2009, 10:07

    if(mail($destinataire, $subject, $message_mail, $headers)){ 
    header ("Location:contact.php?envoi=1"); 
    exit; 
    } 
    // si le mail n' a pas été envoyé 
    else { 
    header ("Location:contact.php?envoi=0"); 
    exit; 
}
D'après moi une redirection n'est pas nécessaire...
Si tu ecris cela comme ca, cela change t-il quelquechose?
$mail = mail($destinataire, $subject, $message_mail, $headers);
if ($mail) {
$envoie = '1';
}
else {
$envoie = '0';
}
if ($_POST['submit'] $$ $envoie == '1') {  //submit est ici la "valeur" du bouton submit du formulaire, a personaliser donc...
echo 'Votre mail est envoyé';
}
elseif ($_POST['submit'] $$ $envoie == '0') {
echo 'Erreur';
}
else {
// Code de ton formulaire
}
Un truc comme ca, rapidement, écris à la volée sans tester, en gros tu traites tout dans le même fichier mais c'est juste un exemple non complet...
C'est surtout l'idée qu'il faut retenir.

Re: erreur 500 après mail()

par zeus » 31 août 2009, 09:49

En ce qui concerne ton erreur, je pense que le problème vient du fait que tu dois avoir affichage d'un caractère quelques part avant ce fichier, et que c'est l'exécution du header() après ça qui pose un soucis.

Est-ce que le fichier que tu nous montres est inclus dans un autre ? (include(), require(), ...)

Re: erreur 500 après mail()

par zeus » 31 août 2009, 09:46

Les titres contenant "HELP !", "Aidez-moi", "J'ai un problème", "Ça marche pas",...
Ca aussi ça l'est.
J'ai juste enlevé "Help", parce que, comme l'indique les règlements, ce n'est pas autorisé.

Re: erreur 500 après mail()

par Invité » 31 août 2009, 09:36

Le titre d'origine était 'Help : erreur 500 après mail()". Il faut juste lire le titre en entier :D
Je pense que c'était assez clair.
EN revanche, je n'ai toujours pas de réponse

Re: erreur 500 après mail()

par zeus » 30 août 2009, 20:44

Modération :
Merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP !", "Aidez-moi", "J'ai un problème", "Ça marche pas",...
n'apportent rien à la compréhension de ta demande.

Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Merci de prendre le temps de lire les règlements.

erreur 500 après mail()

par GlobalWind » 30 août 2009, 17:47

Bonjour à tous

J'ai un problème d'erreur 500 aléatoire sur online.fr

J'ai un page d'envoi de mail. Si le mail est envoyé, il y a redirection (rechargement de la page avec un message : 'mail envoyé').


Le mail est toujours correctement envoyé (et reçu) mais j'ai aléatoirement une erreur 500 sur le Header (donc entre l’envoi du mail et la redirection)

Un moment j’ai eu ce message, je ne ais pas s’il y a un rapport :
HTTP/1.1 200 OK Date: Sun, 30 Aug 2009 14:09:26 GMT Server: Apache/1.3.34 (Ubuntu) mod_vhost_online/1.2 mod_fastcgi/2.4.2 mod_log_online/0.1 X-Powered-By: PHP/4.4.9-1.standard Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Location: http://www.slipchaud.com/erreur.php?erreur=500 Keep-Alive: timeout=10, max=98 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1

Voici le code d'envoie d email :
$from_nom= FROMMAIL ; 
    $from_mail= WEBMASTERMAIL ; 
    $subject="Contact par formulaire"; 

    $message_mail="Mail envoyé par formulaire\n\n"; 
    $message_mail .="Mail si connecté : ".$mail_inscrit."\n"; 
    $message_mail .="Pseudo si connecté : ".$pseudo."\n"; 
    $message_mail .="Mail déclaré : ".$mail."\n"; 
    $message_mail .= EnleveSlashes($message)."\n"; 

    $headers="MIME-Version: 1.0\r\n"; //version Mine 
    $headers.="Content-type: text/plain; charset=iso-8859-1\r\n"; //on détermine le mail en format text 
    // on determine l'expéditeur et l'adresse de réponse 
    $headers.="From: $from_nom<$from_mail>\r\nReply-to: $from_nom<$from_mail>\nX-Mailer:PHP"; 

    $destinataire=WEBMASTERMAIL; 

    if(mail($destinataire, $subject, $message_mail, $headers)){ 
    header ("Location:contact.php?envoi=1"); 
    exit; 
    } 
    // si le mail n' a pas été envoyé 
    else { 
    header ("Location:contact.php?envoi=0"); 
    exit; 
}
A toutes fin utiles, voici mon .htaccess

Code : Tout sélectionner

IndexOptions -Indexes ErrorDocument 400 http://www.slipchaud.com/erreur.php?erreur=400 ErrorDocument 401 http://www.slipchaud.com/erreur.php?erreur=401 ErrorDocument 402 http://www.slipchaud.com/erreur.php?erreur=402 ErrorDocument 403 http://www.slipchaud.com/erreur.php?erreur=403 ErrorDocument 404 http://www.slipchaud.com/erreur.php?erreur=404 ErrorDocument 405 http://www.slipchaud.com/erreur.php?erreur=405 ErrorDocument 500 http://www.slipchaud.com/erreur.php?erreur=500 #400 Bad request : La syntaxe de la requête est mal formulée ou est impossible à satisfaire. #401 Unauthorized : Accès non autorisé. #402 PaymentRequired : Le client doit reformuler sa demande avec les bonnes données de paiement. #403 Forbidden : La requête est interdite. Lising des répertoires #404 Not found : Le serveur n'a rien trouvé à l'adresse spécifiée. #405 Method Not Allowed : Méthode non permise. #500 Internal Server Error : Le serveur a rencontré une condition inattendue qui l'a empêché de donner suite à votre demande. Vous devez rafraîchir la page.