recherhce de script php : envoyer à un ami

Eléphant du PHP | 101 Messages

19 mai 2006, 23:06

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??

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 mai 2006, 14:31

Salut,
Quelqu'un aurait un script à adapter??
<< :google: >> doit en avoir lui :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 101 Messages

20 mai 2006, 15:38

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....

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 mai 2006, 15:47

Regarde du coté des variables $_SERVER:
$_SERVER['SCRIPT_NAME']

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 101 Messages

20 mai 2006, 16:40

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>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 mai 2006, 17:08

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 101 Messages

20 mai 2006, 18:39

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 mai 2006, 19:17

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.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 101 Messages

20 mai 2006, 19:27

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 mai 2006, 20:10

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 ";

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 101 Messages

20 mai 2006, 20:22

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....

Eléphant du PHP | 101 Messages

20 mai 2006, 21:22

merci a ganesha pour son aide utile....