PHP

Supprimer un utilisateur en tant qu'administrateur

Résolu

Bonjour,


Je souhaiterai créer une page ou il y aurait la liste de mes utilisateurs et ou je pourrai les supprimés


J'ai essayé d'obenir la liste des utilisateurs en faisant comme ça :


users.php


<?php
error_reporting(0);
?>

<?php
include('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
        <link rel="shortcut icon" type="image/x-icon" href="default/favicon.ico" />
        <title>Liste des utilisateurs</title>
    </head>
    <body>
        <div class="header">
            <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
        </div>
        <div class="content">
<span style="color: white;">Voici la liste des utilisateurs:</span>
<table>
    <tr>
        <th>Id</th>
        <th>Nom d'utilisateur</th>
        <th>Email</th>
    </tr>
<?php
//On recupere les identifiants, les pseudos et les emails des utilisateurs
$req = mysql_query('select id, username, email from users');
while($dnn = mysql_fetch_array($req))
{
?>
    <tr>
        <td class="left"><?php echo $dnn['id']; ?></td>
        <td class="left"><a href="profile.php?id=<?php echo $dnn['id']; ?>"><strong><span style="color: red;"><?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></span></strong></td>
        <td class="left"><?php echo htmlentities($dnn['email'], ENT_QUOTES, 'UTF-8'); ?></td>
    </tr>
<?php
}
?>
</table>
        </div>
    </body>
</html>


Du cout, les utilisateurs s'affichent, mais juste à coter de l'utilisateur, je souhaiterai qu'il y est un bouton supprimer


Par contre il n'y aurait que les utilisateurs ayant pour rôle admin qui pourrait supprimer les utilisateurs


<?php
if(isset($_SESSION['username']) and $_SESSION['role']==$admin)
{
?>
<?php
}
?>



Base de donnée


Voici ma table - users


users.sql


CREATE TABLE IF NOT EXISTS `users` (
 `id` bigint(20) NOT NULL,
 `nom` varchar(100) NOT NULL,
 `prenom` varchar(100) NOT NULL,
 `username` varchar(255) NOT NULL,
 `numero_client` varchar(100) NOT NULL,
 `role` varchar(100) NOT NULL,
 `abonnement` varchar(100) NOT NULL,
 `etat_compte` varchar(100) NOT NULL,
 `password` varchar(255) NOT NULL,
 `email` varchar(255) NOT NULL,
 `avatar` text NOT NULL,
 `signup_date` int(10) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Je vous remercie😀

1143 vues
16 avril 2020 à 18:05 (Édité)
Cette pub permet au site de vivre ...

14 commentaires

Bonjour,

J'ai finalement trouvé la solution à mon problème. J'ai dû adapter mon code à ma page de suppression de mes topics dans ma partie administration de ces derniers. Par conséquent je peux désormais supprimer et modifier mes membres depuis l'espace administrateur 😉



A bientôt et merci à tous les participants😀

J'ai essayé mais ça fonctionne toujours pas !!!


voici mes modifs


<?php
error_reporting(0);
?>

<?php

if(isset($_GET['delete']) AND !empty($_GET['delete'])){
  $id = $_GET['delete'];
  $requete = mysql_prepare('DELETE FROM users WHERE id = ?');
  $requete->execute(array($id));
}

?>

<?php
include('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
        <link rel="shortcut icon" type="image/x-icon" href="default/favicon.ico" />
        <title>Liste des utilisateurs</title>
    </head>
    <body>
        <div class="header">
            <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
        </div>
        <div class="content">
<span style="color: white;">Voici la liste des utilisateurs:</span>
<table>
    <tr>
        <th>Id</th>
        <th>Nom d'utilisateur</th>
        <th>Email</th>
        <!--<th>Action</th>-->
    </tr>
<?php
//On recupere les identifiants, les pseudos et les emails des utilisateurs
$req = mysql_query('select id, username, email from users');
while($dnn = mysql_fetch_array($req))
{
?>
    <tr>
        <td class="left"><?php echo $dnn['id']; ?></td>
        <td class="left"><a href="profile.php?id=<?php echo $dnn['id']; ?>"><strong><span style="color: red;"><?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></span></strong></td>
        <td class="left"><?php echo htmlentities($dnn['email'], ENT_QUOTES, 'UTF-8'); ?></td>
        <td><a href="users.php?delete=<?php echo $dnn['id']; ?>"><img src="<?php echo $design; ?>/images/delete.png" alt="Delete" /></a></td>-->
    </tr>
<?php
}
?>
</table>
        </div>
        
        <div class="foot"><a href="<?php echo $url_home; ?>">Retour &agrave; l'accueil</a> - <a href="http://192.168.1.16/web">Accueil du site</a></div>
    </body>
</html>

Essaye ça @Nico19,


<?php

if(isset($_GET['delete']) AND !empty($_GET['delete'])){
  $id = $_GET['delete'];
  $requete = mysql_prepare('DELETE FROM users WHERE id = ?');
  $requete->execute(array($id));
}

?>

Salut @CrafterHide,


Voila comment ma requête est formulé :


<?php
//On recupere les identifiants, les pseudos et les emails des utilisateurs
$req = mysql_query('select id, username, email from users');
while($dnn = mysql_fetch_array($req))
{
?>


je lance la requête :


$req = mysql_query('select id, username, email from users');


je créer ma variable $dnn :


while($dnn = mysql_fetch_array($req))


pour faire :


<a href="users.php?delete=<?php echo $dnn['id']; ?>">

Re @CrafterHide,


Oui, je te comprend. Prends ton temps😉

Pas de problèmes

Je vais essayer de trouver une solution de mon côté. Je te tiendrais informés si c'est le cas 😌

Je te remercie👍

Re @Nico19,


Désolé, mais tiens un conseil, au lieu d'utiliser <?php echo ... ?>, fais <?= ... ?>, c'est plus facile. Et je vais essayer avec ta technique (mais ca va prendre du temps je pense) donc là je fais mon possible mais c'est bizarre.

Re: @CrafterHide,

Je n'ai pas eu de retour de ta part, j'ai essayé de faire de nouvelle modif, mais apparemment, ça marche pas

je suis désespérés !!!😧


Merci d'avance pour ton retour

Je te renvoie mon code avec les nouvelles modifications, mais quand je clique sur supprimer, l’écran est blanc et l'utilisateur n'est pas supprimé


<?php
error_reporting(0);
?>

<?php

// Tu met ta condition pour voir si la personne à le rôle "admin"

if(isset($_GET['delete']) AND !empty($_GET['delete'])){
  $id = $_GET['delete'];
  $requete = $link->prepare('DELETE FROM users WHERE id = ?');
  $requete->execute(array($id));
}
?>

<?php
include('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
        <link rel="shortcut icon" type="image/x-icon" href="default/favicon.ico" />
        <title>Liste des utilisateurs</title>
    </head>
    <body>
        <div class="header">
            <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
        </div>
        <div class="content">
<span style="color: white;">Voici la liste des utilisateurs:</span>
<table>
    <tr>
        <th>Id</th>
        <th>Nom d'utilisateur</th>
        <th>Email</th>
        <th>Action</th>
    </tr>
<?php
//On recupere les identifiants, les pseudos et les emails des utilisateurs
$req = mysql_query('select id, username, email from users');
while($dnn = mysql_fetch_array($req))
{
?>
    <tr>
        <td class="left"><?php echo $dnn['id']; ?></td>
        <td class="left"><a href="profile.php?id=<?php echo $dnn['id']; ?>"><strong><span style="color: red;"><?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></span></strong></td>
        <td class="left"><?php echo htmlentities($dnn['email'], ENT_QUOTES, 'UTF-8'); ?></td>
        <td><a href="users.php?delete=<?php echo $dnn['id']; ?>"><img src="<?php echo $design; ?>/images/delete.png" alt="Delete" /></a></td>
    </tr>
<?php
}
?>
</table>
        </div>
    </body>
</html>


Pour la liste des utilisateurs + la zone d'action (suppression), voila ce que j'ai fais


    <tr>
        <td class="left"><?php echo $dnn['id']; ?></td>
        <td class="left"><a href="profile.php?id=<?php echo $dnn['id']; ?>"><strong><span style="color: red;"><?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></span></strong></td>
        <td class="left"><?php echo htmlentities($dnn['email'], ENT_QUOTES, 'UTF-8'); ?></td>
        <td><a href="users.php?delete=<?php echo $dnn['id']; ?>"><img src="<?php echo $design; ?>/images/delete.png" alt="Delete" /></a></td>
    </tr>

Mince... moi j'utilise une autre config... mais je vais essayer quand meme...


(J'utilise le meme truc que avant mais je modif la variable de connexion a la bdd)


<?php
 
// Tu met ta condition pour voir si la personne à le rôle "admin"
 
if(isset($_GET['delete']) AND !empty($_GET['delete'])){
  $id = $_GET['delete'];
  $requete = $link->prepare('DELETE FROM users WHERE id = ?');
  $requete->execute(array($id));
}
 
?>
Cette pub permet au site de vivre ...
1
2