par
marcello2 » 19 juin 2008, 14:21
Oui. voila mon script complet habituel.
<?php
//appel des header pour bloquer le cache
require_once('blocageCache.php');
//active les sessions
session_start();
//récupération des variables envoyées par Flash
if(isset($_POST['login'])) $login= utf8_decode($_POST['login']); else $login="inconnu";
if(isset($_POST['secret'])) $secret= utf8_decode($_POST['secret']); else $secret="inconnu";
$login=addslashes($login);
$secret=addslashes($secret);
//--------------FONCTIONS
function envoi($var, $val){
echo "&".$var."=".utf8_encode($val);
}
//--------CONNEXION ET SELECT BASE ------------
require_once('Connections/connexionLogin.php');
mysql_select_db("maBase");
//---------RECUP DES INFOS (depuis la table )
$query_rs = "SELECT * FROM utilisateurs WHERE login='$login' ";
$rs = mysql_query($query_rs, $connexionLogin) or die(mysql_error());
$row_rs = mysql_fetch_assoc($rs);
$total_rs=mysql_num_rows($rs);
//---------TEST DE D'EXISTENCE ET DE CONCORDANCE LOGIN/PWD
if(($secret == $row_rs['secret'])&&($total_rs!=0)){
//test si le controle du mot de passe est ok
$_SESSION['login']=$login;
//mémorise le login de l'utilisateur en session
envoi("retour","ok");
$idUtilisateur = $row_rs['idUtilisateur'];
$_SESSION['idUtilisateur']=$idUtilisateur;
envoi("idUtilisateur",$idUtilisateur);
$produit=$row_rs['produit'];
envoi("produit",$produit);
//envoie la confirmation de l'authentification à l'application Flash
}
else
{
envoi("retour","pb");
//dans le cas contraire, un message d'erreur est renvoyé à l'application Flash
}
?>
J'ai simplement voulu remplacer
$login=addslashes($login);
$secret=addslashes($secret);
par
$login=mysql_real_escape_string($login);
$secret=mysql_real_escape_string($secret)
pour me protéger d'une injection sql.
Mais je n'arrive plus à me connecter.
Oui. voila mon script complet habituel.
[php]<?php
//appel des header pour bloquer le cache
require_once('blocageCache.php');
//active les sessions
session_start();
//récupération des variables envoyées par Flash
if(isset($_POST['login'])) $login= utf8_decode($_POST['login']); else $login="inconnu";
if(isset($_POST['secret'])) $secret= utf8_decode($_POST['secret']); else $secret="inconnu";
$login=addslashes($login);
$secret=addslashes($secret);
//--------------FONCTIONS
function envoi($var, $val){
echo "&".$var."=".utf8_encode($val);
}
//--------CONNEXION ET SELECT BASE ------------
require_once('Connections/connexionLogin.php');
mysql_select_db("maBase");
//---------RECUP DES INFOS (depuis la table )
$query_rs = "SELECT * FROM utilisateurs WHERE login='$login' ";
$rs = mysql_query($query_rs, $connexionLogin) or die(mysql_error());
$row_rs = mysql_fetch_assoc($rs);
$total_rs=mysql_num_rows($rs);
//---------TEST DE D'EXISTENCE ET DE CONCORDANCE LOGIN/PWD
if(($secret == $row_rs['secret'])&&($total_rs!=0)){
//test si le controle du mot de passe est ok
$_SESSION['login']=$login;
//mémorise le login de l'utilisateur en session
envoi("retour","ok");
$idUtilisateur = $row_rs['idUtilisateur'];
$_SESSION['idUtilisateur']=$idUtilisateur;
envoi("idUtilisateur",$idUtilisateur);
$produit=$row_rs['produit'];
envoi("produit",$produit);
//envoie la confirmation de l'authentification à l'application Flash
}
else
{
envoi("retour","pb");
//dans le cas contraire, un message d'erreur est renvoyé à l'application Flash
}
?>
J'ai simplement voulu remplacer
$login=addslashes($login);
$secret=addslashes($secret);
par
$login=mysql_real_escape_string($login);
$secret=mysql_real_escape_string($secret) [/php]
pour me protéger d'une injection sql.
Mais je n'arrive plus à me connecter.