PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#26 02-02-2010 12:04:32

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

"Enlèves la virgule que tu ajoutes devant $email1. ^^" ou ? num de la ligne ? tu parle de la ligne 55 ? c'est pas email1 mais email que tu voulais dire ?

"Donc je soupçonne le champ qui n'a pas été remplie d'être remplie quelque part dans ton script." mum... euh je pense pas j'ai regardé je vois pas trop a quel moment dans le script ?

c'est a dire une "variable locale" ?^^

Hors ligne

#27 02-02-2010 12:35:22

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : page de recommandation de site

pb ligne 48
#
$email = "";
#
    if (!empty($email1)) $email .= ','.$email1; <= y aune virgule devant email 1 donc forcement y auar ,truc@machin.fr etc
#
    if (!empty($email2)) $email .= ','.$email2;
#
    if (!empty($email3)) $email .= ','.$email3;
#
    if (!empty($email4)) $email .= ','.$email4;
#
    if (!empty($email5)) $email .= ','.$email5;
#
    if (!empty($email6)) $email .= ','.$email6;

pourquoi tu ne construit pas $email au fur et a mesure du 1er test d'existantce des variables  ? tu fait deux ou trois fois le même test (empty) !

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#28 02-02-2010 12:38:45

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : page de recommandation de site

Tant que tu n'auras pas testé si ta variable est réellement vide en l'affichant avec ma méthode de debug tu ne le sauras pas david7.
Sinon tu n'aurais aucun bug dans ton script et tu ne serais pas venu demander de l'aide. ^^

$_GET = une variable qui est globale pour PHP
Elle est accessible dans n'importe quelle fonction ou classe.

$maVar = variable locale. Elle n'est accessible que dans le bloc où je la déclare, donc si tu la mets dans une fonction elle ne sera accessible que dans la fonction et pas en dehors par exemple.

Hors ligne

#29 02-02-2010 13:10:56

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

ca marcheeeeeeeee !!! j'ai retiré la virgule j'ai testé super ! enfin smile MERCI A XTG ET AUSSI A MOOGLI

"pourquoi tu ne construit pas $email au fur et a mesure du 1er test d'existantce des variables  ? tu fait deux ou trois fois le même test (empty) !"
oui bonne idée mais de quelle façon ?
comme ceci ?


  if (!empty($email3) && !EmailOK($email3))
  {
    $_GET["msg"] = "email3 est invalide";
    if (!empty($email3)) $email .= ','.$email3;
  }
  if (!empty($email4) && !EmailOK($email4))
  {
    $_GET["msg"] = "email4 est invalide";
    if (!empty($email4)) $email .= ','.$email4;
  }
.....etc........
 

xtg : oui je vois ton idée pour les messages d'erreurs c'est interessant c'est surtout plus propre je vais voir comment faire

Hors ligne

#30 02-02-2010 13:22:24

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

a non pardon je voulais dire comme ceci :


  if (!empty($email3)) $email .= ','.$email3;
  if (!empty($email3) && !EmailOK($email3))
  {
    $_GET["msg"] = "email3 est invalide";
  }
  if (!empty($email4)) $email .= ','.$email4;
  if (!empty($email4) && !EmailOK($email4))
  {
    $_GET["msg"] = "email4 est invalide";
  }
 

non ? hmm

Dernière modification par david7 (02-02-2010 13:23:50)

Hors ligne

#31 02-02-2010 13:32:46

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : page de recommandation de site

C'est ça, sauf que pour gagner en optimisation tu peux mettre l'affectation de variable ($email3 => $email) dans un else. smile

Hors ligne

#32 02-02-2010 13:40:40

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

