Page 1 sur 1

recherhce de script php : envoyer à un ami

Posté : 19 mai 2006, 23:06
par fersayn
bonjour,

je mets des news en ligne et je cherche un script hp qui permet à l'internaute d'envoyer par la news à un ami contenant le titre de la page, le site etc .... pas forcement tout la news mais au moins le lien comme on voit en ce moment.

Quelqu'un aurait un script à adapter??

Re: recherhce de script php : envoyer à un ami

Posté : 20 mai 2006, 14:31
par Truc
Salut,
Quelqu'un aurait un script à adapter??
<< :google: >> doit en avoir lui :wink:

Posté : 20 mai 2006, 15:38
par fersayn
merci ganesha...

j'ai installer une page de recommandation qui fonctionne trés bien avec popup etc...

mais je cherche la fonction qui permet de mettre le lien dans le mail: c'a dire la fonction qui permet de connaitre l'adresse de la page qui va etre recommandée.

merci de ton aide....

Posté : 20 mai 2006, 15:47
par Truc
Regarde du coté des variables $_SERVER:
$_SERVER['SCRIPT_NAME']

Posté : 20 mai 2006, 16:40
par fersayn
Ok, j'ai trouvé la fonction: $_SERVER["HTTP_REFERER"]

la fonction marche mais je n'arrive pas à l'inclure dans l'envoi, il me dit:

Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/data/lri/8/K/4/B/8K4B58RP/docs/recomail.php3 on line 18

voici ce à quoi j'ai pensé:
<?php
include("config.inc.php3");
$Description=str_replace('"','',$Description);
?>
<HTML>
<HEAD>
<LINK REL="stylesheet" TYPE="text/css" HREF="/styles.css">
<?php
function EmailOK($email)
{
return ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',$email);
}

if($action == 'sent')
  {
   if(EmailOK($toemail) && EmailOK($fromemail) && !empty($from) && !empty($to))
     {
      $message="Bonjour $to,\n\n$from ($fromemail) souhaiterait vous recommander $TitreSite.\n\n$Description\n\nL'adresse : $URLSite\n\[b]nVotre ami vous recommande l'article suivant: $_SERVER["HTTP_REFERER"][/b]\n\nLe Webmaster ";
      if(eregi("^le ",$TitreSite))
        {
         $message.="du ";
         $TitreSiteTmp=substr($TitreSite,3);
        }
      elseif(eregi("^les ",$TitreSite))
        {
         $message.="des ";
         $TitreSiteTmp=substr($TitreSite,4);
        }
      elseif(eregi("^a",$TitreSite) || eregi("^e",$TitreSite) || eregi("^i",$TitreSite) || eregi("^o",$TitreSite) || eregi("^u",$TitreSite) || eregi("^y",$TitreSite))
        {
         $message.="d'";
         $TitreSiteTmp=$TitreSite;
        }
      else
        {
         $message.="de ";
         $TitreSiteTmp=$TitreSite;
        }
      $message.="$TitreSiteTmp\n$URLSite";
      $message=str_replace("\'","'",$message);
      mail("$toemail","$Sujet","$message","From: $email");
      $message="$from ($fromemail) a recommandé $TitreSite à $to ($toemail)";
      $message=str_replace("\'","'",$message);
      mail("$email","$TitreSite a été recommandé","$message","From: $email");
      echo "<TITLE>Message envoyé !</TITLE></HEAD><BODY><table align='center' border='0' width='100%' height='100%'><tr><td align='center' valign='middle'><font face='Verdana, Arial, Helvetica, sans-serif' size=2>Votre message a été envoyé à $to.<br><br>Vous pouvez fermer la fenêtre.</font></td></tr></table></BODY></HTML>";
      exit();
     }
   else echo "<TITLE>Erreur !</TITLE></HEAD><BODY><table align='center' border='0' width='100%' height='100%'><tr><td align='center' valign='middle'><font face='Verdana, Arial, Helvetica, sans-serif' size=2>Veuillez remplir tous les champs.<br><br><a href='javascript:history.go(-1);'><b>Retour</b></a></font></td></tr></table></BODY></HTML>";
  }
?>
<TITLE>Recommander <?php echo "$TitreSite"; ?></TITLE>
</head>
<BODY bgcolor="#FFFFFF" link="#4464CE" vlink="#4464CE" text="#4D4D4D">

<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<p align="center"><font size="3"><b><font face="Arial, Helvetica, sans-serif">Recommander</font> 
  <?php echo "$TitreSite"; ?>
  </b></font></p>

