Page 1 sur 1

[Résolu] Script recommandation.

Posté : 08 oct. 2011, 22:29
par WiseFun
Bonjour,

Je voudrai savoir pourquoi dans mon script pour recommander mon site les erreurs de variables s'affichent.
Ligne 9 if ($statut== "ok")
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Conseillez Monsitedot.com</title>
</head>
<body>
<?php
 if ($statut== "ok") {  
 if ($VotreEmail <> "") 
 { echo  "envoi de l'invitation &agrave; $SonEmail<BR>de $nom<HR>";
   $entetedate  = date( "D, j M Y H:i:s -0600");  // Offset horaire 
   $entetemail  =  "From: $from_email \n";  // Adresse exp�diteur 
   $entetemail .=  "Cc:$VotreEmail \n"; 
   $entetemail .=  "Bcc: \n";  // Copies cach�es 
   $entetemail .=  "Reply-To: $VotreEmail \n";  // Adresse de retour 
   $entetemail .=  "X-Mailer: PHP/" . phpversion() .  "\n" ;
   $entetemail .=  "Date: $entetedate";
   mail(
     "$SonEmail",
     "un site super ",
     "$nom t'invite a te rendre sur http://www.monsitedotnet.com\n c'est un super site ca\n$nom \n\n\n",
    $entetemail
  ); 
} 
 }
 ?>
Conseillez ce site &agrave; un(e) ami(e)<BR>
<form action="invite.php" method="post">
<table>


    <tr><td>Votre nom </td><TD>  <input type="Text" name="nom">
  <?  if (($nom == "")       and ($statut== "ok")) {echo  " Votre Nom S.V.P.";} ?>
       </td></tr>


    <tr><td>Votre Email </td><TD><input type="Text" name="VotreEmail">
  <?  if (($VotreEmail == "")and ($statut== "ok")) {echo  " Votre Email S.V.P.";} ?>
 </td></tr>


    <tr><td>Son EMail  </td><TD><input type="Text" name="SonEmail"></td></tr>
  <?  if (($SonEmail == "")  and ($statut== "ok")) {echo  " L'Email de votre ami S.V.P.";} ?>
 </td></tr>


    <tr><td></td></tr>
</table><input type="Hidden" name="statut" value="ok">
<input type="Submit" name="invite"></form>
</body>
</html>

Merci

Re: Script recommandation.

Posté : 08 oct. 2011, 23:01
par Ryle
C'est parce que la variable $statut n'a pas été définie dans ton script au moment ou tu tentes de tester sa valeur... php affiche donc un message d'avertissement pour te dire que ta variable n'est pas définie.

Cela est probablement du à un changement de la configuration par défaut de php lorsque tu changes de version, la variable register globals est désactivée (ce qui est une bonne chose, pour tout un tas de raisons, mais principalement de sécurité).

Si ta variables $statut provient d'un formulaire envoyé en get (ou si celui-ci est transmis par l'url), il te faut pour y faire référence utiliser $_GET['statut'] (si c'est d'un formulaire émis en post, ce sera alors $_POST['statut'])

Il est également recommandé de tester l'existence d'une variable avant de l'utiliser (avec isset par exemple) surtout lorsque tu ne sais pas si celle-ci sera bien transmise à ton script..

Re: Script recommandation.

Posté : 08 oct. 2011, 23:44
par WiseFun
Bonjour,
désolé mais je ne vois pas mon erreur
<?php 
$statut = $_GET['statut'];
$VotreEmail = $_GET['VotreEmail'];
 if ($statut== "ok") {
		 if ($VotreEmail <> "") 
		 { echo  "envoi de l'invitation &agrave; $SonEmail<BR>de $nom<HR>";
		   $entetedate  = date( "D, j M Y H:i:s -0600");  // Offset horaire 
		   $entetemail  =  "From: $from_email \n";  // Adresse expéditeur 
		   $entetemail .=  "Cc:$VotreEmail \n"; 
		   $entetemail .=  "Bcc: \n";  // Copies cachées
		   $entetemail .=  "Reply-To: $VotreEmail \n";  // Adresse de retour 
		   $entetemail .=  "X-Mailer: PHP/" . phpversion() .  "\n" ;
		   $entetemail .=  "Date: $entetedate";
		   mail(
			 "$SonEmail",
			 "un site super ",
			 "$nom vous invite à vous rendre sur http://www.monsitedotnet.com\n c'est un super site \n$nom \n\n\n",
			$entetemail
		  ); 
} 
 }
 ?>
