JeuWeb - Crée ton jeu par navigateur
Comment faire un système de parrainage - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Comment faire un système de parrainage (/showthread.php?tid=4329)



Comment faire un système de parrainage - miniteck27140 - 05-09-2009

Bonjour a tous et a toute.
Aujourd'hui je suis revenue sur le forum après de long moment d'absence.
Donc je me suis re mis a faire un projet et pas n'importe le quelle.
Se projet aura pour but d'élever quelque chose je c'est pas encore quoi mais on verra bien.
Alors je pose se sujet pour avoir des réponse a mes question alors voila mes question:
-Comment faire un lien de parrainage?
-Comment faire un lien ou sa donne le profil du membre et fait gagner des point exemple: http://www.monsite.fr/index.php?page=apercu&nom=speudo-du-membre
et a chaque visite sa donne 1 point
1 ip par jour qui donne 1 point ou plusieurs comment puis je le faire?
Avez vous un lien pour un script ou un lien pour apprendre a le faire ou vous pouvez m'aider?
Voila merci de votre aide


RE: Comment faire un système de parrainage - Sephi-Chan - 05-09-2009

Ah effectivement, c'est pas n'importe quel projet ! Confusediffle:

Quand on arrive sur la page d'inspection, on vérifie si le paramètre parrain à été indiqué dans l'URL (inscription.php?parrain=42).
Si aucun parrain n'est transmis, c'est que ça n'est pas une inscription parrainée.
S'il y en a un, on vérifie que cet utilisateur existe. Si oui, on affiche bien le formulaire dans lequel on remet l'identifiant du parrain dans un champ (caché ou non), sinon on fait comme si aucun parrain n'avait été transmis.
Et voilà, pour chaque utilisateur on a un parrain (ou non) qui peut être stocké dans un champ parrain_id de la base de données.

Ensuite, pour permettre à ton utilisateur de donner son lien de parrainage à quelqu'un, c'est tout bête : tu affiche l'URL de la page d'inscription que tu fais suivre de "?parrain=id_de_l_utilisateur".

Pour ton second problème, tu fais simplement une table qui contient une colonne pour indiqué quel profil a été visité (l'identifiant du membre qui a reçu une visite, donc), une colonne pour l'adresse IP de celui qui a cliqué et enfin, une colonne qui contient la date de la visite. Ensuite, ça n'est qu'un test pour savoir si l'adresse IP n'est pas présente dans la table ses 24 dernières heures pour le profil indiqué.

La requête SQL pourrait ressembler à :


SELECT COUNT(*)
FROM visits
WHERE visitor_ip = ip_du_visiteur
AND user_id = id_du_profil_visité
AND visited_at >= DATE_SUB(NOW(), INTERVAL 1 DAY);

Si elle renvoie 0, c'est que le visiteur n'a pas visité le profil ses 24 dernières heures, tu peux donc incrémenter le compteur de visites.


Sephi-Chan


RE: Comment faire un système de parrainage - jeeron - 06-04-2012

Salut à toi,
pour rejoindre le post de Sephi-Chan et t'expliquer un peu plus en détails, et si j'ai bien compris ce que tu souhaites, ce sont 2 choses différentes :
- 1 Système de parrainage
- 1 Système de point lorsque un membre ou un visiteur visite la page d'un joueur


Pour le système de parrainage
il faut que ta table d'utilisateurs comporte :
un champs IP
un champs ID
(et bien entendu les autres)


- Sur ta page d'inscription
Pour la récupération de l'ip :
$ip = ip();

Pour le parrainage :

Code :
<?php
if (isset($_GET['parrain'])) {

    $parrain = $_GET['parrain'];
    
} else {

    $parrain = "";

}
pour la récupération du parrain (si il y a = http://www.tonsite.com/inscription.php?parrain=4)

et le champ formulaire pour le parrain :

Code :
<input name="parrain" type="text" class="in" value="<? echo "$parrain"; ?>" maxlength="50">

Et pour l'insertion du parrain dans la table :
Code :
INSERT INTO `utilisateurs` VALUES (null, 'login', 'pass', 'email', '".$ip."', '".$parrain."')");

Voila en gros pour le système de parrainage.

Pour le système de points ,
tu peux par exemple ajouter une table "votes" avec les champs suivants :
id, joueurcible, ip, joueurquivote, joueurcible

et faire une requete du type :

Code :
$verifvote = mysql_query("SELECT * FROM votes where ip='$ip' AND dATE='$date' AND joueurcible='$_GET[joueur]'");
$resultatsvotes= mysql_num_rows($verifvote );

if($resultatsvotes==0) {
$insertionvote= mysql_query("INSERT INTO votes VALUES (null, '$_GET[joueur]','$ip', 'joueurquivote', '$date')");
}
else
{
echo "erreur tu as déjà voté pour ce joueur";
}

Désolé c'est un peu "brouillon" mais ci cela peut t'aider.
(je précise que je débute en php, donc ce code peux être bien entendu un peu erroné)



RE: Comment faire un système de parrainage - Murthy - 06-04-2012

Ouch ! Niveau sécurité ce n'est pas la joie ^^

Rien que le GET direct dans la query... Je t'invite a te renseigner sur les SQL Injections. PHP.net par exemple ;-)


RE: Comment faire un système de parrainage - jeeron - 06-04-2012

Je l'avais dit (que j'étais débutant) lol merci de l'info, je n'y pensais même pas Big Grin
heureusement que mes scripts sont en test local ....

Donc pour me rectifier, ca devrait être plutôt :
$joueur = "$_GET[joueur]";

et dans l'insertion SQL : $joueur ?


RE: Comment faire un système de parrainage - archANJS - 06-04-2012

Ça ne te protège pas plus comme ça.

Entre le moment où tu récupères l'id du joueur et celui où tu l'utilise dans ta requête, tu dois t'être assuré :

- que c'est bien la bonne information que tu attendais (pour l'ID, tu attends un numérique, pas une chaîne)
- de l'avoir échappé pour éviter les injections SQL (mysql_real_escape_string() ou fonction personnalisée)