Lien profil
- Accueil
- Forum
- Programmation
- PHP
- Lien profil
M69-74 Le 1 avril 2016 à 20:40 (Édité le 25 janvier 2019 à 17:50)
Alors voilà, je vous explique mon problème : j'ai fait un système d'administration dans lequel il y a la liste de tous les membres de ma BDD ayant pour chacun des options (tels que : supprimer ce compte, bannir ce compte etc...), mais je rencontre deux problèmes : tout d'abord, je voudrais que l'administrateur puisse cliquer sur le pseudo et que ca affiche la page de cet utilisateur, mais je ne sais pas comment faire. Ensuite, je ne sais pas non plus comment faire pour que l'action de l'administrateur (suppression, bannissement etc...) soit éféctuée sur l'utilisateur concerné.
Je vous remercie de vos réponses,
Bien Cordialement,
Marius
PrimFX Le 1 avril 2016 à 22:14 (Édité le 1 janvier 1970 à 01:00)
Pour ça il faut que tu fasses passer des paramètres soit via l'URL (en $_GET) ou bien via des formulaires (en $_POST ou $_GET).
Etant donné que ce sont des données relativement sensibles (suppressions de comptes, etc.), je te conseillerais de faire ça en POST à l'aide de formulaires, et de sécuriser le tout un minimum 😋
Pour le lien vers le profil, tout dépend de la structure de tes URL. Il faut que tu arrives à passer en paramètre d'URL la ou les variables qui permettront d'identifier l'utilisateur concerné 😉
@+
M69-74 Le 1 avril 2016 à 22:24 (Édité le 1 janvier 1970 à 01:00)
Merci !
TheFlameflo Le 1 avril 2016 à 22:26 (Édité le 1 avril 2016 à 22:27)
Moi, j'ai créé un système qui me permet d'accéder à la fiche d'un membre par une liste et sur cette fiche, je peux modifier les infos.
Alors, la liste :
<h1>Liste des membres</h1>
<table>
<tr>
<td>ID</td>
<td>Pseudo</td>
<td>Mail</td>
<td>Confirmé ou non</td>
<td>Niveau de permission</td>
</tr>
<?php
include("includes/config.php");
$req = $bdd->query('SELECT id, pseudo, mail, confirme, perm FROM espace_membre ORDER BY id DESC');
while($membres = $req->fetch())
{
?>
<tr>
<td><?php echo $membres['id']; ?></td>
<td><a href="membre.php?pseudo=<?php echo $membres['pseudo']; ?>"><?php echo $membres['pseudo']; ?></a></td>
<td><?php echo $membres['mail']; ?></td>
<td><?php
if($membres['confirme'] == 0){
echo "Non-confirmé";
}
else{
echo "Confirmé";
}
?></td>
<td><?php
if($membres['perm'] == 1)
{
echo "Membre";
}
elseif($membres['perm'] == 2)
{
echo "Administrateur";
}
else
{
echo "Erreur";
}
?>
</td>
</tr></br>
<?php
}
$req->closeCursor();
?>
En gros, ça créé un tableau où il y a les infos du membre (quelque unes). Le pseudo est sous forme d'un lien cliquable.
Et la fiche du membre permet de supprimer le membre s'il n'est pas administrateur :
<?php
include("includes/menu.php");
include("includes/config.php");
if(isset($_GET['pseudo']) AND !empty($_GET['pseudo']))
{
$requser = $bdd->prepare('SELECT * FROM espace_membre WHERE pseudo = ?');
$requser->execute(array($_GET['pseudo']));
$user = $requser->fetch();
}
if(isset($_POST['modifuser']))
{
if(isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo'])
{
$newpseudo = htmlspecialchars($_POST['newpseudo']);
$pseudolength = strlen($newpseudo);
if($pseudolength <= 255)
{
$reqpseudo = $bdd->prepare('SELECT * FROM espace_membre WHERE pseudo = ?');
$reqpseudo->execute(array($pseudo));
$pseudoexist = $reqpseudo->rowCount();
if($pseudoexist == 0)
{
$insertpseudo = $bdd->prepare('UPDATE espace_membre SET pseudo = ? WHERE pseudo = ?');
$insertpseudo->execute(array($newpseudo, $_GET['pseudo']));
header('Location: espace_membre.php');
}
else
{
$msg = "Ce pseudo est déjà pris.";
}
}
else
{
$msg = "Le pseudo ne doit pas dépasser 255 caractères.";
}
}
if(isset($_POST['newmail']) AND !empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail'])
{
$newmail = htmlspecialchars($_POST['newmail']);
if(filter_var($newmail, FILTER_VALIDATE_EMAIL))
{
$reqmail = $bdd->prepare('SELECT * FROM espace_membre WHERE mail = ?');
$reqmail->execute(array($newmail));
$mailexist = $reqmail->rowCount();
if($mailexist == 0)
{
$insertpseudo = $bdd->prepare('UPDATE espace_membre SET mail = ? WHERE pseudo = ?');
$insertpseudo->execute(array($newmail, $_GET['pseudo']));
header('Location: espace_membre.php');
}
else
{
$msg = "Cette adresse mail est déjà utilisée !";
}
}
else
{
$msg = "Cette adresse mail n'est pas valide.";
}
}
if(isset($_POST['newpseudo']) AND $_POST['newpseudo'] == $user['pseudo'])
{
header('Location: espace_membre.php');
}
if(isset($_POST['confirmuser']))
{
$confirmuser = $bdd->prepare('UPDATE `u820264992_flame`.`espace_membre` SET confirme = 1 WHERE pseudo = ?');
$confirmuser->execute(array($_GET['pseudo']));
header('Location: espace_membre.php');
}
if(isset($_POST['deleteuser']))
{
$deleteuser = $bdd->prepare('DELETE FROM espace_membre WHERE pseudo = ?');
$deleteuser->execute(array($_GET['pseudo']));
header('Location: espace_membre.php');
}
}
?>
<form method="POST" action="">
<table>
<tr>
<td><label>Pseudo:</label></td>
<td><input type="text" name="newpseudo" class="inputbasic" placeholder="Nouveau pseudo" value="<?php echo $user['pseudo']; ?>"/></td>
</tr>
<tr>
<td><label>Mail:</label></td>
<td><input type="text" name="newmail" class="inputbasic" placeholder="Nouveau mail" value="<?php echo $user['mail']; ?>"/></td>
</tr>
<?php
if($user['confirme'] == 0)
{
?>
<tr>
<td><label>Confirmer l'utilisateur :</label></td>
<td><input type="checkbox" name="confirmuser"/></td>
</tr>
<?php
}
?>
<?php
if($user['perm'] == 1)
{
?>
<tr>
<td><label>Supprimer l'utilisateur :</label></td>
<td><input type="checkbox" name="deleteuser"/></td>
</tr>
<?php
}
?>
<tr>
<td><input type="submit" value="Valider les changements" text-align="center" name="modifuser"/></td>
</tr>
</table>
</form>
<?php
if(isset($msg))
{
echo $msg;
}
?>
Voilà !
Si tu as des questions, n'hésite pas !
EDIT : J'ai vu que tu amènes vers une fiche avec un paramètre, ID, par contre ici c'est un paramètre pseudo...
M69-74 Le 1 avril 2016 à 23:11 (Édité le 1 avril 2016 à 23:18)
Je te remercie encore,
Cordialement,
Marius
TheFlameflo Le 1 avril 2016 à 23:24 (Édité le 1 janvier 1970 à 01:00)
Heu... en fait, je ne comprend pas trop. Si tu rediriges avec l'ID, c'est la même chose que le pseudo SAUF qu'il faudra que tu modifies toutes les variables $_GET['pseudo'] par $_GET['id'] !
M69-74 Le 1 avril 2016 à 23:35 (Édité le 1 janvier 1970 à 01:00)
TheFlameflo Le 1 avril 2016 à 23:52 (Édité le 1 janvier 1970 à 01:00)
$reqUser = $bdd->prepare('SELECT * FROM espace_membre');
$nombreUser= $reqUser->rowCount();
J'ai pas testé, mais en théorie, ça devrait marcher !
PS : Tu dois afficher $nombreUser ! 😀
M69-74 Le 2 avril 2016 à 00:02 (Édité le 2 avril 2016 à 00:34)
PrimFX Le 2 avril 2016 à 00:46 (Édité le 1 janvier 1970 à 01:00)
Content que tu ais pu trouver solution à ton problème notamment grâce à l'aide de @TheFlameflo 😀
N'oublies pas de passer le topic en "résolu" si tu n'as plus besoin d'aide concernant ce sujet 😋
@+
TheFlameflo Le 2 avril 2016 à 01:19 (Édité le 2 avril 2016 à 01:19)
Je suis content d'avoir pu t'aider ! 😀