Débutant en php aide pour mon form2mail

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 : Débutant en php aide pour mon form2mail

par bobcastor » 09 oct. 2005, 18:59

Super :D sa marche.

je te remercie c'est cool

par Cyrano » 09 oct. 2005, 18:47

Je suppose que tu n'as pas dû chercher beaucoup la raison : c'est pourtant logique. Le script PHP fait ce que tu as codé. Regarde attentivement le code en suivant le déroulement et en te posant les question: dans tel cas il se passe quoi, sinon il se passe quoi d'autre ?

Pour que ça marche, on va modifier un truc: change la valeur du champ caché de "ok" en "non" et essaye ensuite en modifiant le code comme ceci:
<html>
<head>
</head>
(ton début de design)
<body>
<?php
$nom     = isset($_POST['nom'])     ? $_POST['nom']     : "";
$prenom  = isset($_POST['prenom'])  ? $_POST['prenom']  : "";
$email   = isset($_POST['email'])   ? $_POST['email']   : "";
$site    = isset($_POST['site'])    ? $_POST['site']    : "";
$forum   = isset($_POST['forum'])   ? $_POST['forum']   : "";
$url     = isset($_POST['url'])     ? $_POST['url']     : "";
$sexe    = isset($_POST['sexe'])    ? $_POST['sexe']    : "";
$sujets  = isset($_POST['sujets'])  ? $_POST['sujets']  : "";
$message = isset($_POST['message']) ? $_POST['message'] : "";


if (($nom == "")||($prenom == "")||($email == "")||($site == "")||($forum == "")||($url == "")||($sexe == "")||($sujets == "")||($message == ""))
{
    if($nom == "")        print("Veuillez saisir le nom de l'utilisateur<BR>\n");
    if($prenom == "")     print("Veuillez saisir le prénom de l'utilisateur<BR>\n");
    if($email == "")      print("Veuillez saisir le mail de l'utilisateur<BR>\n");
    if($site == "")       print("Veuillez saisir le site de l'utilisateur<BR>\n");
    if($forum == "")      print("Veuillez saisir le forum de l'utilisateur<BR>\n");
    if($url == "")        print("Veuillez saisir l'url de l'utilisateur<BR>\n");
    if($sexe == "")       print("Veuillez saisir le sexe de l'utilisateur<BR>\n");
    if($sujets == "")     print("Veuillez saisir le sujets de l'utilisateur<BR>\n");
    if($message == "")    print("Veuillez saisir le message de l'utilisateur<BR>\n");
}
else
{
    $administrateur ="[email protected]";  //ton email
    $sujet ="Nouveau message du site"; // l'objet du mail
    $message ="Salut moi ! Je viens de recevoir un mail pour moi\n"; // note bien que ca fait : variable message = xxx
    $message .="Récapitulatif des informations saisies\n"; // et ensuite avec le . devant le =, on rajoute en plus a la variable message ce qui suit, etcc...
    $message .=" <UL> "; // le 'slash' n permet un retour chariot en php, c'est a dire que tu va pouvoir revenir a la ligne dans ton email en mode texte (en mode html, rajoute <br>)
    $message .="    <LI>Nom: $nom</LI> ";
    $message .="    <LI>Prenom: $prenom</LI> ";
    $message .="    <LI>E-mail: $email</LI> ";
    $message .="    <LI>Son site: $site</LI> ";
    $message .="    <LI>son forum: $forum</LI> ";
    $message .="    <LI>Url de sa banniére: $url</LI>  ";
    $message .="    <LI>Sexe: $sexe</LI> ";
    $message .="    <LI>Sujets: $sujets</lI> ";
    $message .="    <LI>Message: $message</LI> ";
    $message .="  </UL>  ";
    $message .=" ";

    mail ("$administrateur", "$sujet", "$message", "From: $email"); // ta fonction mail() si réputée en php
    if($_POST['afficher'] == "ok")
    {
?>
<p>Récapitulatif des informations saisies</p>
<ul>
  <li>Nom: <?php echo($nom); ?></li>
  <li>Prenom: <?php echo($prenom); ?></li>
  <li>E-mail: <?php echo($email); ?></li>
  <li>Votre site: <?php echo($site); ?></li>
  <li>Votre forum: <?php echo($forum); ?></li>
  <li>Url banniére: <?php echo($url); ?></li>
  <li>Sexe: <?php echo($sexe); ?></li>
  <li>Sujets: <?php echo($sujets); ?></li>
  <li>Message: <?php echo($message); ?></li>
</ul>
<?php
    }
    else
    {
?>
<script type="text/javascript">
<!--
window.location='./index.php';
// -->
</script><p><a href="http://www.stargate-label.com/index.html">Retour en page d'accueil</a></p>
<?php
    }
}
?>
</body>
</html>

