AccueilAideRechercherIdentifiez-vousInscrivez-vous

Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
17 Mai 2012 à 07:03:55

Connexion avec identifiant, mot de passe et durée de la session
Rechercher
    avancée

News

Stats
8763 Messages dans 1087 Fils de discussion par 1000 Membres
Dernier membre: totor 94
+  PHP Astux
|-+  Langages Web
| |-+  (x)HTML, CSS, JS (client)
| | |-+  Envoiyer un article à un ami
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Envoiyer un article à un ami  (Lu 1293 fois)
falltech
Néophyte
*
Messages: 0


« le: 23 Décembre 2009 à 14:04:57 »

Bonjour,

Quelqu'un pourrais m'aider. Je voudrais créer dans mon page web un lien vers un formulaire où les visiteurs pourrais suggérer à leurs amis des articles et/ou mon un lien vers mon site.

J'ai deux page :

1) renault_fluence_z.e._concept.php comportant le lien vers la page  recommander.php ou se trouve le formulaire de plus quant je clic sur le lien rien de ne passe et voici le contenu :

Code javascript mis dans <head></head>:

<script type="text/javascript">
   function popUp(URL)
   {
      day = new Date();
      id = day.getTime();
      eval("page" + id + " = window.open(URL, '" + id + "',
      'toolbar=0, scrollbars=1, location=0, statusbar=0, menubar=0, resizable=1, width=700, height=700');");
   }
</script>

Lien vers la page recommander.php

    <a href="javascript:popUp('recommander.php');">
Enoyer à un ami
</a>

Et afin le code php de la page recommander.php

