Comment tester sans serveur ? envoie formulaire via php [Résolu]

Signaler
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010
-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Bonjour, je suis en pleine création de site, pour tester l'ensemble sans serveur pas de soucis...


Par contre là je voudrais tester l'envoie d'un formulaire par mail (pas
question d'utiliser mailto 'html' car je suis dans une partie dirigée
par php)


Donc php envoie le formulaire et regarde si les champ sont rempli ou
non, au quel cas il n'envoie pas et demande de remplir les champs
maquant etc...


Donc comment tester si cela fonctionne bien quand on est pas mis en ligne et qu'on a donc pas de serveur ?


Merci pour vos réponses [bonnes ou mauvaises d'ailleurs...c'est l'intention qui compte :-)]

23 réponses

Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

<form action=\"inscription.php\" method=\"post\" name=\"inscription\">
<!--<form action=\"index.php\" method=\"post\" name=\"inscription\">-->
----
Nom:, "/>,
----
Prénom:, "/>,
----
Nom de la sociétée, "/>,
----
Adresse:, "/>,
----
Commune:, "/>,
----
Code postal, "/>,
----
Tva:, "/>,
----
Tel:, "/>,
----
Gsm:, "/>,
----
E-mail, "/>,
----
, , </tr
></form>

<?php
if(isset($_POST["inscription"]) && $_POST["inscription"] == "envoyer"){
    $erreurs = array();
    if( empty($_POST["nom"]))
        array_push($erreurs, "veuillez inscrire votre Nom");
    if( empty($_POST["prenom"]))
        array_push($erreurs, "veuillez inscrire votre prénom");
    if( empty($_POST["societee"]))    
        array_push($erreurs, "veuillez inscrire votre le nom de votre societee");
    if( empty($_POST["adresse"]))
        array_push($erreurs, "veuillez inscrire votre adresse");
    if( empty($_POST["commune"]))
        array_push($erreurs, "veuillez inscrire votre commune");
    if( empty($_POST["cp"]))
        array_push($erreurs, "veuillez inscrire votre code postal");
    if( empty($_POST["tel"]))
        array_push($erreurs, "veuillez inscrire votre téléphonne");
    if( empty($_POST["email"]))
        array_push($erreurs, "veuillez inscrire votre adresse E-mail");
           
    if(empty($erreurs)) {
        $from = $_POST["email"];
        $reply = $from;
        $to = "....";
       
        $contenu = "message de : ".$_POST["nom"]." ".$_POST["prenom"];
        $contenu .= "
Tel: ".$_POST["tel"];
        $contenu .= "
Societee: ".$_POST["societee"];
        $contenu .= "
Adresse: ".$_POST["adresse"];
        $contenu .= "
Commune: ".$_POST["commune"];
        $contenu .= "
CP: ".$_POST["cp"];
        $contenu .= "
Tva: ".$_POST["tva"];
        $contenu .= "
Tel: ".$_POST["tel"];
        $contenu .= "
Gsm: ".$_POST["gsm"];
        $contenu .= "
E-mail= ".$_POST["email"];
       
        $headers  = "MIME-Version: 1.0\r\n";
        $headers .= "Content-Type: text/html; charset="iso-8859-1"\r\n";
        $headers .= "From: ".$from."\r\n";
        $resultat = mail($to,"Titre",$contenu,$headers);
        if($resultat){
            echo "Votre demande à bien été envoyée";
        }else{
            echo "Le mail n'a pas pu etre envoyé...";
            echo "";
            echo $headers;
            echo $contenu;
            echo "

";
        }
    }else{
        $texte_erreur = implode("
",$erreurs);
        print $texte_erreur;
    }
}
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

Dans tous les cas si tu utilise la fonction mail() de PHP pour envoyer ton formulaire, ça marchera!
du point de vue de la fonction PHP.

En production tout dépend si tu utilise un serveur à toi, ou alors un serveur sur lequel tu n'as pas la main (comme free par exemple)

Mais la fonction mail() de php fonctionne.
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010

Voici mon code html de mon formulaire
:
<form action=\"inscription.php\" method=\"post\" name=\"inscription\">
----
Nom:(/td>, </td>
----
Prénom:(/td>, </td>
----
Nom de la sociétée,  ,
----
Adresse:(/td>, ----, Commune:(/td> ,
----
Code postal,  ,
----
Tva:(/td>, </td>
----
Tel:(/td>, </td>
----
Gsm:(/td>, </td>
----
E-mail,  ,
----
, , </tr
</form>



Voici mon code php:

 
<?php
       if($_POST){
        $nom = $_POST["nom"];
        $prenom = $_POST["prenom"];
        $societee = $_POST["societee"];
        $adresse = $_POST["adresse"];
        $commune = $_POST["commune"];
        $cp = $_POST["cp"];
        $tva = $_POST["tva"];
        $tel = $_POST["tel"];
        $gsm = $_POST["gsm"];
        $email = $_POST["email"];
       }
       $erreurs = array();
        if( empty($nom)) array_push($erreurs, "veuillez inscrire votre Nom");
        if( empty($prenom)) array_push($erreurs, "veuillez inscrire votre prénom");
        if( empty($societee)) array_push($erreurs, "veuillez inscrire votre le nom de votre societee");
        if( empty($adresse)) array_push($erreurs, "veuillez inscrire votre adresse");
        if( empty($commune)) array_push($erreurs, "veuillez inscrire votre commune");
        if( empty($cp)) array_push($erreurs, "veuillez inscrire votre code postal");
        if( empty($tel)) array_push($erreurs, "veuillez inscrire votre téléphonne");
        if( empty($email)) array_push($erreurs, "veuillez inscrire votre adresse E-mail");
        
       if(empty($erreurs)) {
        $from = $email;
        $reply = $from;
        $to = [mailto:nom.prenom@tralala.be nom.prenom@tralala.be];
        
        $contenu = "message de : ".$nom." ".$prenom;
        $contenu .= "
 Tel: ".$tel;
        $contenu .= "
 Societee: ".$societee;
        $contenu .= "
 Adresse: ".$adresse;
        $contenu .= "
 Commune: ".$commune;
        $contenu .= "
 CP: ".$cp;
        $contenu .= "
 Tva: ".$tva;
        $contenu .= "
 Tel: ".$tel;
        $contenu .= "
 Gsm: ".$gsm;
        $contenu .= "
 E-mail= ".$email;
        
        $headers = 'MIME-Version: 1.0' . "\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
        $headers .= 'From: '.$from."\n";
        $reply = $headers."Reply-to: ".$reply."\n";
        
       $resultat = mail($to, $contenu, $reply);
       if($resultat){
        echo "Votre demande à bien été envoyée";
       }
       else{
        $texte_erreur = implode("
",$erreurs);
        print $texte_erreur;
       }
       
       }
       $to = [mailto:nom.prenom@tralala.be nom.prenom@tralala.be];
       
      ?>


lorsque j'envoie en remplissant tout les champs, il me dit l'avoir bien envoyer mais je ne reçoit rien !
lorsque j'envoie en ne remplissant pas tout les champs demander (obligatoire) il ne me dit rien du tout, remet les champs à zéro (tout blanc)et bien sure ne me l'envoie pas non plus, alors qu'il devrait me demander de remplir les champs !

Où me suis-je trompée dans mon codage dans ce cas ?
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

il te manque l'accolade en rouge.

if($resultat){
        echo "Votre demande à bien été envoyée";
       }
       }else{
        $texte_erreur = implode("
",$erreurs);
        print $texte_erreur;
       }
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010

Houaaaaaaaaaaaaaa quel oeil de lynx !!
Nickel ça marche :-)
Grand merci à toi
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010

Hummmm sauf que maintenant il me met bien que je dois remplir tel ou tel champ mais il le met d'office avant même qu'on commence à ecrire ou qu'on clic pour envoyer :-(

Une idée du pourquoi ?
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

Ajoute un test
if($_POST["inscription"] == "envoyer"){
    ....
}
Pour voir si tu as cliqué sur "envoyer"
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010

Ok j'ai tester mais soit il ne met rien, soit il met tout...donc je
pense que je n'ai pas introduit le code que tu me donnes au bon endroit
! lol


Où dois-je mettre cette partie de code ?
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Salut,

Le if ($_POST) fait déjà ça.
Si les accolade ont correctement été modifiée il n'y a pas de raison que ça plante.

Peux tu reposter le code modifié ?

Cordialement,

Kohntark -
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010

<?php
                            if($_POST){
                                $nom = $_POST["nom"];
                                $prenom = $_POST["prenom"];
                                $societee = $_POST["societee"];
                                $adresse = $_POST["adresse"];
                                $commune = $_POST["commune"];
                                $cp = $_POST["cp"];
                                $tva = $_POST["tva"];
                                $tel = $_POST["tel"];
                                $gsm = $_POST["gsm"];
                                $email = $_POST["email"];
                            }
                            $erreurs = array();
                                if( empty($nom)) array_push($erreurs, "veuillez inscrire votre Nom");
                                if( empty($societee)) array_push($erreurs, "veuillez inscrire le nom de votre societee");
                                if( empty($adresse)) array_push($erreurs, "veuillez inscrire votre adresse");
                                if( empty($commune)) array_push($erreurs, "veuillez inscrire votre commune");
                                if( empty($cp)) array_push($erreurs, "veuillez inscrire votre code postal");
                                if( empty($tel)) array_push($erreurs, "veuillez inscrire votre téléphonne");
                                if( empty($email)) array_push($erreurs, "veuillez inscrire votre adresse E-mail");
                                
                            if(empty($erreurs)) {
                                $from = $email;
                                $reply = $from;
                                $to = "thierry.lassoudry@tvcablenet.be";
                                
                                $contenu = "message de : ".$nom." ".$prenom;
                                $contenu .= "
Tel: ".$tel;
                                $contenu .= "
Societee: ".$societee;
                                $contenu .= "
Adresse: ".$adresse;
                                $contenu .= "
Commune: ".$commune;
                                $contenu .= "
CP: ".$cp;
                                $contenu .= "
Tva: ".$tva;
                                $contenu .= "
Tel: ".$tel;
                                $contenu .= "
Gsm: ".$gsm;
                                $contenu .= "
E-mail= ".$email;
                                
                                $headers = 'MIME-Version: 1.0' . "\n";
                                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
                                $headers .= 'From: '.$from."\n";
                                $reply = $headers."Reply-to: ".$reply."\n";
                                
                            $resultat = mail($to, $contenu, $reply);
                            if($resultat)
                            {
                                echo "Votre demande à bien été envoyée";
                            }
                            
                            }
                            else
                            {
                                $texte_erreur = implode("
",$erreurs);
                                echo $texte_erreur;
                            }
                            
                            
                            
                            
                        ?>

Je profite aussi pour demander pourquoi quand je reçoit le mail j'ai toutes les info en titre et rien en message
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010

Oupsss ça c'est mis un peu n'importe comment mon code là...désolée
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

<form action=\"index.php\" method=\"post\" name=\"inscription\">
----
Nom:, "/>,
----
Prénom:, "/>,
----
Nom de la sociétée, "/>,
----
Adresse:, "/>,
----
Commune:, "/>,
----
Code postal, "/>,
----
Tva:, "/>,
----
Tel:, "/>,
----
Gsm:, "/>,
----
E-mail, "/>,
----
, , </tr
></form>

<?php
if($_POST["inscription"] == "envoyer"){
    $erreurs = array();
    if( empty($_POST["nom"]))
        array_push($erreurs, "veuillez inscrire votre Nom");
    if( empty($_POST["prenom"]))
        array_push($erreurs, "veuillez inscrire votre prénom");
    if( empty($_POST["societee"]))     
        array_push($erreurs, "veuillez inscrire votre le nom de votre societee");
    if( empty($_POST["adresse"]))
        array_push($erreurs, "veuillez inscrire votre adresse");
    if( empty($_POST["commune"]))
        array_push($erreurs, "veuillez inscrire votre commune");
    if( empty($_POST["cp"]))
        array_push($erreurs, "veuillez inscrire votre code postal");
    if( empty($_POST["tel"]))
        array_push($erreurs, "veuillez inscrire votre téléphonne");
    if( empty($_POST["email"]))
        array_push($erreurs, "veuillez inscrire votre adresse E-mail");
            
    if(empty($erreurs)) {
        $from = $email;
        $reply = $from;
        $to = "nom.prenom@tralala.be";
        
        $contenu = "message de : ".$_POST["nom"]." ".$_POST["prenom"];
        $contenu .= "
Tel: ".$_POST["tel"];
        $contenu .= "
Societee: ".$_POST["societee"];
        $contenu .= "
Adresse: ".$_POST["adresse"];
        $contenu .= "
Commune: ".$_POST["commune"];
        $contenu .= "
CP: ".$_POST["cp"];
        $contenu .= "
Tva: ".$_POST["tva"];
        $contenu .= "
Tel: ".$_POST["tel"];
        $contenu .= "
Gsm: ".$_POST["gsm"];
        $contenu .= "
E-mail= ".$_POST["email"];
        
        $headers = 'MIME-Version: 1.0' . "\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
        $headers .= 'From: '.$from."\n";
        $reply = $headers."Reply-to: ".$reply."\n";
        
        // $resultat = mail($to, $contenu, $reply);
        if($resultat){
            echo "Votre demande à bien été envoyée";
        }else{
            echo "Le mail n'a pas pu etre envoyé...";
            echo "";
            echo $headers;
            echo $contenu;
            echo "

";
        }
    }else{
        $texte_erreur = implode("
",$erreurs);
        print $texte_erreur;
    }
}
?>

Voila pour toi
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010

Youhouuuu je file chercher mes monstres à l'école et je teste ça après...je tiens au courant mais déjà grand merci pour tes réponses :-)
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

il ne faut pas oublier de changer le "mail"
$to = "nom.prenom@tralala.be";

et de-commenter la ligne suivante:
// $resultat = mail($to, $contenu, $reply);
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

Il faut aussi changer ceci



<form action="index.php" method="post" name="inscription">






Par ceci pour l'adapter à ton code






<form action="inscription.php" method="post" name="inscription">
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010

Alors histoire de te donner un peu de travail lol....j'ai tester et......ça marche presque !
Donc tout est bien, il me met que j'ai oubliée de remplir le champ que lorsque c'est le cas et que j'ai cliqué sur "envoyer", ça c'est bon :-)
Il dit bien qu'il à envoyer le mail et envoie bien le mail là où il doit...ça c'est bon aussi...
Mais car il doit toujours y avoir un 'mais' lol ...
Je te met ici le code et en même couleur où se trouve l'erreur donnée...

<form action=\"inscription.php\" method=\"post\" name=\"inscription\">
----
Nom:, "/>,
----
Prénom:, "/>,
----
Nom de la sociétée, "/>,
----
Adresse:, "/>,
----
Commune:, "/>,
----
Code postal, "/>,
----
Tva:, "/>,
----
Tel:, "/>,
----
Gsm:, "/>,
----
E-mail, "/>,
----
, , </tr
></form>

<?php
if($_POST["inscription"] == "envoyer"){
    $erreurs = array();
    if( empty($_POST["nom"]))
        array_push($erreurs, "veuillez inscrire votre Nom");
    if( empty($_POST["prenom"]))
        array_push($erreurs, "veuillez inscrire votre prénom");
    if( empty($_POST["societee"]))    
        array_push($erreurs, "veuillez inscrire votre le nom de votre societee");
    if( empty($_POST["adresse"]))
        array_push($erreurs, "veuillez inscrire votre adresse");
    if( empty($_POST["commune"]))
        array_push($erreurs, "veuillez inscrire votre commune");
    if( empty($_POST["cp"]))
        array_push($erreurs, "veuillez inscrire votre code postal");
    if( empty($_POST["tel"]))
        array_push($erreurs, "veuillez inscrire votre téléphonne");
    if( empty($_POST["email"]))
        array_push($erreurs, "veuillez inscrire votre adresse E-mail");
           
    if(empty($erreurs)) {
        $from = $email;
        $reply = $from;
        $to = "thierry.lassoudry@tvcablenet.be";
       
        $contenu = "message de : ".$_POST["nom"]." ".$_POST["prenom"];
        $contenu .= "
Tel: ".$_POST["tel"];
        $contenu .= "
Societee: ".$_POST["societee"];
        $contenu .= "
Adresse: ".$_POST["adresse"];
        $contenu .= "
Commune: ".$_POST["commune"];
        $contenu .= "
CP: ".$_POST["cp"];
        $contenu .= "
Tva: ".$_POST["tva"];
        $contenu .= "
Tel: ".$_POST["tel"];
        $contenu .= "
Gsm: ".$_POST["gsm"];
        $contenu .= "
E-mail= ".$_POST["email"];
       
        $headers = 'MIME-Version: 1.0' . "\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
        $headers .= 'From: '.$from."\n";
        $reply = $headers."Reply-to: ".$reply."\n";
       
        $resultat = mail($to, $contenu, $reply);
        if($resultat){
            echo "Votre demande à bien été envoyée";
        }else{
            echo "Le mail n'a pas pu etre envoyé...";
            echo "";
            echo $headers;
            echo $contenu;
            echo "

";
        }
    }else{
        $texte_erreur = implode("
",$erreurs);
        print $texte_erreur;
    }
}

Il met une erreur d'office quand j'arrive sur la page:
Notice: Undefined index: inscription in E:\LST\EasyPHP 3.0\www\LST creation\belgitopia\inscription.php on line 79

Et une autre lorsque j'ai cliqué sur envoyer:
Notice: Undefined variable: email in E:\LST\EasyPHP 3.0\www\LST creation\belgitopia\inscription.php on line 99

et encore une chose (rien à voir avec ton code) normalement toutes les réponses remplies dans le formulaire que je devrais avoir dans mon message de mail je les reçoit en titre de message et rien dans le contenu du message.

Merci encore et d'avance pour la suite de ce casse tête :-)
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010

Et bien là je dit....HOURRA !
Ca fonctionne à merveille, tout est bien mis au bon endroit même mon mail que je reçoit, enfin bref c'est mircle :-)

Plus qu'un grand merci à toi.......mais au fait qu'as-tu changé exactement pour que ça fonctionne juste...je voudrais comprendre pour éviter de reposer le même genre de question à l'avenir.
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010

Enfin si ........je vois ce que tu as changé lol , mais y-a-t-il une explication bien spécifique ?
Heuuu si c'est trop long ou trop chiant à expliquer c'est pas grave, te prends pas la tête...t'as déjà été super sympa de m'aider et en + de trouver la bonne solution :-) encore Merci !
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

if(isset($_POST["inscription"]) && $_POST["inscription"] == "envoyer"){

//ici par exemple je test que la variable existe avant de tester la valeur.

$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$headers .= 'From: '.$from."\n";
$reply = $headers."Reply-to: ".$reply."\n";
$resultat = mail($to, $contenu, $reply);






$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset="iso-8859-1"\r\n";
$headers .= "From: ".$from."\r\n";
$resultat = mail($to,"Titre",$contenu,$headers);





//Ici tu as oublié le sujet du mail;
//cf php.net


//Ici je sais pertinemment qu'il faut faire comme cela mais je ne me souviens plus de l'explication logique
Messages postés
30
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
10 avril 2010

Ok merci beaucoup pour le temps que tu m'as accordé c'est vraiment sympa.
Une excellente soirée à toi et encore merci :-)