Système de parrainage sans défavoriser réferencement

WRInaute occasionnel
Bonjour,

Je suis en train de réfléchir au moyen de faire un système de parrainage efficace, qui ne défavorise pas le référencement.

En effet, j'ignore comment inclure le paramètres dans l'url de façon à avoir un backlink, et que le paramètres ne partent pas.

J'avais pensé à plusieurs trucs :

http://www.example.com/?id=x
http://www.example.com/inscription.php?id=x
http://www.example.com/sponsor-x.html (avec rewritting)

x est l'id du parrain

Seulement, j'ai peur que ces backlinks, redirigeant tous vers ma page index, ne soit pas bon. D'abord par ce que le contenu est identique et il y a risque de duplicate content.
Ensuite, en rewritant je me demande si le backlink ne sera pas compté pour la page sponsor, et non pour la page index.

Autre problème, j'ignore vers quelle page rediriger l'utilisateur. Si je redirige vers l'inscription, avec le champs parrain rempli automatiquement, c'est pratique mais le visiteur n'apprecira pas forcement.

J'ai peur que ce paramètres soit perdus, en visitant le site :?
J'avais pensé aux cookies, mais est-ce réellement efficace, surtout que certain les refusent (et je sais pas faire aussi :lol:)

Une idée ?

merci d'avance, ManiaGames
 
WRInaute accro
et pourquoi pas un lien direct, en analysant le referer ($_SERVER['HTTP_REFERER']) tu obtient la page à partir de laquelle le visiteur arrive.
 
Nouveau WRInaute
le lien direct est une bonne idée techniquement et en terme de référencement, mais je ne crois pas que les webmasters se sentent près je trouve que c'est un frein psychologique, et le fait d'avoir un id ou autres fait penser au webmaster qu'il y a une tracibilité. Enfin Kazhar si tu as une solution contre ce frain psychologique je suis preneur.
 
WRInaute impliqué
Le referer est peu fiable.

Si tu crée un lien du type lien-partenaire.php?idpartenaire=XXX et sur cette même page tu fais une redirection 302 vers la page générique soit tout le temps (en conservant le id du partenaire dans un cookie, soit uniquement si la visite provient d'un robot.
 
WRInaute occasionnel
STFprod a dit:
utilise les sessions, et enregistre l'id de ton parrain en session...

J'utilise déjà les sessions (mon site réutilise le système de login de phpbb), que j'ai supprimé pour l'invité.

Ce qui m'interesse, n'est pas la page depuis où le lien a était fait, mais qui a fait ce lien. Ca permet aux membres de présenter le site sur les forums, blogs ...

le referer ne me sera donc pas très utile, et j'ai pas compris la méthode de la 302.
 
WRInaute occasionnel
Bonsoir,

Je suis dans le même cas, pour totaliser les visites entrantes dans mon annuaire, je demande aux webmasters de créer des liens de type -www.monsite.com/?In=id_partenaire
Au même titre que l'on fait une redirection de -www.monsite.net vers -www.monsite.com pour éviter le duplicate content, on peut faire une redirection permanente de -www.monsite.com/?In=id_partenaire vers -www.monsite.com.
De cette manière, les backlinks des partenaires sont à priori concentrés sur la page d'accueil.

Nicolas.
 
WRInaute occasionnel
Moi le problème est un peu différent.
Je ne cherche pas à compter le nombre de visiteurs qu'un webmaster m'a envoié depuis un échange de liens, mais enregistrer l'id inscrite dans l'url comme membre parrain qui sera validé uniquement à l'inscription.

Un système de filleul
 
WRInaute occasionnel
c'est le meme principe, fais une page affil.php
et demande à tes partenairs de faire des liens www.example.com/affil.php?affil=id

L'intérieur de cette page, tu enregistres dans la session l'id du parrain :
$_SESSION['id_parrain']=$affil;

Header("Location:index.php"); //tu refais une redirection 302 vers la home, donc Google considèrera ta page affil.php comme index.php...
 
WRInaute occasionnel
Peu importe la finalité, la problématique est la même, une url entrante avec un paramètre et le risque de dissipation des backlinks ou de duplicate content.
 
WRInaute occasionnel
Très simple,

dans la page sponsor, pas besoin de superflu je pense :

Code:
$_SESSION['id_parrain']=$id_parrain;

Header("Location:index.php");

J'ai remis tel quelle, je completerais juste plus tard avec quelques variables indispensable au fonctionnement du système de parrainage (notamment connexion à la bdd pour récuperer le pseudo du parrain).

pour l'instant, j'essaie juste d'afficher l'id de l'url.

et le fichier index.php :

Code:
echo "Votre parrain est le numéro $_GET['$id_parrain']";
Sinon j'ai essaié avec ça :
Code:
Votre parrain est le numéro <? echo $_GET['$id_parrain'] ?>
 
WRInaute occasionnel
tu as probablement oublié de faire session_start(); avant tout début de code php ou HTML... sur les 2 pages.

ah non, en plus, il ne faut pas appeler $_GET['$id_parrain'], mais $_SESSION['$id_parrain'] :lol:
 
WRInaute occasionnel
STFprod a dit:
tu as probablement oublié de faire session_start(); avant tout début de code php ou HTML... sur les 2 pages.

ah non, en plus, il ne faut pas appeler $_GET['$id_parrain'], mais $_SESSION['$id_parrain'] :lol:

je suis pas habitué au session :)

