Problême injection sql - PHP - Programmation
Marsh Posté le 22-07-2009 à 16:25:39
Salut,
- Met ton code entre balises "code=php" dans ton topic, on y voit rien là
- Avant de nous présenter ton code, assure toi qu'il ne génère pas d'erreur PHP quand tu y accèdes, en effet je doute que :
Code : |
,sans le || entre les 2 fonctions empty, passe
Marsh Posté le 22-07-2009 à 16:29:49
en plus y'a rien pour les injections la,
mets un mysql_real_escape_string,
ou passe sous PDO ca sera plus simple,
HS :
je trouve ca dommage que dès que quelqu'un veuille débuté part sur de mauvaise base, que ca soit les tutos les plus connus, ou les enseignants, c'est toujours du code qui date de 10 ans.
Marsh Posté le 22-07-2009 à 16:30:32
Dans tous les cas, tu ne devrais jamais utiliser une variable provenant des tableaux $_GET et $_POST directement pour l'intégrer dans une requête.
Tu devrais au minimum (et j'insiste sur le fait que c'est vraiment le minimum) les passer dans un mysql_real_escape_string (http://fr2.php.net/manual/en/function.mysql-real-escape-string.php)
Marsh Posté le 22-07-2009 à 16:38:39
Faut arrêter d'utiliser aussi cette fonction qui a 10 ans hein
Utilisez les prepared statements et tout devient plus simple/rapide/sûr . Ou alors PDO comme le dit stealth35
Marsh Posté le 22-07-2009 à 17:31:45
Oki je vais essayer, par contre je suis newbi à mort dans se domaine, en faite je connais très bien le html mais le php j'avoue que j'ai du mal
Marsh Posté le 22-07-2009 à 18:09:52
Est ce que vous connaissez un très bon moyen de débuter le php ?
Marsh Posté le 22-07-2009 à 18:32:09
ReplyMarsh Posté le 22-07-2009 à 20:16:00
Pascal le nain a écrit : Le meilleur d'après moi : http://www.siteduzero.com/tutoriel [...] c-php.html |
Comme toujours le site du zéro doit vraiment être considéré comme un site qui donne les bases, des bases, des bases.
Malheureusement beaucoup de gens le prennent pour une référence, alors qu'il est rempli de "passe-droits" et inexactitudes qui l'aident à rendre les pages plus courtes et simples à expliquer. Il faut vraiment retenir que dès qu'on a compris le site du zéro, il faut bien se dire "Bon, maintenant je suis prêt à apprendre comment les choses marchent en réalité" et s'orienter vers quelque chose de plus complet et correcte
Edit: Mais encore une fois, je trouve que ceux qui sont derrière ce site on fait un beau boulot de vulgarisation hein , je leur reproche juste de ne pas mettre assez en avant le fait qu'ils donnent uniquement les bases
Marsh Posté le 23-07-2009 à 00:09:20
esox_ch a écrit : |
Très juste. Un tutos sert à apprendre les usages courants. Si tu veux vraiment apprendre faut expérimenter par toi-même. "Tiens si je faisais ca ? Ca marche toujours ?"
Marsh Posté le 23-07-2009 à 00:13:58
Oui déjà ça, mais aussi lire un bon tuto/livre bien complet..
Faut pas se faire d'illusions, PHP a beau être un langage simple, c'est pas en 15 min sur le site du zéro qu'on va apprendre grand chose. On va juste apprendre de quoi assimiler plus vite la suite
Marsh Posté le 23-07-2009 à 08:26:05
J'ai jamais utilisé de bouquin ni de tuto super complexe. J'ai simplement essayé de faire des sites de plus en plus complexe, en testant, et en me référant a la doc, ca suffit largement.
Et pis php c'est pas un langage hyper violent quand même...
Marsh Posté le 23-07-2009 à 08:56:10
Bien sur on peut aquérir les connaissance un peu à la fois, en essayant plein de trucs et en lisant de la doc par ci par là.
Mais quand on regarde le nombre de tuto qui proposent une POO orientée objet, respectant les normes de nomenclature pour les fonctions & co, qui propose d'utiliser des concepts comme les requêtes préparées ou alors des systèmes comme PDO ... bein il y a pas à se réjouir.. La grande majorité des tuto c'est plutôt du style register_global on + include($toto)
Marsh Posté le 23-07-2009 à 11:01:43
esox_ch a écrit : une POO orientée objet |
par rapport à? une POO pas orientée objet?
Marsh Posté le 23-07-2009 à 11:13:33
Mes doigts ont fourché désolé
Je voulais dire une programmation orientée objet, ou une POO, et un mix des 2 est sorti
Marsh Posté le 22-07-2009 à 16:19:47
<?php
if(!(empty($_POST['username']) empty($_POST['password']))) {
mysql_connect('localhost', 'root', '');
mysql_select_db('phpsol');
$sql SELECT * FROM `acces` WHERE `login` = \'' . $_POST['username'] . '\' AND 'password' = \'' . sha1($_POST['password']) .'\';
$result = mysql_query($sql);
if(mysql_num_rows($result) == 1) {
echo 'Success';
}
else {
echo 'Denied';}
}
?>
Message édité par Av4l0n le 22-07-2009 à 17:30:45