Comment donner les paramettres à php (si le f

Résolu/Fermé
Signaler
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
-
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
-
Bonjour, je ne me rappelle plus d'un code php voici :
j'ai un formulaire de contact, et je voudrai que quand ce formulaire n'est pas remplis que la page envois.php qui envois les infos dans ma boite mail r'envois la page du formulaire et quand ce formulaire contient bien du texte alors là on envoit le formulaire. Si vous pouvez me redonner le code que j'ai perdu merci
Fabrice

25 réponses

Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
Salut,

Y'a pas de code prédéfini, ça dépend de ton script, de ton formulaire...

De manière général, si dans un formulaire tu as:

<textarea name="truc">
Ou bien
<input name="truc">

Tu peux tester sa valeur lors du traitement comme ceci (avec un formulaire de methode post):

if (isset($_POST['truc'])) {
     if (!empty($_POST['truc'])) {
             //Formulaire rempli
     }
     else {
             //Formulaire avec le champs "truc" pas rempli
     }
}
else{
     /*Formulaire avec le champs "truc" pas rempli (je ne sais pas si la variable passe tout de même, même si le champs n'est pas remplis  donc je préfère mettre les deux cas*/
0
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
slt je t'envois le lien de sa page :
http://tchatpeople.free.fr/identification et moi sur mon site le même fichier fonctionne ! merci
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
Réessaie après avoir créé un dossier nommé sessions à la racine de ton site.
0
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
slt, merci, il s'agit d'un formulaire de 4 chants nom email url comment merci
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
Ben à toi de voir maintenant. Je t'ai filé un exemple, il ne te reste plus qu'à l'adapter à ton cas.
Essaie de le faire par toi même, je veux bien expliquer la démarche mais je ne vais pas m'amuser à faire le travail des autres.

Et si, après avoir essayé, tu n'arrives pas à le mettre en place, demande nous :-)
0
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
slt, je suis entrain de regarder le code que tu m'as donné pour voir si je peux l'adapter mais pour un chant un seul) il n'affiche rien même si on ne r'emplis pas le chant. Mais je vais regarder ça mtn que j'ai le code
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
Oui c'est normal que ça n'affiche rien, il faut remplir des instructions dans les blocs.

Tu devrais ecrire deux fonctions:
envoie_mail()
et
renvoie_formulaire()

Et les appliquer comme ceci:
if (isset($_POST['truc'])) {
     if (!empty($_POST['truc'])) {
             envoie_mail();
     }
     else {
             renvoie_formulaire();
     }
}
else{
     renvoie_formulaire();
}


A toi de voir comment définir ces fonctions, ça dépend de ton script.
0
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
slt, oui mais j'ai fais un test pour un seul chant en mettant rien dans le formulaire pour voir si le code pho disait quelque chose et il n'affiche rien je vais essayer une autre solution parcontre pour les 4 chants de mon formulaire j'arrive pas à l'adapter si tu peux me donner l'exemple pour 2 chants merci
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
slt, oui mais j'ai fais un test pour un seul chant en mettant rien dans le formulaire pour voir si le code pho disait quelque chose et il n'affiche rien

Oui c'est normal. Comme je te l'ai dis, il faut mettre quelque chose dans les blocs (là ou j'ai mis renvoie_formulaire() ou envoie_mail () ) si tu veux qu'il se passe quelque chose. Ces deux fonctions, je les ai inventées, elles n'existent pas. Soit tu les crées soit tu remplaces par autre chose.
Et il faut remplacer 'truc' par le nom de ton champs.

Pour vérifier 2 champs à la fois tu as l'opérateur && (ça veut dire 'et').
Dans le cas ou machin est un autre champs de formulaire:
if (isset($_POST['truc']) && isset($_POST['machin']) {
     if (!empty($_POST['truc']) && !empty($_POST['machin'])) {
             envoie_mail();
     }
     else {
             renvoie_formulaire();
     }
}
else{
     renvoie_formulaire();
}


isset() est une fonction qui permet de vérifier si une variable existe, et empty vérifie si une variable est une chaine de caractère vide, ou si la variable est égale à 0 (ou si sa valeur est False).

Si tu ne connait pas bien le Php, tu devrais regarder l'article sur le php sur ce site.
http://www.commentcamarche.net/php/phpintro.php3
0
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
Bonjour, je n'y arrive toujours pas avec les 4 chants, j'ai le message parce error je vous laisse voir l'erreur vous avez le formulaire : http://sons.gratuits.free.fr/formulaire.php vous remplicez n'importe koi et vous faites envoyer, et si vous pouvez m'expliquer le message d'erreur je sais que ça vient d'un pb php mais... merci
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
Parse error: parse error, unexpected '{' in ******************** on line 54


Un problème d'accolade dans la ligne 54.
Probablement parce que j'ai oublié une parenthèse à la fin ici (c'est corrigé):
if (isset($_POST['truc']) && isset($_POST['machin']))
0
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
j'ai toujours le mm message erreur parc error ligne 54 je te donne le code que j'ai améliorer pour mes 4 chants j'ai du merder là-dedant :
if (isset($_POST['nom']) && isset($_POST['email'])) && isset($_POST['url']) && isset($_POST['comment']){
if (!empty($_POST['nom']) && !empty($_POST['email'])) && !empty($_POST['url'])) && !empty($_POST['comment'])){
envoie_mail();
}
else {
renvoie_formulaire();
}
}
else{
renvoie_formulaire();
}