c'est quoi la différence entre get et session ?
 
WRInaute occasionnel
get c'est les variables en parametres, du genre : affil.php?affil=groovy, $_GET['affil'] renverra "groovy" :)

les sessions, c'est stocké sur le serveur, à la différence des cookies, qui sont enregistrés côté client, sur l'ordinateur du visiteur...
 
WRInaute occasionnel
Justemment, moi c'est pas plutôt une variable : get ?
Il n'y a aucune session nul part, on est pas connecté je souhaite juste récuperer le contenu de id_parrain.

index.php:
Code:
<?
session_start();
echo 'Votre parrain est le numéro' . $_SESSION['$id_parrain'] . '<br />Ce système est en dévelopement, si aucun numéro ne s\'affiche, il ne marche pas :)';
?>
sponsor.php :
Code:
<?
session_start();
$_SESSION['id_parrain']=$id_parrain;

Header("Location:index.php");
?>
 
WRInaute occasionnel
remplace $_SESSION['id_parrain']=$id_parrain;
par $_SESSION['id_parrain']=$_GET['id_parrain'];

tu n'as ptetre pas le register_globals à "on"...
 
WRInaute occasionnel
ahhhhh :

remplace
Code:
echo 'Votre parrain est le numéro' . $_SESSION['$id_parrain'] . '<br />

par
Code:
echo 'Votre parrain est le numéro' . $_SESSION['id_parrain'] . '<br />
 
WRInaute occasionnel
Exact, j'avais pas fait gaffe :lol:

ça à l'air de fonctionner, je vais tester ça de manières plus approfondis :)

Merci, je réup en cas de problème

par contre, dernier détail : il est possible qu'après la page index, il visite d'autre page, le parametres sera t-il conservé (je vais tester ça de suite :)

Edit: mais c'est génial !
http://www.terreslegends.com/affil/spon ... parrain=87
On peut passer sur la page index2.php (contenant bien sur session_start(); ) et revenir sur index.php sans le parametres, il s'affiche quand même ^^
 
WRInaute occasionnel
oui oui, tant que ta page commence par session_start, c'est good...

Une fois que tu vas te mettre aux sessions, tu pourras plus t'en passer !!! :)
 
WRInaute occasionnel
:p

Pour moi les sessions c'étaient une longue suite de chiffres et de lettres complétement inutile qui était là pour ceux qui savent pas autoriser les cookies :lol:

Par contre, j'y pense y a t'il moyen de créer deux sessions ? ça ne me sera sans doute pas utile, mais sait on jamais !

Egalement, j'y pense. Pour le moment on peut mettre absolument n'importe quoi dans l'url, tel que
http://www.terreslegends.com/affil/spon ... idon4s5z9d

Je comptais mettre l'id du membre dans l'URL car elle est unique, et ensuite aller chercher dans la base de donnée le pseudo du membre correspondant à cette id. J'aurais pu utiliser directement le pseudo dans le parametres, mais il y a un risque avec les caractères spéciales0

N'y aurait-il pas moyen de n'afficher que des chiffres (facile) existant en tant qu'ID ?
au pire, je peux toujours laisser le champ vide en cas d'id invalide, mais je me demande comment vérifier ça ...
 
WRInaute occasionnel
Code:
if (is_numeric($id_parrain)) 
if (mysql_fetch_array(mysql_query("SELECT id_parrain FROM membres WHERE id_membre = '$id_parrain'"), $connexion); 
$_SESSION['id_parrain']=$id_parrain;

pourquoi créer 2 sessions ? tu peux créer autant de variables que tu veux, $_SESSIOn est un tableua... $_SESSION['truc'] = time(); mettra l'heure dans la variable truc..., etc.
 
WRInaute occasionnel
et session_start(); concerve l'intégralité de tous ces tableaux !
mais c'est génial :lol:

Dernière question, est-ce qu'un rewritting serait interessant (car l'adresse avant redirection comporte un parametre) ou c'est inutile ?
du type parrain-x.html ou index-px.html
 
WRInaute occasionnel
l'url rewriting sert à rien puisque tu fais une redirection 302 vers l'index, donc inutile de t'embeter...

les variables de sessions sont stockées sur ton serveur, donc tout est gardé 30 minutes en général :)
 
Discussions similaires
Réponses
3
Affichages
3K
mathieukassovitz
M
Haut