<?php
   // Configuration basique du script

   // ETAPE 1 : renseignez les valeurs ci-dessous
   $subject = "Recommandation d'un site"; // sujet de l'email
   $url_site = 'http://www.senauto.org'; // L'adresse de votre site
   $sitename = "Senauto"; // nom de votre site
   $recevoir_copie = 'oui'; // si 'oui', vous recevrez une copie de chaque mail de recommandation
   $mon_mail = 'moi@monsite.ext'; // votre email pour recevoir les copies

   // ETAPE 2 : renseignez le chemin relatif vers le fichier antispam.php
   require_once('antispam.php'); // pour définir les questions et les réponses

   // C'EST TOUT :-)


   // Ces fonctions viennent de NewsletTux 2.
   // Rec récupère un  message textuel
   function Rec($text)
   {
      $text = trim($text); // delete white spaces after & before text
      if (1 === get_magic_quotes_gpc())
      {
         $stripslashes = create_function('$txt', 'return stripslashes($txt);');
      }
      else
      {
         $stripslashes = create_function('$txt', 'return $txt;');
      }

      // magic quotes ?
      $text = $stripslashes($text);
      $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
      $text = nl2br($text);
      return $text;
   };

   // IsEmail vérifie la syntaxe d'un email
   function IsEmail($email)
   {
      $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
      return (eregi($pattern,$email)) ? true : false;
   };

   // Envoie le mail
   function SendRecommandMail($recipient, $subject, $message, $exp_nom, $exp_mail)
   {
      $headers = 'From: '.stripslashes($exp_nom).' <'.$exp_mail.'>' . "\r\n";
      $headers .= 'Reply-To: '.$exp_mail. "\r\n";
      $message = html_entity_decode($message);
      $message = str_replace('&#039;',"'",$message);
      $message = str_replace('&#8217;',"'",$message);
      $message = str_replace('<br>','',$message);
      $message = str_replace('<br />','',$message);

      return mail($recipient,$subject,$message,$headers);
   };

   // récuperation des variables
   $origine_nom   = (isset($_POST['origine_nom']))   ? Rec($_POST['origine_nom']) : '';
   $origine_email = (isset($_POST['origine_email'])) ? Rec($_POST['origine_email']) : '';
   $desti_nom     = (isset($_POST['desti_nom']))     ? Rec($_POST['desti_nom']) : '';
   $desti_email   = (isset($_POST['desti_email']))   ? Rec($_POST['desti_email']) : '';
   $message       = (isset($_POST['message']))       ? Rec($_POST['message']) : '';
   $errform = false;

   // n'oublions pas les 2 variables du captcha :
   $code  = (isset($_POST['code']))  ? strtolower(Rec($_POST['code'])) : ''; // contient la réponse du visiteur
   $nospam_question = (isset($_POST['nospam_question'])) ? $_POST['nospam_question'] : ''; // contient un nombre : le numéro de la vraie réponse

   if (isset($_POST['submit'])) // formulaire validé, on le traite
   {
      // Vérification des emails
      $origine_email = (IsEmail($origine_email)) ? $origine_email : '';
      $desti_email = (IsEmail($desti_email)) ? $desti_email : '';

      // On demande la vraie réponse
      $verif_spam = NoSpamQuestion('ans', $nospam_question);

      // on compare la 'vraie' réponse et celle du visiteur
      if ($code != strtolower($verif_spam['answer']))
      {
         // le formulaire s'arrête ici
         echo '<p>Vous n\'avez pas répondu correctement à la question ....<br /><a href="javascript:window.close();">Fermer la fenêtre</a></p>'."\n";
      }
      else // code OK : c'est un humain
      {
         // valeurs obligatoires : mail de l'expéditeur, mail du destinataire.
         if (($origine_email != '') && ($desti_email != ''))
         {
            // les 2 emails sont remplis ... On peut envoyer ce qu'il faut !
            $final_message = 'Bonjour';

            // Ajout du nom du destinataire si existant :
            $final_message .= ($desti_nom != '') ? ' '.$desti_nom : '';

            // Ajout du nom de l'expéditeur si existant
            $final_message .= ($origine_nom != '') ? "\n".$origine_nom : "\nUn visiteur";

            // message générique
            $final_message .= ' voudrait vous recommander ce site : '.$url_site;

            // Ajout du message personnalisé si existant
            if ($message != '')
            {
               $final_message .= "\n\n-------------------------\nIl (Elle) a ajouté le message suivant :\n".nl2br(stripslashes($message));
            }

            // Fin du contenu du mail
            $final_message .= "\nA bientôt sur ".$url_site."\nL'équipe d'administration.";

            // Envoi du message
            $exp_nom = $sitename;
            $exp_mail = $origine_email;
            if ($origine_nom != '')
            {
               $exp_nom = $origine_nom.' (depuis '.$sitename.')';
            };

            if ($recevoir_copie == 'oui')
               $destinataires = $desti_email.';'.$mon_mail;
            else
               $destinataires = $desti_email;

            if (SendRecommandMail($destinataires, $subject, $final_message, $exp_nom, $exp_mail))
            {
               echo '<p>Votre message est bien parti, merci d\'avoir recommandé ce site !</p>'."\n";
            }
            else
            {
               echo '<p>Votre message n\'a pu être envoyé : il y a une erreur au niveau du sereveur de mail. Veuillez nous excuser et réessayer sous peu, cela sera vite réparé.</p>'."\n";
            };

            echo '<p style="text-align:center;"><a href="javascript:window.close();">Fermer la fenêtre !</a></p>'."\n";
         }
         else
         {
            $errform = true;
         };
      };
   };

   if ($errform)
   {
      echo '<p>Vous avez fait une erreur dans la saisie du formulaire... Vérfiez que vous ayiez bien mis un seul email de destination et que le vôtre soit correctement écrit.</p>';
   };

   $tabindex = 1;
   if ((!isset($_POST['submit'])) || ($errform)) // formulaire non validé ou avec une erreur
   {
      // on tire au sort une question
      $nospam = NoSpamQuestion();

      echo '<form id="recommander" method="post" action="">'."\n";
      echo '   <fieldset><legend>A propos de vous ...</legend>'."\n";
      echo '      <p><label for="origine_nom">Votre nom :</label><input type="text" id="origine_nom" name="origine_nom" value="'.$origine_nom.'" tabindex="'.$tabindex.'" /></p>'."\n"; $tabindex++;
      echo '      <p><label for="origine_email">Votre email* :</label><input type="text" id="origine_email" name="origine_email" value="'.$origine_email.'" tabindex="'.$tabindex.'" /></p>'."\n"; $tabindex++;
      echo '   </fieldset>'."\n";

      echo '   <fieldset><legend>Envoyer à ...</legend>'."\n";
      echo '      <p><label for="desti_nom">Nom du destinataire :</label><input type="text" id="desti_nom" name="desti_nom" value="'.$desti_nom.'" tabindex="'.$tabindex.'" /></p>'."\n"; $tabindex++;
      echo '      <p><label for="desti_email">Email du destinataire* :</label><input type="text" id="desti_email" name="desti_email" value="'.$desti_email.'" tabindex="'.$tabindex.'" /></p>'."\n"; $tabindex++;
      echo '   </fieldset>'."\n";

      echo '   <fieldset><legend>Message + Contrôle</legend>'."\n";
      echo '      <p><label for="message">Ajouter un message perso ?</label><textarea id="message" cols="35" rows="8" name="message" tabindex="'.$tabindex.'">'.$message.'</textarea></p>'."\n"; $tabindex++;
      echo '      <p><label for="code">Ecrivez en LETTRES le résultat* : '.$nospam['question'].'</label><input type="text" name="code" id="code" /><input type="hidden" name="nospam_question" value="'.$nospam['num'].'" /></p>'."\n";
      echo '   </fieldset>'."\n";
      echo '   <div style="text-align:center;"><input type="submit" name="submit" value="Envoyer mon mail !" /></div>'."\n";
      echo '</form>'."\n";
      echo '<p style="font-style:italic;">* Les champs marqués d\'une astérisque sont obligatoires.</p>'."\n";
   };
?>

Merci de m'aider à réssoudre ce problème!

Journalisée
Matthieu
Administrateur
Membre Héroïque
*
Sexe: Homme
Messages: 3461


Unreal Power...


WWW
« Répondre #1 le: 23 Décembre 2009 à 21:04:03 »

hello

il existe les balises [*code] pour mettre tes codes. Merci de les utiliser, on y gagne en clarté.

Ensuite, je n'ai pas compris le pb : si "il ne se passe rien", il doit bien au moins se produire une erreur ... (dans l'hypothèse où un autre comportement était attendu).
donc regarde les erreurs javascript, les erreurs HTML  et/ou PHP.
As-tu un bloqueur de pop-up ?
Journalisée

Pages: [1]   Haut de page
Imprimer
Aller à:  

Powered by SMF 1.1.16 | SMF © 2011, Simple Machines
Amber design by Bloc | XHTML | CSS