Bonjour à tous, j'ai créer un système permettant qu'un utilisateur puisse publier son post, sur ce post on droit de supprimer, s'abonner, editer, ou signaler le post sauf que si moi qui viens de me connecter normalement je devrais avoir que "supprimer(le post), editer. sur les autres post je peux supprimer leurs post j'ai essayer de faire un (if(isset($_SESSION['id])) on affiche supprimer et editer else on affiche les autres option. j'ai tout essayer malheureusement ca ne fonctionne pas ? est-ce que je me suis tromper quelques part ? merci de votre aide.

Voici mon code, la session je l'ai déclarer toute au début:

<?php
require '../inc/session.php';
require '../inc/init.php';
setlocale(LC_TIME, 'fra_fra');
session_start();
if(!empty($_SESSION['id']) && !empty($_SESSION['connecte']))
{
    $req = $pdo->prepare("SELECT * FROM users WHERE id = ? ");
    $req->execute(array($_SESSION['id']));
    $user = $req->fetch();
    // dont' touch */
}
if(!est_connecte()){
    header("Location: http://localhost/xampp/DEv/connexion.php");
    exit(); 

}
<?php                       
                    $req = $pdo->query('SELECT * FROM p_membrealpha ORDER BY id DESC'); 
                     while($data = $req->fetch()){
                        ?>
                     <div id="feed-post-1" class="card is-post">
                            <div class="content-wrap">
                                <div class="card-heading">
                                    <div class="user-block">
                                            <div class="image">
                                                <img src="../users_account/alphamembre/avatar/<?= $data['avatar'] ?>" alt="<?= $data['pseudo'] ?>" style="object-fit: cover;">
                                            </div>
                                            <div class="user-info">
                                                    <a href="#"><?= $data['pseudo'] ?></a>
                                                <span class="time"><?= strftime('%d %B %Y', strtotime($data['date_publish']))." à ".date('H:i', strtotime($data['date_publish'])) ?></span>
                                            </div>
                                        </div>
                                    <div class="dropdown is-spaced is-right is-neutral dropdown-trigger">
                                <div>
                                    <div class="button" id="button-dropdown">
                                        <i class="fas fa-chevron-down" id="chevron"></i>
                                    </div>
                                </div>

                                <div class="dropdown-menu dropdown-menu-post" role="menu" style="background:#0d1012;border-radius:7px;">
                                    <?php
                                    if(isset($_SESSION['id'])){
                                        echo '<a href="#" class="dropdown-item">
                                            <div class="media">
                                                <i data-feather="user-plus"></i>
                                                <div class="media-content">
                                                    <h3>Suivre '.$data['pseudo'].'</h3>
                                                    <small>S\'abonner a ce compte</small>
                                                </div>
                                            </div>
                                        </a>
                                        <a href="#" class="dropdown-item">
                                            <div class="media">
                                                <i data-feather="flag"></i>
                                                <div class="media-content">
                                                    <h3>Signaler</h3>
                                                    <small>En cas de contenu inapproprié.</small>
                                                </div>
                                            </div>
                                        </a>';
                                    }else{
                                        echo '
                                        <a class="dropdown-item">
                                        <div class="media">
                                            <i class="far fa-trash-alt" id="drop-delete" style="font-size: 19px;margin-right: 11px;"></i>
                                            <div class="media-content drop-delete">
                                                <h3>Supprimer</h3>
                                                <small id="drop-delete">Supprimer la publication</small>
                                            </div>
                                        </div>
                                    </a>';
                                    }
                                    ?>
                                        <!-- <a href="#" class="dropdown-item">
                                            <div class="media">
                                                <i data-feather="flag"></i>
                                                <div class="media-content">
                                                    <h3>Signaler</h3>
                                                    <small>En cas de contenu inapproprié.</small>
                                                </div>
                                            </div>
                                        </a>-->
                                </div>
                            </div> 
                        </div>

11 réponses


Carouge10
Réponse acceptée

Bonjour,
as-tu vérifié ce que contient $_SESSION avec un var_dump ?
autre chose : pourquoi mettre un echo du html pour ton menu et ne pas faire comme le code du début en faisant juste le echo de la variable php a insérer "<?= $ma_var; ?>", cela d'éviterai d'échapper les simple quote

Carouge10
Réponse acceptée

oui car tu ne dois pas prendre $nomfile est que le nom du fichier en cours d'upload mais $data['alpha_media'] qui le nom du fichier uploadé

Carouge10
Réponse acceptée

peut-être un soucis de cache

Je vais changer pour le echo du html, session contient la session l'id de l'utilisateur connecter.

Ca y'est ca fonctionne, merci a toi Carouge10 :D

et du coup c'était quoi le problème ?

Bonjour.
Il y a une grosse différence entre ce que tu souhaites faire et le code que tu nous montre.
Car pour qu'il y ait des auteurs différents, il te faudrait déjà commencer par créer un système de connexion et non juste pour toi.
Sinon comment vas-tu différencier un auteur d'un autre, s'il est bien l'auteur d'un article en question et si c'est toi et pas quelqu'un d'autre qui est connecté ?
Par conséquent il te faudrait des conditions du genre :

if (!empty($_SESSION['id'])): // Utilisateur connecté
    if ($_SESSION['is_admin']): // Administrateur

    else if ($data['user_id'] == $_SESSION['id']): // Auteur

    else: // Autre utilisateur

else: // Utilisateur non connecté

endif;

Bonsoir, désolé je n'avais pas vue vos message, alors moi j'ai fais ce-cis et ca m'affihe bien ce que je veux.

<div class="dropdown-menu dropdown-menu-post" role="menu" style="background:#0d1012;border-radius:7px;">

                                <?php
                                if($_SESSION['pseudo'] != $data['pseudo'])
                                {
                                ?>
                                    <a href="#" class="dropdown-item">
                                            <div class="media">
                                                <i data-feather="user-plus"></i>
                                                <div class="media-content">
                                                    <h3>Suivre <?= $data['pseudo'] ?></h3>
                                                    <small>S'abonner a ce compte</small>
                                                </div>
                                            </div>
                                        </a>
                                    <a href="#" class="dropdown-item">
                                        <div class="media">
                                            <i data-feather="user"></i>
                                            <div class="media-content">
                                                <h3>Voir son profil</h3>
                                                <small>Acceder a son compte alpha</small>
                                            </div>
                                        </div>
                                    </a>
                                    <a class="dropdown-item">
                                            <div class="media">
                                                <i data-feather="link"></i>
                                                <div class="media-content">
                                                    <h3>Copier le lien</h3>
                                                    <small>Copier l'url du lien</small>
                                                </div>
                                            </div>
                                    </a>
                                    <a class="dropdown-item">
                                        <div class="media">
                                            <i data-feather="flag"></i>
                                            <div class="media-content">
                                                <h3>Signaler</h3>
                                                <small>En cas de contenu inapproprié.</small>
                                            </div>
                                        </div>
                                    </a>
                                <?php
                                }
                                ?>
                                <?php
                                if($_SESSION['pseudo'] == $data['pseudo'])
                                {
                                ?>
                                    <a class="dropdown-item">
                                        <div class="media">
                                            <i data-feather="link"></i>
                                            <div class="media-content">
                                                <h3>Copier le lien</h3>
                                                <small>Copier l'url du lien</small>
                                            </div>
                                        </div>
                                    </a>
                                    <a class="dropdown-item">
                                        <div class="media">
                                            <i class="far fa-trash-alt" id="drop-delete" style="font-size: 19px;margin-right: 11px;"></i>
                                            <div class="media-content drop-delete">
                                                <h3>Supprimer</h3>
                                                <small id="drop-delete">Supprimer la publication</small>
                                            </div>
                                        </div>
                                    </a>     
                                <?php
                                }
                                ?>
                                <!-- <a href="#" class="dropdown-item">
                                    <div class="media">
                                        <i data-feather="flag"></i>
                                        <div class="media-content">
                                            <h3>Signaler</h3>
                                            <small>En cas de contenu inapproprié.</small>
                                        </div>
                                    </div>
                                </a>-->
                                </div>

Par contre j'ai un peu avancer sur mon projet. c'est au niveau des publication des post que ca me pose un problème pour publier son post avec image sa donne sa:

if(isset($_FILES['add_media']) AND !empty($_FILES['add_media']['name'])) 
    {
        $nomfile = date("YmdHis");
        $taille = 2097152; // 2Mo;
        $extensionsValides = array('jpg', 'jpeg', 'png');
        if($_FILES['add_media']['size'] <= $taille)
        {
            $extensionUpload = strtolower(substr(strrchr($_FILES['add_media']['name'], '.'), 1));
            if(in_array($extensionUpload, $extensionsValides))
            {
                $chemin = "../users_account/alphamedias/alphamembre/".$user['registre_keymembre']."/".$nomfile.".".$extensionUpload;
                $resultat = move_uploaded_file($_FILES['add_media']['tmp_name'], $chemin);

                if($resultat){
                    $sql_update = 'UPDATE p_membrealpha SET alpha_media = :alpha_media WHERE id = :id';
                    $req_update = $pdo->prepare($sql_update);
                    $req_update->execute(
                        [
                            'alpha_media' => $nomfile.".".$extensionUpload,
                            'id' => $_SESSION['id']
                        ]
                    );
                    echo "Votre photo de profil a bien été mise à jours"; // a modifier

                }else{
                    echo "Une erreur s'est produite pendant l'importation"; a modifier
                }

            }else{
            echo "Votre photo doit être au format: jpg, jpeg ou png"; a modifier
            }   
        }else{
        echo "Votre photo ne doit pas dépassé 2Mo"; a modifier
        }
    }

    // SECTION PUBLISH 
    if(!empty($_POST['publish']))
    {
        $post = trim($_POST['publish']);
        $datas = [
          'pseudo' => $user['pseudo'],
          'fkey_membre' => $user['registre_keymembre'],
          'alpha_titre' => $post,
          'avatar' => $user['avatar'],
        ];
        if(!empty($post))
        {
            $insert_post= $pdo->prepare("INSERT INTO p_membrealpha (pseudo, alpha_titre, fkey_membre, avatar, alpha_media) VALUES (:pseudo, :alpha_titre, :fkey_membre, :avatar, :alpha_media)");
            $insert_post->execute($datas) or die(print_r($pdo->errorInfo()));
            echo "post publish";
        }else{
            echo "Error";
        }

    }

ET pour afficher le posts j'ai fais une boucle while =>

$req = $pdo->query('SELECT * FROM p_membrealpha ORDER BY id DESC'); 
  while($data = $req->fetch()){
   ?>
   <div class="">le post avec du code php pour afficher l'avatar de l'utilisateur et autres informations... </div>
   <?php
   ?>

et a l'intérieur de la boucle pour afficher par exemple une images qu'il aurait pris, j'ai fais ce-cis

<div class="post-image">

                                <a data-fancybox="post1" data-lightbox-type="comments" href="#">
                                    <img src="../users_account/alphamedias/alphamembre/<?= $data['fkey_membre'] ?>/<?= $nomfile ?>.<?=$extensionUpload?>" alt="<?= $data['pseudo'] ?>"> 
                                </a>
</div>

Le problème c'est que dès que je charge une image je l'upload il s'affiche mais lorsque j'actualise la page elle disparait, aussi j'ai l'image qui apprarait en boucle sur le même post par exemple qui a été publier hier.

en photo ce que je veux afficher:

https://ibb.co/c2KcXrK

tu peux aussi remplacer ce bout de code

<?php 
}
?>
<?php
if($_SESSION['pseudo'] == $data['pseudo'])
{
?>

par

<?php 
}
else
{
?>

mais je ne comprend pas, je ne sais combien de fois j'ai fais $data['alpha_media'] mais rien ne s'afficher j'ai vérifier et reverifier mon code si je n'avais pas oublier quelques chose et d'un coup ca fonctionne. merci beacuoup, et merci également a toi Lartak ;)