Récupérer des données à partir d'un select

Fermé
cayoul Messages postés 17 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 8 mars 2011 - 16 févr. 2010 à 04:05
cayoul Messages postés 17 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 8 mars 2011 - 21 janv. 2011 à 03:43
Bonjour,

J'essaye de créer un module pour mon site internet (pas encore en ligne) qui me permettrait, en tant qu'administrateur, de choisir un utilisateur, et d'afficher toute ses informations.

J'arrive à afficher toute la liste de mes utilisateurs, mais je n'arrive pas à sélectionner un nom pour faire apparaître ses informations.

Voici mon code:

<?php require_once('connexion.php'); ?>
<?php

session_start(); // On relaye la session
if (session_is_registered("authentification") && $_SESSION['privilege'] == "admin"){ // vérification sur la session authentification (la session est elle enregistrée ?)
// ici les éventuelles actions en cas de réussite de la connexion
}
else {
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
?>
<?php

// ------ AFFICHER LA LISTE DES UTILISATEURS --------
// on fait la requête sur tous les utilisateurs de la base
mysql_select_db($database_dbprotect, $dbprotect);
$query_users = "SELECT * FROM utilisateurs ORDER BY nom ASC"; // ORDER BY renvoi les données triées (ici par nom croissant)
$users = mysql_query($query_users, $dbprotect) or die(mysql_error());
$row_users = mysql_fetch_assoc($users);

if(isset($_POST['selected'])){ // on vérifie la présence des variables de formulaire (si le formulaire a été envoyé)
$id = $_POST['selected'];
$change_user = sprintf("SELECT pass FROM utilisateurs WHERE id_user='$id'");

mysql_select_db($database_dbprotect, $dbprotect);
$result = mysql_query($change_user, $dbprotect) or die(mysql_error());
header("Location:change-pass-admin.php?delete=ok");
}

// ------ MODIFICATION D'UN UTILISATEUR --------
if(isset($_POST['pass'])){ // on vérifie la présence des variables de formulaire (si le formulaire a été envoyé)
if($_POST['pass'] == ""){ // si mot de passe non spécifiés >> message d'erreur
header("Location:change-pass-admin.php?erreur=empty");
}
else if($_POST['pass'] == $_POST['pass2']){ // on vérifie si le mot de passe et le mot de passe confirmé ont la même valeur
// on passe toutes les variables $POST en variables
$pass = md5($_POST['pass']); // ici, on crypte le mot de passe à l'aide de MD5 (c'est tout simple non ? :)


// on fait l'UPDATE dans la base de données
$update_user = sprintf("UPDATE utilisateurs SET pass='".$pass."' WHERE id_user='".$id."'");
mysql_select_db($database_dbprotect, $dbprotect);
$result = mysql_query($update_user, $dbprotect) or die(mysql_error());
header("Location:change-pass.php?add=ok"); // redirection si création réussie
}
else{
header("Location:change-pass-admin.php?erreur=pass"); // redirection si le pass1 est différent du pass2
}
}
// requête sur tous les utilisateurs recensés dans la base (on fait un tri par nom)

?>

fin de l'en tête

et dans <body>:

<h1>Afficher les informations d'un utilisateur</h1><br />
<h6><?php if(isset($_GET['delete']) && ($_GET['delete'] == "ok")) { // Affiche l'erreur ?>L'utilisateur a été supprimé avec succès<?php } ?> </h6>
<form action="" method="post" name="selected" ><br />

<div align="left">
<select name="selected" size="1" id="select2">
<?php
do {
?>
<option value="<?php echo $row_users['id_user']?>">
<?php if($row_users['privilege']== "admin") echo "- ";echo $row_users['nom']; echo " "; echo $row_users['prenom']; if($row_users['privilege']== "admin") echo " -"?>
</option>
<?php
} while ($row_users = mysql_fetch_assoc($users));
$rows = mysql_num_rows($users);
if($rows > 0) {
mysql_data_seek($users, 0);
$row_users = mysql_fetch_assoc($users);
}
?>
</select>
</div>
<br />
<input type="submit" name="Submit2" value="Afficher cet utilisateur">
<br clear="all"/><br/>
<h1>Modifier les informations de...</h1>

<form action="" method="post" name="add"><br />
<h6>
<?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "pass")) { // Affiche l'erreur ?>Veuillez vérifier votre mot de passe SVP<?php } ?>
<?php if(isset($_GET['add']) && ($_GET['add'] == "ok")) { // Affiche l'erreur ?>Votre mot de passe a été modifié avec succès. Vous devrez l'utiliser dès votre prochaine connexion.<?php } ?>
<?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "empty")) { // Affiche l'erreur ?>Vous n'avez pas entré de mot de passe<?php } ?>
</h6>


<table align="left" cellpadding="3" cellspacing="2">

<tr>
<td><span>Ancien Mot de passe </span></td>
<td><input name="pass" type="text" id="pass" style="width: 330px" value="<?php echo $id ?>"></td>
</tr>

<tr>
<td><span>Nouveau Mot de passe </span></td>
<td><input name="pass" type="text" id="pass" style="width: 330px"></td>
</tr>

<tr>
<td><span>Répéter nouveau mot de passe </span></td>
<td><input name="pass2" type="text" id="pass2" style="width: 330px"></td>
</tr>

<tr>
<td height="50" colspan="2" align="center">
<input type="submit" name="Submit" value="Modifier les informations de ce contact">
</td>
</tr>

</table>
</form>

Je tiens à préciser que je suis parti du script de DBconnect qui m'a beaucoup aidé.

Je répète ce que je veux faire, sélectionner un de mes utilisateurs, et en l'occurence ici, faire afficher son mot de passe (même si c'est du md5 je sais, c'est juste pour le principe parce qu'après je vais le faire sur toutes les autres champs de ma table), et me donner la possibilité de le modifier derrière.

Merci énormèment pour votre aide.

1 réponse

cayoul Messages postés 17 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 8 mars 2011
21 janv. 2011 à 03:43
Je poste une réponse 1 an et demi plus tard pour ceux qui aurait le même problème. En fait ma question était toute bête, mais à l'époque je venais de débuter en développement.

Une fois la liste de tous les membres affichés, il suffit de mettre un lien à côté pour modifier ou éditer ce membre, avec une URL du type detaildumembre.php?id_du_membre=...

Dans une seconde page on pourra faire une requête pour récupérer les données de ce membre avec en critère dans la requête WHERE id_du_membre = $_GET['id_du_membre']
0