Recommander une page

Nouveau WRInaute
Bonjour,

Je souhaiterai recommander un script pour v (donc variable) et nom recommander uniquement le site.

J'ai ce code :
Code:
<?
$nomsite =" Monsite"; // nom de votre site
$url_site ="http://monsite.com"; // url de votre site
$mail_master ="webmaster@monsite.com"; // votre mail


 // recevoir chaque recommandation
// oui pour oui || non pou non
$p ="oui";


$fond ="#EEEEEE"; // couleur fond cellule

$style_police="Verdana"; // style police
$taille_police ="12px"; // taille polices
?>

Comment puis-je appeler l'URL de la page en cours dans
$url_site ="http://monsite.com"; // url de votre site sans avoir a la saisir manuellement ?

Merci à vous.
 
Nouveau WRInaute
Merci pour ton aide UsagiYojimbo.

Je dois faire une erreur ou j'ai pas inséré au bon endroit puisque en intégrant "$_SERVER['REQUEST_URI'] ?", ça ne fonctionne pas.

Code:
$nomsite =" MOnsite"; // nom de votre site
$url_site ="$_SERVER['REQUEST_URI'] ?"; // url de votre site
$mail_master ="contact@monsite.fr"; // votre mail
 
Nouveau WRInaute
J'ai essayé de faire ça :


Code:
<?
$nomsite =" monsite.fr"; // nom de votre site
$url_site =<?php echo $_SERVER['REQUEST_URI'];?>;// url de votre site
$mail_master ="contact@monsite.fr"; // votre mail


 // recevoir chaque recommandation
// oui pour oui || non pou non
$p ="oui";


$fond ="#EEEEEE"; // couleur fond cellule

$style_police="Verdana"; // style police
$taille_police ="12px"; // taille polices
?>

Mais j'ai ce message d'erreur que je n'arrive pas à corriger : Parse error: syntax error, unexpected '<' in /public_html/SWreco/inc/config.php on line 3

Si quelqu'un à une idée ?
 
Nouveau WRInaute
Merci à tryan et zeb pour leur aide.

J'ai donc testé et le nom de la page (url) recommandée n'est pas en entier.

Au lieu d'être : www.monsite.fr/SWreco/recommandation.php?action=reco

Je n'ai que /SWreco/recommandation.php?action=reco

Autre problème apparemment, c'est que ce script va toujours recommander la page qui permet de recommander justement ( celle qui permet de saisir l'adresse email du destinataire du mail), alors que le souhait est quand même de recommander la page qui contient l'article.
 
WRInaute passionné
Dans ce cas autant utiliser la variable $_SERVER['HTTP_REFERER'] sous condition de contrôle de la provenance de l'utilisateur.
Dans le lien ou le bouton qui permet d'accéder à la recommandation, tu fais transiter l'url de la page en cours et tu compares.
Code:
$urlencours = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
//Envoie à la page reco puis contrôle
if($urlencours == $_SERVER['HTTP_REFERER']){
//tu affiches le formulaire
}
else{
//tu bloques la page reco
}
 
Nouveau WRInaute
Merci zeb, effectivement je récupère ainsi l'url complète.

