;p ok super !
autre chose
est ce que je dois securiser egalement une requete fetch ?
<?php
session_start();
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=bd_principale', 'root', '', $pdo_options);
$loginOK = false; // cf Astuce
// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) )
{
extract($_POST); // je vous renvoie à la doc de cette fonction
$login_echap = $bdd->quote($_POST['password']);
echo $login_echap;
// On va chercher le mot de passe afférent à ce login
$sql = "SELECT nom, prenom, adresse, complement_adresse, ville, code_postale, mail, login, pwd FROM bd_principale WHERE login = '".addslashes($login)."'";
$req = $bdd->query($sql) or die(mysql_error().'<br />'.$sql);
// On vérifie que l'utilisateur existe bien
if ($req->rowCount() > 0)
{
echo 'utilisateur existant';
$data = $req->fetch();
$truc = $data['pwd'];
echo $truc;
// On vérifie que son mot de passe est correct
if ($password == $data['pwd'])
{
$loginOK = true;
}
}
echo 'utilisateur inexistant';
}
// Si le login a été validé on met les données en sessions
if ($loginOK)
{
$_SESSION['nom'] = $data['nom'];
$_SESSION['prenom'] = $data['prenom'];
$_SESSION['adresse'] = $data['adresse'];
$_SESSION['complement_adresse'] = $data['complement_adresse'];
$_SESSION['ville'] = $data['ville'];
$_SESSION['code_postale'] = $data['code_postale'];
$_SESSION['mail'] = $data['mail'];
$_SESSION['login'] = $data['login'];
echo 'Vous etes connecter en tant que:';
echo 'nom : ',$_SESSION['nom'],
'<br />prenom : ',$_SESSION['prenom'],
'<br />adresse : ',$_SESSION['adresse'],
'<br />complement_adresse : ',$_SESSION['complement_adresse'],
'<br />ville : ',$_SESSION['ville'],
'<br />code_postale : ',$_SESSION['code_postale'],
'<br />mail : ',$_SESSION['mail'],
'<br />login : ',$_SESSION['login'];
}
else
{
echo $login_echap;
//header('Location: loginfaux.html');
}
?>
Je voudrais remplacer le addslash avec une variable preparée comme dans cet exemple (un code qu'on a vu precedement ensemble)
<?php
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=bd_principale', 'root', '', $pdo_options);
$adre_echap = $bdd->quote($_POST['Itm_8_00_7']);
echo $adre_echap;
if ( isset($_POST) && (!empty($_POST['Itm_8_00_7'])) )
{
extract($_POST);
// On va chercher l'adresse mail dans la base
$sql = "SELECT mail FROM bd_principale WHERE mail = $adre_echap";
$req = $bdd->query($sql) or die(mysql_error().'<br />'.$sql);
if ($req->rowCount() > 0)
{
echo '<br /> Adresse mail deja utilisé.';
}
else
{
$bdd->query('INSERT into bd_principale(nom, prenom, adresse, complement_adresse, code_postale, ville, mail, login, pwd) VALUES(' . $bdd->quote($_POST['Itm_8_00_1']) . ', '. $bdd->quote($_POST['Itm_8_00_2']) .', '. $bdd->quote($_POST['Itm_8_00_3']) .', '. $bdd->quote($_POST['Itm_8_00_4']) .', '. $bdd->quote($_POST['Itm_8_00_5']) .', '. $bdd->quote($_POST['Itm_8_00_6']) .', '. $bdd->quote($_POST['Itm_8_00_7']) .', '. $bdd->quote($_POST['Itm_8_00_8']) .','. $bdd->quote($_POST['Itm_8_00_9']) .')');
}
}
?>
j'ai fait plein d'essai mais rien a faire !
Est ce que si tu utilise un quote pour l'enregistrement dans la bd, le quote modifi t-il la chaine de caractere ou simplement rajoute t-il des ' ' qui ne seront pas interpreter par la suite ?
merci