Créer un système d'abonnement en PHP

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour tout le monde,

ce serait pour savoir comment créer un système d'abonnement ou en sommes les utilisateurs clique sur un bouton "suivre" et sur une page ils reçoivent toutes les informations des différentes pages qu'ils suivent.

Merci d'avance :)

Édité par firm1

+0 -0

Salut !

Cela dépend de la manière dont tu souhaites transmettre ces informations à l'utilisateur, et quelles sont les pages qu'il peut suivre (surtout si on parle de sites et non de pages  :) )

Evitez qu'on vous dise de les lire : FAQ PHP et Symfony 2Tutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+0 -0
Auteur du sujet

Merci de ton intervention :) En sorte, j'aimerais faire un bouton type "like" qui une fois cliqué sur une page et enregistrée. Par la suite nous avons un flux sur lesquels il y a toutes les news en provenances des pages suivis par l'utilisateur lambda :)

Voilà, j'espère t'avoir aidé à mieux cerner mon idée :D

+0 -0

Bonjour

Si le cadre c'est : Dans un site internet avec un couple du genre PHP+Mysql où chaque page et chaque membre sont enregistrés dans la base de donnée sous un identifiant unique, il suffit de créer une table intermédiaire dans laquelle est enregistré l'identifiant du membre et l'identifiant de la page qu'il veut suivre à chaque fois qu'il clique sur le bouton Suivre.

Mais le cadre est effectivement assez flou et ça n'est donc peut-être pas ça que tu cherches ;)

+0 -0
Auteur du sujet

Ok je crée une nouvelle page, je la nomme follow et je récupère à chaque fois l'identifiant de l'utilisateur. Je pense que j'ai compris l'idée ;)

je vais faire ça, et après je vais refaire une page et en fonction d'un id d'une page on propose l'id d'une page autre ;) c'est compliqué à exprimer je sais ;)

Merci :D

+0 -0

Ok je crée une nouvelle page, je la nomme follow et je récupère à chaque fois l'identifiant de l'utilisateur. Je pense que j'ai compris l'idée ;)

je vais faire ça, et après je vais refaire une page et en fonction d'un id d'une page on propose l'id d'une page autre ;) c'est compliqué à exprimer je sais ;)

orelsan12

Je ne comprend absolument pas ce que tu vas faire :euh: Ton site est bien du genre de celui que j'ai posé omme cadre plus haut ?

Édité par bendia

+0 -0

Bon :)

Il faut relier chaque membre aux articles auxquels il veut s'abonner. Ca se passe au niveau de la base de donnée. Il faut donc créer une table qui a la structure suivante

Clé Id Membre Id Article

Sur tes pages articles, ton bouton Suivre (via un script PHP) ajoute une ligne à cette table en enregistrant l'Id du membre qui clique sur le bouton, et l'Id de l'article (moyennant le vérifications qui s'impose, par exemple on ne peut pas s'abonner 2 fois au même article).

Tu va donc obtenir une table de ce type

Clé Id Membre Id Article
1 6 128
2 9 18
3 6 18

Pour faire une liste des articles suivis par un membre, il suffit de faire une requête sur cette table avec l'Id du membre en question comme clause WHERE et en joignant le nom de l'article,issue de la table article à partir de son Id :)

C'est une requête du genre

1
SELECT * FROM Table_abonnement JOIN Id_article ON Id_article=Id WHERE Id_membre=6

Avec le résultat de cette requête, il est facile de construire une page avec la liste des articles.

+1 -0
Auteur du sujet

Ok d'accord en fait si j'ai bien compris, je fais ça.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
if(!empty($_POST['submit']))
{
    $id = $_GET['id'];


                    $bdd = new PDO('mysql:host=localhost;dbname=root','root','root');
                    $requete_post = $bdd->prepare('INSERT INTO status(id_patatatita) VALUES(:id_patatita)');
                    $requete_post->execute(array(
                        'id_patatita' => $id,
                    ));

?>

et pour le html :

1
<button type="submit" name="submit">j'aime</button>

et ensuite on stocke tout dans la bdd et on recrée une page où s'afficheront les news. C'est ça Bendia ? :)

+0 -0

Humm, je crois que dans une autre discussion, tu avais déjà essayer if(!empty($_POST['submit'])) et que ça n'avais pas fonctionné :euh: Pas de raison que ça fonctionne maintenant ;)

Par ailleurs, si tu as 2 infos à entrer en base de donnée, tu devrais retrouver une requête avec 2 infos, l'id du membre qui s'inscrit, et l'id de l'article. Je ne vois pas ça dans ta requête :euh:

Après, j'ai peut-être dit oui un peu vite pour le submit (ne pas répondre à l'heure de l'apéro :-° ) Ca dépend en fait comment son stockées les infos en question. Si par exemple, elles se trouvent dans des variables de session, il n'y a pas besoin de les récupérer via $_POST. Un simple lien déguisé en bouton avec des infos dans l'URL devrait suffire :)

De plus, je ne suis qu'un amateur, donc, il y a peut-être mieux à faire que ce que je te conseil ;)

+0 -0

Bonjour.

Après, j'ai peut-être dit oui un peu vite pour le submit (ne pas répondre à l'heure de l'apéro :-° ) Ca dépend en fait comment son stockées les infos en question. Si par exemple, elles se trouvent dans des variables de session, il n'y a pas besoin de les récupérer via $_POST. Un simple lien déguisé en bouton avec des infos dans l'URL devrait suffire :)

bendia

C'est mieux avec un formulaire en POST, même s'il est vide, parce que ça indique qu'on va écrire une donnée dans la base et qu'on ne veut pas qu'un utilisateur arrive sur le lien "accidentellement" et s'inscrive (ou autre action selon le lien) sans le vouloir. En utilisant la méthode POST, il ne suffit pas de cliquer sur un lien pour que l'action s'effectue, il faut vraiment qu'il soumette le formulaire. Avec un jeton CSRF, on peut améliorer cette sécurité en vérifiant que le formulaire est bien le nôtre et non un formulaire écrit par quelqu'un d'autre (et par exemple pouvant effectuer une action sur le compte d'un utilisateur sans même qu'il le veuille).

Édité par Chinoisfurax

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte