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>
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
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é
Je vais changer pour le echo du html, session contient la session l'id de l'utilisateur connecter.
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:
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 ;)