Test sur Requette en php
bidlag
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
ElementW Messages postés 4814 Date d'inscription Statut Contributeur Dernière intervention -
ElementW Messages postés 4814 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je veux faire un teste sur une requette sql en php :
exemple :
$sel=$bdd->query("SELECT typea FROM inscription WHERE id_user LIKE ".$id." AND pass LIKE ".$mdp."");
Si($sel) est vrai {
}
si non
{}
cordialement,
je veux faire un teste sur une requette sql en php :
exemple :
$sel=$bdd->query("SELECT typea FROM inscription WHERE id_user LIKE ".$id." AND pass LIKE ".$mdp."");
Si($sel) est vrai {
}
si non
{}
cordialement,
A voir également:
- Test sur Requette en php
- Test performance pc - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- Test composant pc - Guide
- Test batterie pc - Guide
1 réponse
'lut
1. On utilise généralement pas
2. Tu as un risque d'injection SQL si tu n'as pas filtré le contenu de
3. PDOStatement::fetch() permet de récupérer les valeurs de la ligne actuelle sous forme d'un tableau avec
Corrigé, ça donnerait ça:
1. On utilise généralement pas
LIKEpour tester une égalité stricte, mais plutôt l'opérateur
=.
2. Tu as un risque d'injection SQL si tu n'as pas filtré le contenu de
$idet
$mdpauparavant. Il faut utiliser les requêtes préparées, c'est plus simple.
3. PDOStatement::fetch() permet de récupérer les valeurs de la ligne actuelle sous forme d'un tableau avec
PDO::FETCH_ASSOC, et renvoie
falses'il n'y a pas ou plus de données. En l'occurrence,
falsevoudra dire que le compte n'existe pas ou que le mot de passe est incorrect.
Corrigé, ça donnerait ça:
$req = $bdd->prepare("SELECT typea FROM inscription WHERE id_user = :id AND pass = :mdp"); $rep = $res->execute(array( ':id' => $id, ':mdp' => $mdp )); $ligne = $rep->fetch(PDO::FETCH_ASSOC); if ($ligne !== false) { ... $ligne['typea'] contient la valeur de la colonne "typea" du compte ... } else { ... }
<?php
$bdd=new PDO('mysql:host=localhost;dbname=sao','root','');
if(!$bdd)
{
die("Impossible de se connecter a la base ou de selectionner la base !");
}/*
$db = mysql_select_db('sao',$connexion);
if(!$db)
{
die("Impossible de selectionner la base !");
}*/
$user = $_POST['user'];
$pass = $_POST['pass'];
$type= $_POST['type'];
if(empty($user) || empty($pass))
{
echo '<SCRIPT LANGUAGE="JavaScript">document.location.href="cnx.php"
</SCRIPT>';
}
else
{
$reponse=$bdd->query ("SELECT * FROM inscription WHERE login='$user'");
//$req = mysql_query($sql) or die("Erreur SQL");
while($data = $reponse->fetch())
{
$mdp = $data['pass'];
$id = $data['id_user'];
}
$student=$bdd->query("SELECT * FROM inscription WHERE typea LIKE 'Student'");
$admin=$bdd->query("SELECT * FROM inscription WHERE typea LIKE 'Admin'");
$local=$bdd->query("SELECT * FROM inscription WHERE typea LIKE 'Local'");
$restau=$bdd->query("SELECT * FROM inscription WHERE typea LIKE 'Restaurant'");
$housing=$bdd->query("SELECT * FROM inscription WHERE typea LIKE 'Housing'");
$transport=$bdd->query("SELECT * FROM inscription WHERE typea LIKE 'Transport'");
$materiel=$bdd->query("SELECT * FROM inscription WHERE typea LIKE 'Material'");
if($pass == $mdp && $typea=='Student' && $student!==false)
{
session_start();
$_SESSION['user']=$user;
$_SESSION['id'] = $id;
echo '<SCRIPT LANGUAGE="JavaScript">document.location.href="user_student.php"
</SCRIPT>';
}
else if($pass==$mdp && $type=='Admin' && $admin!==false)
{
session_start();
$_SESSION['user']=$user;
$_SESSION['id']=$id;
echo'<script>document.location.href="user_admin.php"</script>';
}
else if($pass==$mdp && $type=='Local'&& $local!==false)
{
session_start();
$_SESSION['user']=$user;
$_SESSION['id']=$id;
echo'<script>document.location.href="user_local.php"</script>';
}
else if($pass==$mdp && $type=='Restaurant' && $restau!==false)
{
session_start();
$_SESSION['user']=$user;
$_SESSION['id']=$id;
echo'<script>document.location.href="user_restaurant.php"</script>';
}
else
{
echo '<SCRIPT LANGUAGE="JavaScript">document.location.href="cnx.php"
</SCRIPT>';
}
}
Ça va pas du tout. PDO est inutilisable avec les , c'est purement incompatible car PDO utilise les exceptions.
À part ça, qu'est-ce qui cloche? Je ne vois rien de flagrant à part des injections SQL possibles.