<form action="recomail.php3?action=sent" method="POST">
  <table bordercolor="#4389CC" align="center" border="1" cellpadding=3 cellspacing=0 width="250">
    <tr>
  <td>
        <table border=0>
          <input type="hidden" name="Description" value="<?php echo htmlentities($Description); ?>">
          <input type="hidden" name="Sujet" value="<?php echo htmlentities($TitreSite); ?>, un site à découvrir !">
          <tr> 
            <td align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> 
              <div><strong>Vous avez aimé ce site ?<br>
                Pourquoi ne pas le suggérer<br>
                à un(e) ami(e) ?</strong></div>
              </font> </td>
          </tr>
          <tr> 
            <td align="center"> 
              <input type="text" size="25" name="from" value="Votre nom" style="font-family:Verdana; font-style:normal; font-size:13; border-width:1; border-color:black; border-style:solid;">
            </td>
          </tr>
          <tr> 
            <td align="center"> 
              <input type="text" size="25" name="fromemail" value="Votre e-mail" style="font-family:Verdana; font-style:normal; font-size:13; border-width:1; border-color:black; border-style:solid;">
            </td>
          </tr>
          <tr> 
            <td align="center"> 
              <input type="text" size="25" name="to" value="Le nom de votre ami(e)" style="font-family:Verdana; font-style:normal; font-size:13; border-width:1; border-color:black; border-style:solid;">
            </td>
          </tr>
          <tr> 
            <td align="center"> 
              <input type="text" size="25" name="toemail" value="L'e-mail de votre ami(e)" style="font-family:Verdana; font-style:normal; font-size:13; border-width:1; border-color:black; border-style:solid;">
            </td>
          </tr>
          <tr> 
            <td align="center"> 
              <input type="submit" value="Envoyer" style="font-family:Verdana; font-style:normal; font-weight:bold; font-size:12; color:white; background-color:rgb(00,00,144); border-width:1; border-color:black;">
            </td>
          </tr>
        </table>
  </td>
</tr>
</table>
</form>

<p align="center"><a href="javascript:window.close();"><b>Fermer</b></a></p>
</font>
</BODY>
</HTML>

Posté : 20 mai 2006, 17:08
par Truc
avec la coloration syntaxique tu peux très facilement voir ton erreur.

de façon générale il faut éviter d'inclure les variables dans une chaine de caractères débutant par des guillemets et utiliser les concaténation à la place.
"chaine ". $de . " caractères ". $avec ." concaténations";
$_SERVER est une variable "tableau" il faut donc d'autant plus faire attention

Posté : 20 mai 2006, 18:39
par fersayn
J'ai essayé pas mal de truc mais ca ne marche pas...

comment faire???

je situe l'erreur à cet endroit:
$message="Bonjour $to,\n\n$from ($fromemail) souhaiterait vous recommander $TitreSite.\n\n$Description\n\nL'adresse : $URLSite\n\nVotre ami vous recommande l'article suivant: $_SERVER["HTTP_REFERER"]\n\nLe Webmaster ";
merci de votre aide

Posté : 20 mai 2006, 19:17
par Truc
Tu as identifié la ligne maintenant il ne reste plus qu'à sortir les variables de la chaine pour qu'il n'y ait plus d'erreur.

Je t'ai montré comment faire des concaténation il faut en faire autant dans ces deux lignes de code.

Posté : 20 mai 2006, 19:27
par fersayn
oui mais voici ce que j'ai essayé:
$message="Bonjour". $to .\n\n. $from .($fromemail)"souhaiterait vous recommander" . $TitreSite .\n\n.$Description.\n\n"L'adresse :". $URLSite .\n\n"Votre ami vous recommande l'article suivant:". $_SERVER["HTTP_REFERER"] .\n\n"Le Webmaster "; 
et voici ce qu'il me dit:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /var/www/data/lri/8/K/4/B/8K4B58RP/docs/recomail.php3 on line 18

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /var/www/data/lri/8/K/4/B/8K4B58RP/docs/recomail.php3 on line 18

Parse error: parse error, unexpected T_STRING in /var/www/data/lri/8/K/4/B/8K4B58RP/docs/recomail.php3 on line 18

Posté : 20 mai 2006, 20:10
par Truc
les "\n\n" sont des sauts de lignes et considérés comme du caractère et non variable de meme pour les ( ) .
$message="Bonjour ". $to ."\n\n". $from ." (".$fromemail.") souhaiterait vous recommander " . $TitreSite ."\n\n".$Description."\n\nL'adresse :". $URLSite ."\n\nVotre ami vous recommande l'article suivant:". $_SERVER["HTTP_REFERER"] ."\n\nLe Webmaster ";

Posté : 20 mai 2006, 20:22
par fersayn
oui, j'avais mis une nouvelle fonction:
$var01=$_SERVER["HTTP_REFERER"];
      $message="Bonjour $to,\n\n$from ($fromemail) souhaiterait vous recommander $TitreSite.\n\n$Description\n\nL'adresse : $URLSite\n\n$var01,\n\nLe Webmaster ";
mais il me donne l'adresse de la page du script d'envoi mais l'url de la d'ou est appelé le script???

comme dans ton exemple....

Posté : 20 mai 2006, 21:22
par fersayn
merci a ganesha pour son aide utile....