[RESOLU] probleme "No database selected"

Eléphant du PHP | 161 Messages

06 juil. 2016, 11:55

Ryle la requete SQL
delete from users where user_id=4
s'execute bien le user4 a ette supprimer
voila
supprimerUsers.php
<?php require_once("connection.php")?>
<?php
$idu=$_GET["idUse"];
$req="delete from users where user_id=$idu?";
$dbConnect->query($req) or die(mysql_error());
header("location:GestionUsers.php");
?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 juil. 2016, 12:13

Le problème vient du "?" qui traîne encore dans ta requête et que Spols t'avais signalé :
$req="delete from users where user_id=$idu";
Ce qui est étrange, c'est que du coup ça devrait générer une erreur sql lors de l'exécution de la requête et faire apparaître un message avec le mysql_error(), mais quoi qu'il en soit, ça devrait résoudre le problème.

Ah et au cas où pour le header, il me semble qu'il faut utiliser "Location" avec un "L" majuscule, je sais pas si c'est encore le cas, mais avant c'était important :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 161 Messages

06 juil. 2016, 12:16

Merci
bien c'est regle

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 juil. 2016, 12:17

Et à noter...

Tu n'en es peut être pas encore là, mais il faudra également faire attention à contrôler les informations que tu reçois. Par exemple ici il faut vérifier que $idu (ou $_GET["idUse"]) est bien un chiffre, avant de l'utiliser dans ta requête. En effet, un utilisateur mal intentionné pourrait appeler ta page de suppression en ajoutant à la fin " ?idUse=0 or 1=1 "
Cela aurait pour effet de constituer la requête suivante "delete from users where user_id=0 or 1=1" qui supprimerait d'un coup tous tes utilisateurs :(
Ce n'est qu'un exemple, mais c'est une faille de sécurité, et on peut faire bien d'autres choses que juste supprimer des lignes (ce qui est déjà assez grave en soi :))..
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 161 Messages

06 juil. 2016, 13:11

Merci bien Ryle , je ne saisse de me demander comment securise mon code pour que de tels choses ne se produisent pas c'est ce que je n'ai pas encore capte comment s'y prendre.
je regarde les codes des certaines personnes s'y connaissant mais je ne vois rien d'etrange.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 juil. 2016, 13:27

salut,

utilise mysqli_real_escape_string pour cela.

dans ton cas tu peux simplement vérifier qu'il s'agit d'un chiffre avec is_numeric ou une simple expression régulière ( \d{1,}).

Merci de bien vouloir créer un nouveau sujet pour tes prochaines demandes (un par question en fait). La c'est un peu le bordel, sans parler du "résolus" avec les question qui s'enchaine.
Le but de séparer ainsi les sujet c'est de permettre aux personnes qui utilise le moteur de recherche pour voir si d'autre ont eu le même problème peuvent ainsi voir rapidement si les réponses apportées peuvent les aider (si si il y a des gens qui cherchent dans les forums avant de poster ;) ).

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 161 Messages

06 juil. 2016, 15:14

Merci bien du conseil
compris