par Invité » 09 oct. 2005, 18:34

toujours rien je vois toujours récapitulatif des saisie

par Cyrano » 09 oct. 2005, 18:28

J'ai du me gourrer, essaye avec :
<script type="text/javascript">
<!-- 
window.location='./index.php';
// -->
</script>

par bobcastor » 09 oct. 2005, 17:55

elle veut toujours pas se rediriger (désolé)

par Cyrano » 09 oct. 2005, 17:45

vers la fin:
//....
    else
    {
?>
<script type="text/javascript">
window.location('./index.html');
</script>
<p><a href="http://www.stargate-label.com/index.html">Retour en page d'accueil</a></p>
<?php
    }
//...

par bobcastor » 09 oct. 2005, 17:40

je suis désolé mais ou je mais ce javasript.
exactement.

je suis vraiment débutant en php j'ai commencé seulement il y a 2 jours

par Cyrano » 09 oct. 2005, 17:31

Dans ce cas, remplace le texte affiché par un JavaScript:
<script type="text/javascript">
window.location('./index.html');
</script>
MAIS attention, laisse quand même le lien de retour vers la page index : si jamais un internaute a désactivé le JavaScript de sa machin, la redirection ne fcontionnera pas. Sinon, il aura tout juste le temps d'apercevoir le lien et la page index va s'ouvrir.

par bobcastor » 09 oct. 2005, 17:16

merci sa marche super.

juste un truc aprés qu'il est cliquer sur envoyer j'aimerais pas qu'il vois
"Récapitulatif des informations saisies" mais qu'il soit rediriger directement
sur la page index de mon site

par Cyrano » 09 oct. 2005, 17:07

Attention à la casse, mets les valeurs d'attribut name de ton formulaire en minuscule, ça devrait fonctionner.

par bobcastor » 09 oct. 2005, 17:01

voila ce qu'il y a sur la page suivant quand je clique sur envoyer

Code : Tout sélectionner

(ton début de design) Veuillez saisir le sexe de l'utilisateur Veuillez saisir le sujets de l'utilisateur Veuillez saisir le message de l'utilisateur
et pourtant je saisie les infos

par Cyrano » 09 oct. 2005, 16:45

Tiens, essaye donc avec ça:
<html>
<head>
</head>
(ton début de design)
<body>
<?php
$nom     = isset($_POST['nom'])     ? $_POST['nom']     : "";
$prenom  = isset($_POST['prenom'])  ? $_POST['prenom']  : "";
$email   = isset($_POST['email'])   ? $_POST['email']   : "";
$site    = isset($_POST['site'])    ? $_POST['site']    : "";
$forum   = isset($_POST['forum'])   ? $_POST['forum']   : "";
$url     = isset($_POST['url'])     ? $_POST['url']     : "";
$sexe    = isset($_POST['sexe'])    ? $_POST['sexe']    : "";
$sujets  = isset($_POST['sujets'])  ? $_POST['sujets']  : "";
$message = isset($_POST['message']) ? $_POST['message'] : "";