Par contre c'est l'url de la page qui permet de transmettre la recommandation d'un article (http://www.monsite.fr/recommandation.php)
Capture3.JPG
et non l'URL de l'article que je souhaite recommander (ex : http://www.monsite.fr/article3.php

Est ce réalisable de récupérer cette adresse URL et de la transmettre en se servant de ce code ?
 
WRInaute accro
Ok je commence à comprendre. c'est simple :
Sur ton article tu compose le lien de recommandation comme ça :

<a href="http://www.monsite.fr/recommandation.php?article=<?php echo $_SERVER['SCRIPT_URI']; ?>">recommander cet article</a>

Et dans le script de recommandation (donc recommandation.php) tu utilise la variable $_GET['article'] pour identifier la page qu'on recommande.
La variable contiendra l'url de l'article ou se trouve le lien cliqué pour recommander.
 
Nouveau WRInaute
J'ai donc essayé cela :

$url_site = $_GET['article']=<?php echo $_SERVER['SCRIPT_URI']; ?>;// url de votre site

Mais j'a une erreur de syntaxe et pas sûr d'avoir placé la variable $_GET['article'] au bon endroit.
 
Nouveau WRInaute
Et avec $url_site = $_GET['article'];// url de votre site, l'URL de la page n'est pas indiquée dans le mail réceptionné par la personne à qui l'on recommande l'article.
 
WRInaute accro
$url_site = $_GET['article']; -> ça c'est dans le script de recommandation

mais dans la page contenant l'article il faut absolument avoir ce lien :
<a href="http://www.monsite.fr/recommandation.php?article=<?php echo $_SERVER['SCRIPT_URI']; ?>">recommander cet article</a>

quand l'internaute cliquera sur ce lien, la variable $_GET['article'] contiendra l'url de la page qu'il était en train de visiter et qui sera transmise a ton script de recommandation.

voir : http://www.php.net/manual/fr/reserved.variables.get.php
 
Nouveau WRInaute
C'est ce que j'ai fais, mais je confirme que la page visitée n'est pas transmise dans l'email.

J'ai un Fichier inc/config.php
Code:
<?
$nomsite =" monsite.fr"; // nom de votre site
$url_site = $_GET['article'];// url de votre site
$mail_master ="contact@monsite.fr"; // votre mail


 // recevoir chaque recommandation
// oui pour oui || non pou non
$p ="oui";


$fond ="#EEEEEE"; // couleur fond cellule

$style_police="Verdana"; // style police
$taille_police ="12px"; // taille polices
?>

Puis un fichier recommandation.php

Code:
<?
include("inc/config.php");
if($action=="reco")
{
$messages = stripslashes($messages);
$nom         = stripslashes($nom);

$sujet="Votre ami $nom vous recommande un site";

$m_mail  ="Bonjour $noma,\nUn ami vous recommande un site voila son message\n";
$m_mail  .="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n";
$m_mail  .="$messages\n";
$m_mail  .="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n";
$m_mail  .="Vous pouvez visiter ce site en cliquant sur le lien ci dessous\n";
$m_mail  .="$url_site\n";
$m_mail  .="Cordialement, le webmaster\n";
$m_mail  .="\n\n";
$m_mail  .="SwnReco http://www.monsite.fr";
mail("$maila","$sujet","$m_mail","From: $mail");
$mgok="Votre recommandation a bien été envoyier";
if ($p == oui)
{
$date = date("Y-m-d");
$heure = date("H:i:s");
$su  = "Votre site a été recommander";
$m_maill = "Bonjour votre site a été recommander\n";
$m_maill .="les messages\n";
$m_maill .="$messages\n";
$m_maill .="Le : $date \n";
$m_maill .="A : $heure\n";
$m_maill .="Mail : $mail\n";
$m_maill .="Nom : $nom\n";
$m_maill .="Cordialement\n";
mail("$mail_master","$su","$m_maill","From: $mail");
}
}
include("inc/haut.php");
include("inc/css.php");
echo"<div align='center'>
  <p>Recommandez le site <b>$nomsite</b> a un ami</p>
  <form method='post' action='?action=reco' name='formulaire'>
    ".$mgok."<br>
    <table width='750' border='0' cellspacing='1' bgcolor='#000000'>
      <tr>
        <td bgcolor='$fond'>
          <table width='100%' border='0' cellspacing='1' align='center'>
            <tr> 
              <td width='371'>Nom de votre ami(e) :</td>
              <td width='372'> 
                <div align='center'> 
                  <input type='text' name='noma' size='35' value='".$noma."'>
                </div>
              </td>
            </tr>
            <tr> 
              <td width='371'>Mail de votre ami(e) :</td>
              <td width='372'> 
                <div align='center'> 
                  <input type='text' name='maila' size='35' value='".$maila."'>
                </div>
              </td>
            </tr>
            <tr> 
              <td width='371'>Votre nom :</td>
              <td width='372'> 
                <div align='center'> 
                  <input type='text' name='nom' size='35' value='".$nom."'>
                </div>
              </td>
            </tr>
            <tr> 
              <td width='371'>Votre email :</td>
              <td width='372'> 
                <div align='center'> 
                  <input type='text' name='mail' size='35' value='".$mail."'>
                </div>
              </td>
            </tr>
            <tr> 
              <td width='371'>Messages : </td>
              <td width='372'> 
                <div align='center'> 
                  <textarea name='messages' cols='32' rows='6'>".$messages."</textarea>
                </div>
              </td>
            </tr>
            <tr> 
              <td colspan='2'> 
                <div align='center'> 
                  <input type='submit' name='Submit' value='Recommander'>
                </div>
              </td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
  </form>
</div>";
include("inc/bas.php");
?>
 
Nouveau WRInaute
J'arrive à ma page recommandations.php avec :

<a href="http://www.monsite.fr/recommandation.php?article=<?php echo $_SERVER['SCRIPT_URI']; ?>">recommander cet article</a>

Jusque là impec, ça roule, lorsque l'on clique sur "recommander cet article", on arrive bien sur la page recommandation.php.

Ma page recommandation.php appel donc les infos par inc/config.php (vu ci-avant). Par contre la variable $_GET est-ce que je l'ai placé correctement ? Je ne maîtrise pas, trop novice en la matière.
 
WRInaute passionné
C'est peut être la variable $_SERVER['SCRIPT_URI'] qui pose problème ..?
Essaye :
<a href="http://www.monsite.fr/recommandation.php?article=<?php echo "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; ?>">recommander cet article</a>
 
WRInaute accro
tryan a dit:
C'est peut être la variable $_SERVER['SCRIPT_URI'] qui pose problème
Sauf a dire que deux serveurs renvoient des variables d’environnement différentes $_SERVER['SCRIPT_URI'] renvoie l'url complète de la page concernée. Donc le lien sur l'article doit contenir en paramètre l'url de la page a recommander donc celle de l'article.

Si jamais après examen du code source (firefox -> surligner le lien -> bouton de droite -> code source de la sélection) l'url de l'article n'apparait pas dans le code html du lien c'est que le mode de réécriture d'apache ne semble pas activé.

SCRIPT_URI always was just a mod_rewrite thing because prior to a powerful rewriting engine there was no real need for such a variable. It isn't a standardized CGI/1.1 variable. And it is and always was only set when the rewriting engine is _enabled_. So I expect the user now has disabled the rewriting engine and thus SCRIPT_URI went away

Si impossible a activer regarder la solution de tryan pour composer dynamiquement cette url.

ensuite je voie dans ton code de reco que tu tombe sur un formulaire qui fonctionne comme une bascule donc c'est normal que tu perde la variable en route.

j'explique :
1/ tu clique sur le lien et tu part de la page article
2/ tu arrive sur la page reco en GET avec un paramètre d'url (qui est bien pris en compte par ton fichier de config a ce moment là)
3/ tu remplie les champs de ton formulaire et tu valide. Donc tu quitte la page reco pour la recharger mais un POST.
4/ donc après le submit du formulaire tu ré-attaque ton script reco en POST mais a ce moment de l'histoire ta variable GET n’existe plus donc le mail qui est envoyé ne contient pas d'url (en fait en pratique si mais c'est une chaîne vide).

donc en modifiant un peut ton script tu peux concerner cette variable en te la ré-envoyant entre le GET et le POST.
Dans l'exemple ci dessous j'ai juste ajouté un champ caché pour que la variable soit retransmise.

d'autre part ne sachant pas trop ce que venait faire là le if($action == "reco"), j'ai modifié pour que la condition soit exécutée comme j'ai l'habitude de faire a savoir si une variable POST est détectée comme existante (if isset(...))

PHP:
<span class="syntaxdefault"><?php<br />    include</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"inc/config.php"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    if</span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'Submit'</span><span class="syntaxkeyword">]){<br /></span><span class="syntaxdefault">        $messages </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> stripslashes</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$messages</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $nom         </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> stripslashes</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$nom</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    <br />        $sujet</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"Votre ami $nom vous recommande un site"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    <br />        $m_mail  </span><span class="syntaxkeyword">=</span><span class="syntaxstring">"Bonjour $noma,\nUn ami vous recommande un site voila son message\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        $m_mail  </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        $m_mail  </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"$messages\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        $m_mail  </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        $m_mail  </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"Vous pouvez visiter ce site en cliquant sur le lien ci dessous\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        $m_mail  </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"$_POST['Rsite']\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        $m_mail  </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"Cordialement, le webmaster\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        $m_mail  </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"\n\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        $m_mail  </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"SwnReco http://www.monsite.fr"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        mail</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"$maila"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"$sujet"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"$m_mail"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"From: $mail"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $mgok</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"Votre recommandation a bien été envoyier"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$p </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> oui</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">            $date </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> date</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Y-m-d"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            $heure </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> date</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"H:i:s"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            $su  </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Votre site a été recommander"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            $m_maill </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Bonjour votre site a été recommander\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            $m_maill </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"les messages\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            $m_maill </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"$messages\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            $m_maill </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"Le : $date \n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            $m_maill </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"A : $heure\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            $m_maill </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"Mail : $mail\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            $m_maill </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"Nom : $nom\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            $m_maill </span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"Cordialement\n"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            mail</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"$mail_master"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"$su"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"$m_maill"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"From: $mail"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    include</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"inc/haut.php"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    include</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"inc/css.php"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    echo</span><span class="syntaxstring">"<div align='center'><br />      <p>Recommandez le site <b>$nomsite</b> a un ami</p><br />      <form method='post' action='?action=reco' name='formulaire'><br />        "</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$mgok</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"<br><br />        <table width='750' border='0' cellspacing='1' bgcolor='#000000'><br />          <tr><br />            <td bgcolor='$fond'><br />              <table width='100%' border='0' cellspacing='1' align='center'><br />                <tr><br />                  <td width='371'>Nom de votre ami(e) :</td><br />                  <td width='372'><br />                    <div align='center'><br />                      <input type='text' name='noma' size='35' value='"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$noma</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"'><br />                    </div><br />                  </td><br />                </tr><br />                <tr><br />                  <td width='371'>Mail de votre ami(e) :</td><br />                  <td width='372'><br />                    <div align='center'><br />                      <input type='text' name='maila' size='35' value='"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$maila</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"'><br />                    </div><br />                  </td><br />                </tr><br />                <tr><br />                  <td width='371'>Votre nom :</td><br />                  <td width='372'><br />                    <div align='center'><br />                      <input type='text' name='nom' size='35' value='"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$nom</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"'><br />                    </div><br />                  </td><br />                </tr><br />                <tr><br />                  <td width='371'>Votre email :</td><br />                  <td width='372'><br />                    <div align='center'><br />                      <input type='text' name='mail' size='35' value='"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$mail</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"'><br />                    </div><br />                  </td><br />                </tr><br />                <tr><br />                  <td width='371'>Messages : </td><br />                  <td width='372'><br />                    <div align='center'><br />                      <textarea name='messages' cols='32' rows='6'>"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$messages</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"</textarea><br />                    </div><br />                  </td><br />                </tr><br />                <tr><br />                  <td colspan='2'><br />                    <div align='center'><br />                      <input type='submit' name='Submit' value='Recommander'><br />                      <input type='hidden' name='Rsite' value='"</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$url_site</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"'><br />                    </div><br />                  </td><br />                </tr><br />              </table><br />            </td><br />          </tr><br />        </table><br />      </form><br />    </div>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    include</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"inc/bas.php"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?></span>
 
Nouveau WRInaute
Tout d'abord merci pour votre aide Zeb et Tryan.

J'ai donc testé avec ton code recommandation.php mais j'ai ce message d'erreur à l'appel pour l'ouverture de la page :

Parse error: syntax error, unexpected '{' in /public_html/recommandation.php on line 3
 
WRInaute accro
et j'ajouterai même que la ligne :

$m_mail .="$_POST['Rsite']\n";
devrait être :
$m_mail .=$_POST['Rsite']."\n";

(j'ai fait ça vite fait a l'arrache sans tester)
 
Nouveau WRInaute
Excellent Zeb !!! Pour du travail à l'arrache, je dis chapeau bas!!!

Tous mes remerciements, tout seul je n'y serais pas arrivé, mes compétences sont vraiment trop basiques encore (je suis autodidacte et j'essaie de décripter petit à petit.

Merci encore
 
Haut