Comment inclure ...

Résolu/Fermé
snow.alex Messages postés 150 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 31 août 2011 - 17 nov. 2008 à 20:38
snow.alex Messages postés 150 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 31 août 2011 - 20 nov. 2008 à 23:01
Bonjour,
Je souhaiterais inclure mysql_real_escape_string() dans mon code php :

<?php

// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

$base = mysql_connect ('habbgame.sql.jexiste.fr', 'habbgame', 'cvb123');
mysql_select_db ('habbgame', $base);

// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

mysql_free_result($req);
mysql_close();

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: /site/index.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>


Mais je ne vois pas comment faire ...
C'est juste pour éviter les injections SQL.

Merci de vos réponses.

3 réponses

Utilisateur anonyme
18 nov. 2008 à 08:30
include "le_fichier_qui_contient_la_fonction.php"
0
Bonjour

Tu as déjà mysql_escape_string, c'est suffisant en ce qui concerne la sécurité. La différence avec mysql_real_escape_string porte sur la prise en compte des différents jeux de caractères ; si tu veux en tenir compte, tu remplaces simplement mysql_escape_string par mysql_real_escape_string
D'autre part, dans md5(mysql_escape_string($_POST['pass'])), le mysql_escape_string est totalement inutile, un mot de passe hashé par MD5 ne risque pas de te faire d'injection SQL.
0
snow.alex Messages postés 150 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 31 août 2011 11
20 nov. 2008 à 23:01
Merci pour vos réponses =)
0