PHP

Problème avec le système de Follow

Résolu

Bonjour à tous je rencontre actuellement un problème avec mon site de follow, en effet lorsque l'utilisateur follow un autre utilisateur je récupère dans ma base de donné toutes les données sauf celle de l'utilisateur qui se fait follow (elle reste sur le 0).


Voici mon code merci pour toute aide :)👊


//Voici une partie du code see_profile.php

$get_id_users_see_profile = (int) htmlentities(trim($_GET['id']));

$fo = $DB->query("SELECT *
        FROM followers
        WHERE id_following = ? AND id_follower = ?",
        array($get_id_users_see_profile, $_SESSION['id']));;

$fo = $fo->fetch();

<form method="post" action="follow.php">
   <?php
        if($fo['status'] == 0){
        ?>
           <input type="submit" class="btn btn-primary" name="follow" value="follow"/>
           <input type="hidden" name="id_user" value="<? $fo['id_following'] ?>" />
        <?php
        }elseif($fo['status'] == 1){
        ?>
           <input type="button" class="btn btn-secondary" value="Waiting" />
        <?php
        }elseif($fo['status'] == 2){
        ?>
           <input type="submit" class="btn btn-danger" name="unfollow" value="unfollow">
        <?php
        }
    ?>
</form><br>


//Voici la page follow.php

<?php

session_start();

include('config/connexionDB.php');

if (!is_int($id) || $id <= 0 || (isset($_SESSION['id']) && $id == $_SESSION['id'])){
    header('Location: profile.php');
}

if (isset($_POST['follow'])){
    $valid = true;

    $id_user = htmlentities(trim($id_user));

    if ($valid) {
      $DB->insert("INSERT INTO followers (id_follower, id_following, status) VALUES (?, ?, ?)",
          array($_SESSION['id'], $id_user, 1));

      header('Location: home.php');
      exit;
    }
}
header('Location: home.php');
exit;
?>
816 vues
20 janvier 2020 à 20:47 (Édité)
Cette pub permet au site de vivre ...

Pour moi la meilleur méthode c'est que si tu mets post sur ton formulaire alors tu traites les informations sur la page en cours au lieu de la page de destination ! Comme ça tu ne t'y perds pas sur ton code.



Donc tu mets ton code php dans ta page see_profile.php


<form method="post">
  ...
</form>
Cette pub permet au site de vivre ...

3 commentaires

Pour moi la meilleur méthode c'est que si tu mets post sur ton formulaire alors tu traites les informations sur la page en cours au lieu de la page de destination ! Comme ça tu ne t'y perds pas sur ton code.



Donc tu mets ton code php dans ta page see_profile.php


<form method="post">
  ...
</form>

Salut @Clouder malgré votre aide mon système ne marche toujours pas...

J'ai essayé de déboguer avec des échos mais il me renvoie 0.

Je pense que ma méthode de transmission de la donnée id user n'est pas la bonne(?)

Salut @Batfire 😁


Ton ta page see_profile.php pour le raccourcis du echo en PHP tu as mis <? ... ?> alors qu'il faut mettre <?= ... ?>


Donc forcément ta variable $id_user doit être à 0


<input type="submit" class="btn btn-primary" name="follow" value="follow"/>
<input type="hidden" name="id_user" value="<?= $fo['id_following'] ?>" />


As-tu regarder mes vidéos pour créer un système de relation d'amitié ? (Follow / unfollow)



Et comme conseil, quand tu vois que dans ta BDD tu obtiens 0 c'est que certainement une de tes variables ne transmet pas la bonne information. Donc n'hésite pas à déboguer avec des echo, var_dump, print_r suivie d'un exit

Cette pub permet au site de vivre ...