[PHP/MySQL] Vérifier si la valeur d'ID utilisateur est valide
http://stream-play.net/test/header.html
Je veux réaliser une suppression d'un utilisateur via un panel Php mais celui ci bug car la valeur ID n'est pas reconnu comme nombre par la fonction is_numeric()
Ma table est :
user_id / medium int unsigned PRIMARY
first_name / varchar (20)
last_name / varchar (40)
email / varchar (60)
pass / char (40)
registration_date / DATETIME
Ma source concernant la page delete_user.php est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| <?php #Script - delete_user.php
// Cette page sert à supprimer un enregistrement utilisateur
// On y accède depuis view_users.php
$page_title = 'Delete a User';
include('header.html');
echo'<h1>Delete a User</h1>';
//Vérifier la validité de l'ID utilisateur via GET ou POST
if( (isset($_GET['id'])) && (is_numeric($_GET['id'])) ) { // Depuis view_users.php
$id =$_GET['id'];
} elseif ( (isset($_POST['id'])) && (is_numeric($_POST['id'])) ) { // Form submission
$id =$_POST['id'];
} else { // Pas d'ID valide, fin du script
echo '<p class="error">This page has been accessed in error..</p>';
include('footer.html');
exit();
}
require_once('mysqli_connect.php');
// Vérifier si le formulaire a été envoyé
if (isset($_POST['submitted'])) {
if ($_POST['sure'] == 'YES') { // Supprimer l'enregistrement
// Créer la requête
$q="DELETE FROM users WHERE user_id=$id LIMIT 1";
$r=@mysqli_query($dbc,$q);
if(mysqli_affected_rows($dbc) == 1) { // Si succès
// Imprimer message
echo'<p>The user has been deleted.</p>';
} else { // Si la requête n'a pas fonctionné
echo '<p class="error">The user could not be deleted dur to a system error.</p>'; // Message public
echo '<p>' . mysqli_error($dbc) . '<br> Query : ' . $q . '</p>'; // Message de débogage
}
} else { // Confirmer la non suppression
echo '<p> The user has NOT been deleted.</p>';
}
} else { // Afficher le formulaire
// Récupérer les informations de l'utilisateur
$q="SELECT CONCAT(last_name, ',' , first_name) FROM users WHERE user_id=$id";
$r=@mysqli_query($dbc,$q);
if (mysqli_num_rows($r) == 1) { // ID utilisateur valide, afficher le formulaire
// récupérer les informations de l'utilisateur
$row=mysqli_fetch_array ($r, MYSQLI_NUM);
// Créer le formulaire
echo '<form action="delete_user.php" method="post">
<h3>Name : ' . $row[0] . '</h3>
<p>Are you sur you want to delete this user ? <br>
<input type="radio" name="sure" value="Yes"> YES
<input type="radio" name="sure" value="No" checked="checked"> NO </p>
<p><input type="submit" name="submit" value="Submit"></p>
<input type="hidden" name="submitted" value="TRUE">
<input type="hidden" name="id" value=" ' . $id . ' ">
</form>';
} else { //ID utilisateur non valide
echo '<p class="error">This Page has been accessed in error</p>';
}
} // Fin de l'instruction conditionnelle d'envoi principale.
mysqli_close($dbc);
include('footer.html');
?> |
Avez vous une idée qui pourrait m'aider ?
Par avance merci,
Cordialement,