IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Bouton like à click unique


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    .
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Bouton like à click unique
    Bonjour !

    Alors voilà, je cherche un moyen de créer un bouton like pour mon site, qui ne pourrait être cliqué qu'une seule fois par utilisateur, sur chaque post.
    Je m'explique :
    Chaque post a un id qui lui est attribué (stocké dans une table "post"), et chaque utilisateur possède un id qui lui est propre (dans une table "user").

    Y-t-il un moyen pour qu'un script / une fonction, puisse retourner un message du type "vous avez déjà aimé", et sans bien sûr ajouter +1 au conteur de like, si cet utilisateur avec l'id X a déjà cliqué sur j'aime dans le post qui comporte l'id Y ?

    Bonne journée !

  2. #2
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    J'ai du faire quelque chose comme sa recament.

    Ma soluton a consisté a ne pas faire un bouton mais un lien.
    Avant l'affichage de la page je verifis si l'user a deja vote pour le post qui s'affiche si oui je desactive les liens qui se grisent.
    Sinon au click sur le lien je redirige vers la meme page avec un parametre dans le lien.
    Si le parametre en question est dans l'adresse je fais l'insert dans la base de donnes pui reteste si le vote est fait et desactive le lien.
    ça marche bien malgré le fait que c'est un peux capilotracté.

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    ça semble facile à faire... une table, une jointure à gauche, une requete deux mains, quoi demander de plus? tout fait, cherche dans les scripts de notation d'article.

  4. #4
    Membre à l'essai
    Homme Profil pro
    .
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    AH ! Voilà qui n'est pas bête !

    Mais, malheureusement, je ne suis pas très expérimenté, et je suppose qu'il faut utiliser quelque chose comme un GET, mais sinon je ne sais pas comment m'y prendre

    En tout cas, cela me conviendrait !

    Merci

  5. #5
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Voici un exemple.
    A adapter a ton cas évidament.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    /*---------------------------------------------------------------------------------------------------------------*/
    /*---------------------verification si rating fait et affichage des liens de vote--------------------------------*/
    /*---------------------------------------------------------------------------------------------------------------*/
    $mail_user=$infouser['mail'];
     if(isset ($_GET["valeurrating"]))//si le parametre valeurrating existe donc que l'user a demandé a effectuer un rating.
    {
        $valeurrating=$_GET["valeurrating"];
     
        if($valeurrating=="plus")
        {
    	$requete['insertRatingPlus']="INSERT INTO rating(id_rating, id_fichier, ip_votante, vote) VALUES (nextval('auto_inc_rating_id_rating'), ".$id_post.", '".$mail_user."', 'plus')";
    	$traitement=$sql->TabResSQL($requete['insertRatingPlus']);
    	header('Location: index.php?page=viewpost&post_id='.$id_post);
     
        }
        else
        {
            $requete['insertRatingMoins']="INSERT INTO rating(id_rating, id_fichier, ip_votante, vote) VALUES (nextval('auto_inc_rating_id_rating'), ".$id_post.", '".$mail_user."', 'moins')";
    	$traitement=$sql->TabResSQL($requete['insertRatingMoins']);
    	header('Location: index.php?page=viewpost&post_id='.$id_post);
        }
    }
     
    $requete["ratingExist"]="select count (*) from rating where ip_votante = '".$mail_user."' AND id_fichier = ".$id_post;
    $requete["ratingAime"]="select count (*) from rating where ip_votante = '".$mail_user."' AND id_fichier = ".$id_post." AND vote='plus'";
    $requete["ratingAimePas"]="select count (*) from rating where ip_votante = '".$mail_user."' AND id_fichier = ".$id_post."AND vote='moins'";
    $countAime=$sql->TabResSQL($requete["ratingAime"]);
    $countMoins=$sql->TabResSQL($requete["ratingAimePas"]);
    $ratingExiste=$sql->TabResSQL($requete["ratingExist"]);
     
    //Construction du tableau contenant les lien pour le rating ainsi que les ratings du post.
    if(($ratingExiste[0][0])==0)//si l'user n'a pas encore voté
    {
    	//$sortiehtml.="<table style='width: 5px;'><tr>";
    	$sortiehtml.="<th><a href='index.php?page=viewpost&post_id=".$id_post."&valeurrating=plus' id='link'><img src='../management/pictures/ratingplus.gif' alt='j/'aime' title='vote j aime' height='30' width='30'/></a><br/><span style='color:black;'>".$countAime[0][0]."</span></th>";
    	$sortiehtml.="<th><a href='index.php?page=viewpost&post_id=".$id_post."&valeurrating=moins' id='link'><img src='../management/pictures/ratingmoins.gif' alt='j\'aime' title='vote j aime pas' height='30' width='30'/></a><br/><span style='color:black;'>".$countMoins[0][0]."</span></th>";
    	//$sortiehtml.="</tr><tr>";
    	//$sortiehtml.="<td>".$countAime[0][0]."</td>";
    	//$sortiehtml.="<td>".$countMoins[0][0]."</td>";
    	//$sortiehtml.="</tr></table>";
    }
    else//Si l'user a deja voté
    {
    	//echo ("<table><tr>");
    	$sortiehtml.="<th><img src='../management/pictures/ratingplusNB.gif' alt='j/'aime' title='vote j aime' height='30' width='30'/><br/><span style='color:black;'>".$countAime[0][0]."</span></th>";
    	$sortiehtml.="<th><img src='../management/pictures/ratingmoinsNB.gif' alt='j\'aime' title='vote j aime pas' height='30' width='30'/><br/><span style='color:black;'>".$countMoins[0][0]."</span></th>";
    	//echo ("</tr><tr>");
    	//echo ("<td>".$countAime[0][0]."</td>");
    	//echo ("<td>".$countMoins[0][0]."</td>");
    	//echo ("</tr></table>");
    }
    /*---------------------------------------------------------------------------------------------------------------*/
    /*--------------------/verification si rating fait et affichage des liens de vote--------------------------------*/
    /*---------------------------------------------------------------------------------------------------------------*/
    En esperant que cela t'aide

  6. #6
    Membre à l'essai
    Homme Profil pro
    .
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Merci pour ton aide, je vais essayer de mon côté

  7. #7
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    n'oublis pas le bouton résolu.

  8. #8
    Membre à l'essai
    Homme Profil pro
    .
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Ce n'est pas encore résolu l'ami

    Je suis encore dessus

    Si quelqu'un à d'autres solutions je suis preneur ! Je m'arrache les cheveux dessus alors que ça ne doit pas être si compliqué que ça

    Quelqu'un qui as déjà fait ce genre de choses l'a-t-il fait différemment que ce qui a déjà été proposé ?

    Merci par avance

    Bonne journée !

Discussions similaires

  1. Evenement Bouton et Click
    Par denebj dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/07/2007, 21h19
  2. Bouton on click
    Par cathy9999 dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 06/07/2007, 14h31
  3. Réponses: 4
    Dernier message: 08/05/2007, 09h40
  4. Bouton evenement click ne fonctionne pas
    Par delphine_lep dans le forum IHM
    Réponses: 3
    Dernier message: 06/04/2007, 15h12
  5. [Débutant] Changer le texte d'un bouton au click
    Par Zolstead dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/01/2007, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo