Page 1 sur 1

Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 15:30
par raphou
Bonjour a tous voila j'ai un petit progblème qui me bloque depuis quelques jours déja ,

Alors voila j'ai un lien qui permet de ''liker'' une publication, mais le problème est que quand je souhaite envoyer une notifications

l'action like récuperer que l'id du statut posté mais pas l'utilisateur qui l'as posté . J'ai donc dans mon lien de like :
<a   id="like<?= $micropost->m_id ?>" data-action="like"  class="like" href="like_micropost.php?id=<?= $micropost->m_id; ?>&user=<?= $micropost->user_id; ?>">Je valide </a>
Et dans le script php de like_micropost.php qui crée la notification
$q = $db->prepare('INSERT INTO notifications(subject_id, name, user_id,type_id)
			 VALUES(:subject_id, :name, :user_id,:type_id)');
			 $q->execute([
			 'subject_id' => $_GET['user'],
			 'name' => 'like_post',
			 'user_id' => get_session('user_id'),
			 'type_id' => 'Bonjour'

			 ]);
Voila si quelqu'un pouvait m'aider ce serait super gentil , parceque cela fait deux nuits blanches pour ça :)

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 16:12
par Ascla
Tout d'abord, vérifie si les arguments sont bien envoyés par méthode GET: Tu devrais avoir : lien.fr?id=UN_ID&user=UN_USER
Dans le cas ou la transmission fonctionne, le problème viendrait alors du côté de la page qui réceptionne.

Si l'action ne récupère pas l'id de l'utilisateur, le problème vient peut être de cette ligne :

Code : Tout sélectionner

'user_id' => get_session('user_id'),
Pourquoi envoyer un GET $id si tu ne le réceptionnes pas ?
Pour moi, ça devrait plus ressembler à ça :
$q = $db->prepare('INSERT INTO notifications(subject_id, name, user_id,type_id)
       VALUES(:subject_id, :name, :user_id,:type_id)');
       $q->execute([
       'subject_id' => $_GET['id'],
       'name' => 'like_post',
       'user_id' => $_GET['user'],
       'type_id' => 'Bonjour'

       ]);

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 16:18
par raphou
Ca y est j'ai réussi a recuperer mon subject_id j'avais oublie de préciser que ma requete est en ajax donc du coup je le recupere ici :
$(document).ready(function() {
  $(".timeago").timeago();

  $("a.like").on("click",function(e){

    e.preventDefault();
      var id = $(this).attr("id");
     var url = 'ajax/micropost_like.php';

     var action = $(this).data('action');
    
     var micropost_id = id.split("like")[1];
    
     var data = 'micropost_id=' + micropost_id+ '&action=' + action + '&user=<?= $micropost->user_id?>' + '&statut=<?= $micropost->content ?>' ;
Le seul probleme c'est que ça récupère le contenu du premier statut et non du statut liké , alors que le user_id que je récupere est bien spécifique a celui du statut posté
Merci beaucoup pour votre réponse rapide

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 16:46
par Ascla
Il va falloir remettre un peu d'ordre.
micropost_id est bien l'id du post liké ?
micropost_user est bien l'id de l'utilisateur qui like ?
Regarde tout d'abord avec Alert($micropost_id); pour savoir si tu reçois bien le bon id. Dans le cas contraire, ta méthode de transmission est incorrecte.

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 16:49
par raphou
Non , micropost_user et l'id de la personne qui a posté le statut ..

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 17:01
par Ascla
D'accord, et donc quel est le problème ? Quelle est la valeur que tu n'arrives pas à recevoir ?

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 21:50
par raphou
Je n'arrive pas à récuperer l'id de la personne qui a poster le statut , pourtant dans le lien j'envoie bien cela en GET
<a style="color:#6fafff;"  id="like<?= $micropost->m_id ?>" data-action="like"  class="like" href="like_micropost.php?id=<?= $micropost->m_id; ?>">Je valide </a>

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 22:00
par or 1
var data = 'micropost_id=' + micropost_id+ '&action=' + action + '&user=<?= $micropost->user_id?>' + '&statut=<?= $micropost->content ?>' ;
il y a donc des paramètres issus du javascript et d'autres de php. est-ce que dans le source de la page, ceux en php ont bien la valeur escomptée ?
quelle est l'url appelée par l'ajax ?

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 22:03
par raphou
Oui les valeurs dans le PHP sont bonnes

L'ajax appelle cette page:
<?php 
session_start();

require '../config/database.php';
require '../includes/functions.php';

extract($_POST);



if($action == 'like'){

 if(! user_has_already_liked_the_micropost($micropost_id)){
 	
 	
 	$q = $db->prepare('INSERT INTO notifications(subject_id, name, user_id,type_id)
			 VALUES(:subject_id, :name, :user_id,:type_id)');
			 $q->execute([
			 'subject_id' => $user,
			 'name' => 'like_post',
			 'user_id' => get_session('user_id'),
			 'type_id' => $statut

			 ]);
 	 	like_micropost($micropost_id);

 	
 }
}else{
	if(user_has_already_liked_the_micropost($micropost_id)){

 	unlike_micropost($micropost_id);

  }
}
echo get_likers_text($micropost_id);

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 22:16
par or 1
extract($_POST);
l'ajax fait bien un appel en méthode post ?

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 23:37
par raphou
Oui oui

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 23:48
par or 1
'subject_id' => $user,
j'aurais plutôt vu $micropost_id

Re: Recuperer paramètres d'un lien href avec php

Posté : 12 déc. 2015, 23:49
par raphou
Ce n'est pas le micropost_id que je veux c'est le id de la personne qui a posté le statut , pour envoyer la notifications a la bonne personne :)

Re: Recuperer paramètres d'un lien href avec php

Posté : 14 déc. 2015, 21:23
par raphou
Quelqu'un pourrait il m'aider ...