comme ceci :


  if (!empty($email3) && !EmailOK($email3))
  {
    $_GET["msg"] = "email3 est invalide";
  }
  else
  {
  $email .= ','.$email3;
    if (!empty($email4) && !EmailOK($email4))
    {
      $_GET["msg"] = "email4 est invalide";
    }
    else
    {
    $email .= ','.$email4;
.......etc..........
 

Hors ligne

#33 02-02-2010 13:56:56

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : page de recommandation de site

Pas besoin d'imbriquer tes autres champs dans le else.
Ainsi ils pourront remplir n'importe quel champ et il sera pris en compte.

Hors ligne

#34 02-02-2010 14:05:39

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

? c'est à dire ? tu pourrais me faire voir un model stp ?

Hors ligne

#35 02-02-2010 14:11:27

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : page de recommandation de site


if (!empty($email3) && !EmailOK($email3))
  {
    $_GET["msg"] = "email3 est invalide";
  }
  else
  {
    $email .= ','.$email3;
  }
if (!empty($email4) && !EmailOK($email4))
{
  $_GET["msg"] = "email4 est invalide";
}
else
{
...

Hors ligne

#36 02-02-2010 16:23:32

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

pouh.. j'ai testé, je reçois plus aucun email !

voici la derniere version de la page :

<?php

include("../inc/conf.php");
include("../inc/fonctions.php");
include("verif.php");

if (isset($_POST["action"]) && $_POST["action"] == "send")
{
  $email1 = postInput($_POST["email1"]);
  $email2 = postInput($_POST["email2"]);
  $email3 = postInput($_POST["email3"]);
  $email4 = postInput($_POST["email4"]);
  $email5 = postInput($_POST["email5"]);
  $email6 = postInput($_POST["email6"]);
  $message = postTextarea($_POST["message"]);

  $email = "";

  if (!empty($email1) && !EmailOK($email1))
  {
    $_GET["msg"] = "email1 est invalide";
  }
  if (!empty($email2) && !EmailOK($email2))
  {
    $_GET["msg"] = "email2 est invalide";
  }
  else
  {
    $email .= ','.$email2;
  }
  if (!empty($email3) && !EmailOK($email3))
  {
    $_GET["msg"] = "email3 est invalide";
  }
  else
  {
    $email .= ','.$email3;
  }
  if (!empty($email4) && !EmailOK($email4))
  {
    $_GET["msg"] = "email4 est invalide";
  }
  else
  {
    $email .= ','.$email4;
  }
  if (!empty($email5) && !EmailOK($email5))
  {
    $_GET["msg"] = "email5 est invalide";
  }
  else
  {
    $email .= ','.$email5;
  }
  if (!empty($email6) && !EmailOK($email6))
  {
    $_GET["msg"] = "email6 est invalide";
  }
  else
  {
    $email .= ','.$email6;
  }
  if (empty($_GET["msg"]))
  {
    $message = addslashes($message);
    $dateheure = date("Y-m-d H:i:s");

    mail($email,"[NomSite] Invitation","Bonjour,

[url]http://www.nomsite.fr/membres/inscription.php[/url]

$message

Cordialement, NomSite
-----
Ceci est un message automatique
Merci de ne pas répondre","From: ".$config["noreply"]);

    header("location: inviter.php?msg=OK");
    exit();
  }
}
else
{
  $email1 = "";
  $email2 = "";
  $email3 = "";
  $email4 = "";
  $email5 = "";
  $email6 = "";
  $message = "";
}

include("../inc/header.php");

?>

        <h1>Parrainez ici vos amis !</h1>

<?php

if (!empty($_GET["msg"]))
{
$msg = str_replace("+"," ",$_GET["msg"]);
$msg = stripslashes($msg);
echo("$msg<br /><br />");
}

?>

<form action="inviter.php" method="post">
<input type="hidden" name="action" value="send" />

<table border="0" cellspacing="1" cellpadding="3">
  <tr>
    <td colspan="2">Emails de vos amis :<br />(Vous pouvez recommander 6 amis maximum).</td>
  </tr>
  <tr>
    <td>1.<input type="text" name="email1" size="30" value="<?php echo($email1); ?>" maxlength="155" /></td>
    <td>2.<input type="text" name="email2" size="30" value="<?php echo($email2); ?>" maxlength="155" /></td>
  </tr>
  <tr>
    <td>3.<input type="text" name="email3" size="30" value="<?php echo($email3); ?>" maxlength="155" /></td>
    <td>4.<input type="text" name="email4" size="30" value="<?php echo($email4); ?>" maxlength="155" /></td>
  </tr>
  <tr>
    <td>5.<input type="text" name="email5" size="30" value="<?php echo($email5); ?>" maxlength="155" /></td>
    <td>6.<input type="text" name="email6" size="30" value="<?php echo($email6); ?>" maxlength="155" /></td>
  </tr>
  <tr>
    <td colspan="2">Message personnalisé (optionnel) :</td>
  </tr>
  <tr>
    <td colspan="2"><textarea name="message" cols="40" rows="5"><?php echo($message); ?></textarea></td>
  </tr>
</table>

<br />

<input type="submit" value="Valider" />

</form>

<?php

include("../inc/footer.php");

?>

Hors ligne

#37 02-02-2010 16:49:39

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : page de recommandation de site

Bah et l'email1 il est passé où ? ^^

Hors ligne

#38 02-02-2010 17:43:47

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

comme ceci ?

  if (!empty($email1) && !EmailOK($email1))
  {
    $_GET["msg"] = "email1 est invalide";
  }
  else
  {
    $email .= ''.$email1;
  }

j'ai testé je recois !

tu as d'autre suggestion pour l'amélioration du code ?

Dernière modification par david7 (02-02-2010 17:49:09)

Hors ligne

#39 02-02-2010 18:18:57

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : page de recommandation de site

Ta fichue utilisation de la variable $_GET alors que tu ne changes pas de page. ^_-
Sinon rien à redire.

Hors ligne

#40 02-02-2010 21:47:03

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

j'ai rempli qu'un seul email je recois rien ! puis quand je rempli les 6 ca marche, pourquoi ?

Hors ligne

#41 02-02-2010 21:59:14

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : page de recommandation de site

Essayes sur cette base pour la vérification :


if (!empty($email5))
  {
    if( !EmailOK($email5) )
      $_GET["msg"] = "email5 est invalide";
    else
      $email .= ','.$email5;
  }

Car auparavant ça remplissait avec des emails vides.

Dernière modification par xTG (02-02-2010 22:00:24)

Hors ligne

#42 02-02-2010 22:45:38

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

il manque pas un { } avant/aprés ton else ?

Hors ligne

#43 03-02-2010 08:45:31

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : page de recommandation de site

Si tu n'as qu'une instruction qui suit tu peux t'en passer.
Exemple :

if( ....)
{
    mon action
}
else
{
    mon action 2
    mon action 3
}

if( ... )
   mon action
else
   mon action 2
mon action faite quelque soit le résultat du if

Hors ligne

#44 03-02-2010 09:40:34

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

toujours la meme chose ! je reçois rien si je rempli pas les 6.
une fois que je rempli les 6 emails, je les recois bien mais dans le mail il y a les 6 destinataires, comment faire pour en avoir qu'un ?

Hors ligne

#45 03-02-2010 11:22:26

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : page de recommandation de site

Serait peut être temps de tester ce que je t'ai appris pour le debug, car je suis persuadé que tes soit-disant champs vide ne le sont pas. ^^

Hors ligne

#46 03-02-2010 18:58:57

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

bon aprés plus de 45 posts j'arrete, j'abandonne ! je vais finalement faire un simple textarea
trop de temps de perdu (presque une semaine pour une page)
je voulais faire un ajoute de recommandation a mon espace membre mais bon.. un textarea c'est bien aussi ! sauf pour la vérif de chaque emails ca va pas être facile.... peut etre un nouveau post sur le forum trés bientot^^ lol
merci xTG wink

Hors ligne

#47 03-02-2010 22:46:06

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : page de recommandation de site

Pour ta vérification une petite fonction qui peut t'être utile :

$tableau = explode(';',$textarea_email);

Hors ligne

#48 04-02-2010 09:34:36

david7
Membre
Inscription : 05-06-2009
Messages : 87

Re : page de recommandation de site

merci je prend note pour l'instant je remplace les verif de toutes mes pages par des empty

Hors ligne

Pied de page des forums