si tu peux me dire si y a erreur:) merci
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
if (isset($_POST['nom']) && isset($_POST['email']) &&                   isset($_POST['url']) && isset($_POST['comment']) ){
           if (!empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['url']) && !empty($_POST['comment']) ){
                           envoie_mail();
           }
          else {
                           renvoie_formulaire();
          }
}
else{
         renvoie_formulaire();
}


J'ai corrigé quelques soucis de parenthèses.
Mais tu as défini les fonctions envoie_mail() et renvoie_formulaire() ?
0
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
bjr, c bon le code fonctionne ! mais en fait pour l'option de renvois mail et renvois formulaire, n'est-il pas possible plutôt de mettre quand tout les chants sont remplis : merci... et quand les chants ne sont pas tous remplis, un message veuillez recommencer en mettant la fonction includ merci
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
Si, tu remplaces par
echo 'merci';

Et tu peux afficher un message, et rediriger au bout d'un certain temps:
echo '<html><head><META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://chemin_vers_page_formulaire"></head>';

echo '<body>merci de remplir tous les champs</body></html>';

à condition de n'avoir pas encore défini le <head>.....

http://www.htmlhelp.com/reference/html40/head/meta.html
0
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
bjr, merci mais j'ai encore un pb ! je dois avoir un pb de ( je pense je te donne le code donc avec tou les changements :
if (isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['url']) && isset($_POST['comment']) ){
if (!empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['url']) && !empty($_POST['comment']) ) { echo 'merci';} {
echo '<html><head><META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://sons.gratuits.free.fr/formulaire.php"></head>';

echo '<body>merci de remplir tous les champs</body></html>';}
si tu peux me regarder d'ou vient l'erreur... j'ai essayer de trouver mais ça me fait parce error merci
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
Il manque une guillemet ici à la fin (c'est corrigé)
echo '<html><head><META HTTP-EQUIV="Refresh" CONTENT="5>';
0
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
slt, je te r'envois donc le code qui ne marche toujours pas si ... tu peux me donner tout le code qui serrai exact pour mes infos :
if (isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['url']) && isset($_POST['comment']) ){
if (!empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['url']) && !empty($_POST['comment']) ) { echo 'merci';} {
echo '<html><head><META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://sons.gratuits.free.fr/formulaire.php"></head>';

echo '<body>merci de remplir tous les champs</body> </HTML>}
merci à mon avis ça doit pas être loin ou je doit me gourer quand je fais les copiers collé... merci
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
Bon allez je me lance.

<?php

if ( isset($_POST['url'])      &&
       isset($_POST['nom'])    &&
       isset($_POST['email']) &&    
       isset($_POST['comment']) 
    )
{
       echo 'merci';
}
else
{
       echo  '<html><head><META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://sons.gratuits.free.fr/formulaire.php"></head>'; 
      echo '<body>Merci de remplir tous les champs</body>';
}
?>


J'ai enlevé les conditions avec empty, je pense qu'on peut s'en passer.
0
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
slt, bon con code fonctionne à moitier ! cet -à-dire qu'on est remplis les chants ou pas il affiche toujours merci tu peux le tester en faisant le test avec le formulaire :
http://sons.gratuits.free.fr/formulaire
merci
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
Bon alors isset() n'est pas suffisant.
En ce cas essayons comme ça:
if ( isset($_POST['url']))
         $url=$_POST['url'];
if ( isset($_POST['nom']))
         $nom=$_POST['nom'];
if ( isset($_POST['email']))
         $email=$_POST['email'];
if ( isset($_POST['comment']) )
         $comment=$_POST['comment'];

if ($url && $nom && $email && $comment)
{
       echo 'merci';
}
else
{
       echo  '<html><head><META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://sons.gratuits.free.fr/formulaire.php"></head>'; 
      echo '<body>Merci de remplir tous les champs</body>';
}
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
C'était la dernière proposition avant une semaine....
Je pars en mini-vacances, bonne journée :-)

En esperant que ce code passe cette fois...
0
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 521
Du nouveau?
0
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
Bjr, le code fonctionne mais j'ai un petit pb encore ! :
quand je met le code fonction mail dans le echo (quand le formulaire est bien rempli), le code fonctionne mais le mail ne s'envois pas tu sais pourquoi?
0