Conseillez ce site &agrave; un(e) ami(e)....<BR>
<form action="recommander.php" method="post">
<table>


    <tr>
        <td>Votre nom </td>
        <td>  <input type="text" name="nom"></input>
                <?php  if (($nom == "") and ($statut== "ok")) {echo  " Votre Nom S.V.P.";} ?>
       </td>
    </tr>
    <tr>
        <td>Votre Email </td>
        <td><input type="Text" name="VotreEmail"/>
        <?php  if (($VotreEmail == "")and ($statut== "ok")) {echo  " Votre Email S.V.P.";} ?>
        </td>
    </tr>
    <tr>
        <td>Son EMail  </td>
        <td>
            <input type="Text" name="SonEmail"/>
              <?php  if (($SonEmail == "")  and ($statut== "ok")) {echo  " L'Email de votre ami S.V.P.";} ?>
        </td>
    </tr>


    <tr><td></td></tr>
</table>
<input type="Hidden" name="statut" value="ok"/>
<input type="Submit" name="invite"/>
</form>
maintenat il bloque à cette ligne $VotreEmail = $_GET['VotreEmail'];
il ne veut pas de VotreEmail.et puis il marque une erreur à la ligne 51 qui est :"<?php if (($nom == "") and ($statut== "ok")) {echo " Votre Nom S.V.P.";} ?>

merci

Re: Script recommandation.

Posté : 09 oct. 2011, 09:16
par moogli
Salut,

Donne nous le message que l'on t'explique comment le traduire afin que tu soit autonome ;)

@+

Re: Script recommandation.

Posté : 09 oct. 2011, 12:46
par WiseFun
Bonjour,
voici les messages d'erreurs .

Code : Tout sélectionner

( ! ) Notice: Undefined index: statut in C:\wamp\www\B_a_ba\recommander.php on line 22 Call Stack # Time Memory Function Location 1 0.0014 684440 {main}( ) ..\recommander.php:0 ( ! ) Notice: Undefined index: VotreEmail in C:\wamp\www\B_a_ba\recommander.php on line 23 Call Stack # Time Memory Function Location 1 0.0014 684440 {main}( ) ..\recommander.php:0 Conseillez ce site à un(e) ami(e).... Votre nom ( ! ) Notice: Undefined variable: nom in C:\wamp\www\B_a_ba\recommander.php on line 51 Call Stack # Time Memory Function Location 1 0.0014 684440 {main}( ) ..\recommander.php:0 Votre Email Son EMail ( ! ) Notice: Undefined variable: SonEmail in C:\wamp\www\B_a_ba\recommander.php on line 64 Call Stack # Time Memory Function Location 1 0.0014 684440 {main}( ) ..\recommander.php:0
Merci

Re: Script recommandation.

Posté : 09 oct. 2011, 12:59
par Ryle
Il faut un peu de cohérence, ton formulaire est envoyé en utilisant la méthode POST, les variables que tu vas récupérer seront donc dans la superglobale $_POST et pas $_GET :)

De plus, quand tu arrives sur ce formulaire la première fois, aucune donnée n'a encore été envoyée depuis le formulaire. Il te faut donc gérer ce cas également (en testant l'existence de l'une de ces données avant d'essayer d'en tester la valeur)

Re: Script recommandation.

Posté : 09 oct. 2011, 13:21
par WiseFun
Bonjour,
C'est bien ce qui me semblait.
Donc je vais tous refaire en suivant tous vos conseils.