if (($nom == "")||($prenom == "")||($email == "")||($site == "")||($forum == "")||($url == "")||($sexe == "")||($sujets == "")||($message == ""))
{
    if($nom == "")        print("Veuillez saisir le nom de l'utilisateur<BR>\n");
    if($prenom == "")     print("Veuillez saisir le prénom de l'utilisateur<BR>\n");
    if($email == "")      print("Veuillez saisir le mail de l'utilisateur<BR>\n");
    if($site == "")       print("Veuillez saisir le site de l'utilisateur<BR>\n");
    if($forum == "")      print("Veuillez saisir le forum de l'utilisateur<BR>\n");
    if($url == "")        print("Veuillez saisir l'url de l'utilisateur<BR>\n");
    if($sexe == "")       print("Veuillez saisir le sexe de l'utilisateur<BR>\n");
    if($sujets == "")     print("Veuillez saisir le sujets de l'utilisateur<BR>\n");
    if($message == "")    print("Veuillez saisir le message de l'utilisateur<BR>\n");
}
else
{
    if($_POST['afficher'] == "ok")
    {
?>
<p>Récapitulatif des informations saisies</p>
<ul>
  <li>Nom: <?php echo($nom); ?></li>
  <li>Prenom: <?php echo($prenom); ?></li>
  <li>E-mail: <?php echo($email); ?></li>
  <li>Votre site: <?php echo($site); ?></li>
  <li>Votre forum: <?php echo($forum); ?></li>
  <li>Url banniére: <?php echo($url); ?></li>
  <li>Sexe: <?php echo($sexe); ?></li>
  <li>Sujets: <?php echo($sujets); ?></li>
  <li>Message: <?php echo($message); ?></li>
</ul>
<?php
        $administrateur ="[email protected]";  //ton email
        $sujet ="Nouveau message du site"; // l'objet du mail
        $message ="Salut moi ! Je viens de recevoir un mail pour moi\n"; // note bien que ca fait : variable message = xxx
        $message .="Récapitulatif des informations saisies\n"; // et ensuite avec le . devant le =, on rajoute en plus a la variable message ce qui suit, etcc...
        $message .=" <UL> "; // le 'slash' n permet un retour chariot en php, c'est a dire que tu va pouvoir revenir a la ligne dans ton email en mode texte (en mode html, rajoute <br>)
        $message .="    <LI>Nom: $nom</LI> ";
        $message .="    <LI>Prenom: $prenom</LI> ";
        $message .="    <LI>E-mail: $email</LI> ";
        $message .="    <LI>Son site: $site</LI> ";
        $message .="    <LI>son forum: $forum</LI> ";
        $message .="    <LI>Url de sa banniére: $url</LI>  ";
        $message .="    <LI>Sexe: $sexe</LI> ";
        $message .="    <LI>Sujets: $sujets</lI> ";
        $message .="    <LI>Message: $message</LI> ";
        $message .="  </UL>  ";
        $message .=" ";

        mail ("$administrateur", "$sujet", "$message", "From: $email"); // ta fonction mail() si réputée en php
    }
    else
    {
?>
<p>Vous n'avez pas demandé que les informations soient affichées.</p>
<p>Le formulaire a cependant correctement été envoyé</p>
<p><a href="http://www.stargate-label.com/index.html">Retour en page d'accueil</a></p>
<?php
    }
}
?>
</body>
</html>

par DocType » 09 oct. 2005, 16:14

Vérifie un peu...le nombre de else n'est pas correct, ou plutot ton code qui fait:
if (blabla)   {
blabla
}   else   {
blabla
}   else   {
blabla
}
ET bien desolé de te l'apprendre mais un seul else par if...logique !
De plus, ton script n'est pas "propre". Les champs du formulaire se récupèrent avec $_POST ou $_GET... :roll:

Débutant en php aide pour mon form2mail

par bobcastor » 09 oct. 2005, 15:57

Salut a tous,

Voila je désire mettre un formulaire sur mon site.
mon hébergeur est ovh.com (300gp)
Niveau en php: débutant
Logiciel:webexpert 5

Question: j'aimerais quand le visiteur a terminé de remplir le formulaire et qu'il clique sur "envoyer".

Que le formulaire se retrouve dans ma boite mail.
Et surtout que ma page se réactulise en page d'acceuil.

merci pour vos réponse (repondez seulement si vous connaisser la réponse a mon probléme pas besoin de faire du hors-sujet)

code html

Code : Tout sélectionner

