[RESOLU] problème formulaire envoi 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 : [RESOLU] problème formulaire envoi mail

Re: problème formulaire envoi mail

par ynx » 25 sept. 2023, 12:01

Page blanche : vérifier les logs et/ou activer l'affichage des erreurs
tutoriels/page-blanche-script-php-comme ... 73178.html

Re: problème formulaire envoi mail

par or 1 » 25 sept. 2023, 11:24

ben oui...
qu'avez-vous fait pour affirmer cela ?

Re: problème formulaire envoi mail

par nestor94 » 25 sept. 2023, 11:08

<?php
session_start();
require_once 'config.php';
$idMembreSession = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
 
if (isset($_POST["envoyer"])){   

    $to = "[email protected]";

    $subject = 'Demande postée par email sur jeu en ligne';

    $from = $_POST["email"];

    $message = $_POST["msg"];

    $headers = "From: $from";


    if (mail($to, $subject, $message, $headers)) {

      $responseText = 'Mail sent successfully.';
	  echo $responseText;

    } else {

        $responseText = 'Unable to send mail. Please try again.';
echo $responseText;
    }
}
?>

toujours une page blanche.

Re: problème formulaire envoi mail

par @rthur » 24 sept. 2023, 12:29

D'un autre côté, c'est normal que rien ne s'affiche puisque ton script ne demande à aucun moment d'afficher quelque chose :-D
Peut être ajouter echo $responseText ?

Re: problème formulaire envoi mail

par nestor94 » 24 sept. 2023, 00:45

j'ai refais un script minimaliste
if (isset($_POST["envoyer"])){   

    $to = "[email protected]";

    $subject = 'Demande postée par envoi formulaire  sur jeu en ligne';

    $from = $_POST["email"];

    $message = $_POST["msg"];

    $headers = "From: $from";


    if (mail($to, $subject, $message, $headers)) {

        $responseText = 'Mail sent successfully.';

    } else {

        $responseText = 'Unable to send mail. Please try again.';

    }
}
?>
et toujours rien qui s'affiche.
(ca serait pas à tout hasard au niveau de l'hebergeur ou soucis dans php.ini?)

Re: problème formulaire envoi mail

par nestor94 » 24 sept. 2023, 00:00

ben oui...

Re: problème formulaire envoi mail

par or 1 » 23 sept. 2023, 15:16

if (isset($_POST["envoyer"])){
cela rentre dans ce if ?

Re: problème formulaire envoi mail

par nestor94 » 23 sept. 2023, 01:21

ok pour "nom" (erreur de copier coller).
J'avais mis $message comme variable et nom du champ dans le formulaire...

Ca ne fonctionne toujours pas.

     <form name="contact_form" method="post" action="">
    <table width="500">
    <tr>
     <td valign="top">
      <label for="pseudo">PSEUDO *</label>
     </td>
     <td valign="top">
      <input  type="text" name="pseudo" maxlength="50" size="30" value="<?php if (isset($_POST['pseudo'])) echo htmlspecialchars($_POST['pseudo']);?>">
     </td>
    </tr>
    <tr>
     <td valign="top">
      <label for="email">EMAIL *</label>
     </td>
     <td valign="top">
      <input  type="text" name="email" maxlength="80" size="30" value="<?php if (isset($_POST['email'])) echo htmlspecialchars($_POST['email']);?>">
     </td>
    </tr>
    <tr>
     <td valign="top">
      <label for="sujet">DEMANDE *</label>
     </td>
     <td valign="top">
      <textarea  name="sujet" cols="28" rows="10"><?php if (isset($_POST['sujet'])) echo htmlspecialchars($_POST['sujet']);?></textarea>
     </td>
    </tr>
    <tr>
     <td colspan="2" style="text-align:center">
      <input type="submit" value=" Envoyer ">
     </td>
    </tr>
    </table>
    </form>
</body>
</center>
</html>
<?php        
//si le bouton envoyer a été cliqué  
if (isset($_POST["envoyer"])){   
//on recupère le nom  
$pseudo = $_POST["pseudo"];  
//on recupère l'adresse email  
$email = $_POST["email"];      
//on recupère le message  
$sujet = $_POST["sujet"];  
$to = "[email protected]";      
$headers = "From:" . $pseudo . " " . $pseudo ." " . $email;    
//on envoie le message avec la fonction mail  
if (mail($to,$sujet,$headers))   
//si le message a été envoyé, on le confirme  
{   
echo " ton message est bien envoyé.";    
}   
//sinon on n'affiche un message d'erreur  
else   
{   
echo "Une erreur s'est produite";   
}   
}   
?>     
J'ai pas un soucis à la ligne $headers.... (quote vs double quotes)?

Re: problème formulaire envoi mail

par ynx » 22 sept. 2023, 11:36

Bonjour,

<input  type="text" name="nom"...
La variable $_POST['pseudo'] n'existe pas puisque l'attribut name de ton input est "nom"

if (mail($to,$message,$headers))
Le 2e paramètre de la fonction mail est le sujet et pas le message
https://www.php.net/manual/fr/function.mail.php

problème formulaire envoi mail

par nestor94 » 22 sept. 2023, 11:07

Bonjour !

Je n'arrive pas à expédier un email avec ce formulaire pourtant très basique :oops:
     <form name="contact_form" method="post" action="">
    <table width="500">
    <tr>
     <td valign="top">
      <label for="pseudo">PSEUDO *</label>
     </td>
     <td valign="top">
      <input  type="text" name="nom" maxlength="50" size="30" value="<?php if (isset($_POST['pseudo'])) echo htmlspecialchars($_POST['pseudo']);?>">
     </td>
    </tr>
    <tr>
     <td valign="top">
      <label for="email">EMAIL *</label>
     </td>
     <td valign="top">
      <input  type="text" name="email" maxlength="80" size="30" value="<?php if (isset($_POST['email'])) echo htmlspecialchars($_POST['email']);?>">
     </td>
    </tr>
    <tr>
     <td valign="top">
      <label for="message">DEMANDE *</label>
     </td>
     <td valign="top">
      <textarea  name="message" cols="28" rows="10"><?php if (isset($_POST['message'])) echo htmlspecialchars($_POST['message']);?></textarea>
     </td>
    </tr>
    <tr>
     <td colspan="2" style="text-align:center">
      <input type="submit" value=" Envoyer ">
     </td>
    </tr>
    </table>
    </form>
</body>
</center>
</html>
<?php        
//si le bouton envoyer a été cliqué  
if (isset($_POST["envoyer"])){   
//on recupère le nom  
$pseudo = $_POST["pseudo"];  
//on recupère l'adresse email  
$email = $_POST["email"];      
//on recupère le message  
$message = $_POST["message"];  
$to = "[email protected]";      
$headers = "From:" . $pseudo . " " . $pseudo ." " . $email;    
//on envoie le message avec la fonction mail  
if (mail($to,$message,$headers))   
//si le message a été envoyé, on le confirme  
{   
echo " ton message est bien envoyé.";    
}   
//sinon on n'affiche un message d'erreur  
else   
{   
echo "Une erreur s'est produite";   
}   
}   
?>