Merci .

Re: Script recommandation.

Posté : 09 oct. 2011, 13:32
par WiseFun
Bonjour,
voilà le script refait et plus simple.

$nom = $_POST['nom'];
$mail=$_POST['mail'];
$votreNom = $_POST['votreNom'];
if (isset($_POST['nom']))
  {
	  if (isset($_POST['mail']))
	  {
		  if (isset($_POST['votreNom']))
		  {
			$to="$mail";
			$subject = "Découvrie ce site";
			$message=" Bonjour,\n\n\n  
				   Votre ami(e) $nom vous recommande ce site :\n\n  
				   http://www.monsitedotnet.com\n\n 
				   A bientôt !\n\n 
				   $nom\n\n
				   P.S Merci de ne pas répondre à ce message .\n\n ";
				   Mail("$to","$subject","$message","from:[email protected]");
				  
			 
			 Mail("[email protected]","Une recommandation.","Nom de la personne :  $nom \n Mail de reco : $mail","Son nom  : $votreNom","from: [email protected]"); 
		  }
	  }
 }
 else
 {
	 echo'Merci de remplir tous les champs';
 }
?>
mais si on ne rentre rien le Else ne s'affiche pas mais l'erreur de php
Merci de votre recommandation ! 


Elle a été envoyé avec succès . :


RETOUR


Warning: mail() [function.mail]: SMTP server response: 503 Bad sequence of commands. You must specify the recipients of a message before you can send it in F:\Inetpub\vhosts\monsitedotnet.com\httpdocs\recommanderScript.php on line 53
merci

Re: Script recommandation.

Posté : 09 oct. 2011, 22:49
par WiseFun
Bonjour,
j'ai pu corriger toutes les erreurs.
voici le code fini et fonctionnel
<?php

if (isset($_POST['reco']))
{	 
			if(empty($_POST['nom']))
			{
				 $nom=FALSE;
        		echo "<p><font color='red'>Veuillez indiquez le prénom de votre amie</font></p>";
				echo" <p><a href='recommander.php'>Recommencer</a></p>";
			}
			else{
				$nom=$_POST['nom'];
			}
			if(empty($_POST['mail']))
			{
				 $mail=FALSE;
        		echo "<p><font color='red'>Veuillez indiquez l'adresse E-mail de votre amie</font></p>";
				echo" <p><a href='recommander.php'>Recommencer</a></p>";
			}
			else{
				$mail=$_POST['mail'];
			}
			if(empty($_POST['votreNom']))
			{
				 $votreNom=FALSE;
        		echo "<p><font color='red'>Veuillez indiquez votre nom</font></p>";
				echo" <p><a href='recommander.php'>Recommencer</a></p>";
			}
			else{
				$votreNom=$_POST['votreNom'];
			}
			if(($nom==true) && ($mail==true) && ($votreNom==true))
			{
			
				$to="$mail";
				$subject = "Découvrir ce site";
				$message=" Bonjour,\n\n\n  
				   Votre ami(e) $nom vous recommande ce site :\n\n  
				   http://www.monsitedotnet.com\n\n 
				   A bientôt !\n\n 
				   $nom\n\n
				   P.S Merci de ne pas répondre à ce message .\n\n ";
				   Mail("$to","$subject","$message","from:[email protected]");
					
                     Mail("[email protected]","Une recommandation.","Nom de la personne :  $nom \n Mail de recommandation : $mail","Son nom  : $votreNom","from:[email protected]"); 
				?>
                <p align="center"><b><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><br/>
             	 <br>
             	 Merci de votre recommandation  !
           		 <br/>
              	<br/>
              	<br/>
             	 Elle a &eacute;t&eacute; envoy&eacute; avec succ&egrave;s  :<br/>
             	</font></b></p>
				<br>
				<p align="center"> <a href="http://www.monsitedotnet.com"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">RETOUR</font></a></p>
             <?php
			}
 }
 
?>


Merci