<FORM METHOD=POST ACTION="http://www.stargate-label.com/mail.php"> <PRE> Nom: <INPUT NAME=nom TYPE=text size=30> Prénom: <INPUT NAME=prenom TYPE=text size=30> E-mail: <INPUT NAME=email TYPE=text size=30> Votre site: <INPUT NAME=site TYPE=text size=30> Votre forum: <INPUT NAME=forum TYPE=text size=30> Url banniére: <INPUT NAME=url TYPE=text size=30> Sexe: <INPUT TYPE=RADIO NAME=Sexe VALUE=Masculin> Masculin <INPUT TYPE=RADIO NAME=Sexe VALUE=Féminin> Féminin Sujets: <INPUT NAME=Sujets TYPE=text size=39> Message: <TEXTAREA NAME=Message rows=5 cols=30></TEXTAREA> <INPUT TYPE=SUBMIT VALUE=Envoyer> <INPUT type=hidden name=afficher value=ok> </PRE> </FORM>
code php

Code : Tout sélectionner

<html><head></head> (ton début de design) <body> <?php if (($nom=="")||($prenom=="")||($email=="")||($site=="")||($forum=="")||($url=="")||($sexe=="")||($sujets=="")||($message=="")){ if($nom=="") print("Veuillez saisir le nom de l'utilisateur<BR>\n"); if($prenom=="") print("Veuillez saisir le prénom de l'utilisateur<BR>\n"); if($email=="") print("Veuillez saisir le mail de l'utilisateur<BR>\n"); if($site=="") print("Veuillez saisir le site de l'utilisateur<BR>\n"); if($forum=="") print("Veuillez saisir le forum de l'utilisateur<BR>\n"); if($url=="") print("Veuillez saisir l'url de l'utilisateur<BR>\n"); if($sexe=="") print("Veuillez saisir le sexe de l'utilisateur<BR>\n"); if($sujets=="") print("Veuillez saisir le sujets de l'utilisateur<BR>\n"); if($message=="") print("Veuillez saisir le message de l'utilisateur<BR>\n"); } else { echo "Récapitulatif des informations saisies<BR>\n <UL> <LI>Nom: $nom</LI> <LI>Prenom: $prenom</LI> <LI>E-mail: $email</LI> <LI>Votre site: $site</LI> <LI>Votre forum: $forum</LI> <LI>Url banniére: $url</LI> <LI>Sexe: $sexe</LI> <LI>Sujets: $sujets</lI> <LI>Message: $message</LI> </UL> "; } else { echo "<p>Vous n'avez pas demandé que les informations soient affichées.</p><p>Le formulaire a cependant correctement été envoyé</p><p><a href=\"http://www.stargate-label.com/index.html\">Retour en page d'accueil</a></p>"; } $administrateur ="[email protected]"; //ton email $sujet ="Nouveau message du site"; // l'objet du mail $message ="Salut moi ! Je viens de recevoir un mail pour moi\n"; // note bien que ca fait : variable message = xxx $message .="Récapitulatif des informations saisies\n"; // et ensuite avec le . devant le =, on rajoute en plus a la variable message ce qui suit, etcc... $message .=" <UL> "; // le 'slash' n permet un retour chariot en php, c'est a dire que tu va pouvoir revenir a la ligne dans ton email en mode texte (en mode html, rajoute <br>) $message .=" <LI>Nom: $nom</LI> "; $message .=" <LI>Prenom: $prenom</LI> "; $message .=" <LI>E-mail: $email</LI> "; $message .=" <LI>Son site: $site</LI> "; $message .=" <LI>son forum: $forum</LI> "; $message .=" <LI>Url de sa banniére: $url</LI> "; $message .=" <LI>Sexe: $sexe</LI> "; $message .=" <LI>Sujets: $sujets</lI> "; $message .=" <LI>Message: $message</LI> "; $message .=" </UL> "; $message .=" "; mail ("$administrateur", "$sujet", "$message", "From: $email"); // ta fonction mail() si réputée en php ?> </body> </html>
l'erreur que j'ai

Code : Tout sélectionner

Parse error: parse error, unexpected T_ELSE in /home/stargate/www/mail.php on line 36