<?php // connexion à votre base de données $mysql_link=mysql_connect("localhost", "********", "********"); mysql_select_db("*********", $mysql_link); //initialize the session session_start(); //initialisation de la session session_start(); if($_POST['nom']=="" or $_POST['pass']=="") { header('Location: identification.htm'); exit();} //si les champs ont été remplis if (!$_POST['nom']=="" && !$_POST['pass']=="") { //on récupÚre les valeurs des champs $pass = $_POST['pass']; $nom = $_POST['nom']; // connexion à votre base de données $mysql_link=mysql_connect("localhost", "*******", "***********"); mysql_select_db("********", $mysql_link); $sql = mysql_query("SELECT * FROM eleves WHERE nom='$nom'"); $row = mysql_fetch_array($sql); $nom_sql = $row['nom']; $pass_sql = $row['pass']; //on teste si le mot de passe correspond à la base de donnée if ($pass_sql == $pass) { //identification ok, alors aller vers l'acceuil. //on créé la variable de session avec son nom $_SESSION['nom'] = $nom; header('Location: index.php'); } else header('Location: identification.htm');
$mysql_link=mysql_connect("localhost", "********", "********"); mysql_select_db("*********", $mysql_link);
session_start();
if($_POST['nom']=="" or $_POST['pass']=="")
if(empty($_POST['nom']) or empty($_POST['pass']))
if (!$_POST['nom']=="" && !$_POST['pass']=="")
WHERE nom='$nom'
<?php if (isset($_POST['nom']) && isset($_POST['pass'])) { //si les champs ont été remplis if (!empty($_POST['nom']) && !empty($_POST['pass'])) { // connexion à votre base de données $mysql_link =mysql_connect("localhost", "*******", "***********"); mysql_select_db("********", $mysql_link); //on récupÚre les valeurs des champs $pass = mysql_real_escape_string($_POST['pass']); $nom = mysql_real_escape_string($_POST['nom']); $sql = mysql_query("SELECT nom FROM eleves WHERE nom='$nom' AND pass='$pass'"); if (mysql_num_rows($sql) == 1) { $_SESSION['nom'] = $nom; header('Location: index.php'); exit; } } } header('Location: identification.htm'); ?>
//on récupÚre les valeurs des champs
$pass = $_POST['pass'];
$nom = $_POST['nom'];
=> à proscrire !!! => utilise systématiquement mysql_real_escape_string() pour les variables externes
- header() doit toujours être suivi d'un exit()
On a déjà eu ce débat, ça fonctionne uniquement pour les valeurs qui sont a insérer entre quotes dans le SQL, donc si on fait sa requête proprement ça ne fonctionne pas pour les entiers, flotants, etc.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJe ne me souviens plus de ce débat et à vrai dire j'ai peur de ne pas comprendre où tu veux en venir (??)
Pour quelles raisons l'utilisation de mysql_real_escape_string ne fonctionnerait elle pas sur les int, float, etc ... ?
$truc = 'bidule';
[...]
if (ctype_alpha($truc) === true) [...] else throw new exception('$truc is not a valid ...');
[...]
$tartanpion = (isset($truc))? (string)$truc:false;
$sql = mysql_query("SELECT * FROM eleves WHERE nom='$nom'"); $row = mysql_fetch_array($sql); $nom_sql = $row['nom']; $pass_sql = $row['pass']; $ville_sql = $row['ville']; $adresse_sql = $row['adresse'];
$ville_sql = $row['ville']; $adresse_sql = $row['adresse'];
<?php //initialisation de la session if (!$_POST['nom']=="" && !$_POST['pass']=="") { $mysql_link=mysql_connect("localhost", "****", "*****"); mysql_select_db("******", $mysql_link); session_start(); $pass = mysql_real_escape_string($_POST['pass']); $nom = mysql_real_escape_string($_POST['nom']); $sql = mysql_query("SELECT * FROM eleves WHERE nom='$nom' and passd='$pass'"); if (mysql_num_rows($sql) == 1) { $_SESSION['nom'] = $nom; header('Location: identificationphpok.php'); exit; } } header('Location: identification.htm'); ?>
- header() doit toujours être suivi d'un exit()
Seulement dans le cas d'une redirection et autre chose pour lequel le script devrai se terminer. Quand tu fais un header destiné, par exemple, à définir le content-type faut surtout pas mettre de exit et dérivés.
session_start();
$pass = mysql_real_escape_string($_POST['pass']);
$nom = mysql_real_escape_string($_POST['nom']);
$sql = mysql_query("SELECT * FROM eleves WHERE nom='$nom' and passd='$pass'");
if (mysql_num_rows($sql) == 1) {
$_SESSION['nom'] = $nom;
header('Location: identificationphpok.php');
exit;
=> à proscrire !!! => utilise systématiquement mysql_real_escape_string() pour les variables externes
j'ai donc essayée d'intégrer dans le script 'aller chercher les infos manquantes' mais sa ceux pas.
mais alors, est ce que dans ce cas la (qui est une redirection avec fin du script) on dois enlever le exit() ?
Seulement dans le cas d'une redirection
parce que même si effectivement on change de page, même si le script est fini, on se sert quand même des infos resorties ..... ?
et qu 'entendez vous par : [...]
<?php //initialisation de la session if (!$_POST['nom']=="" && !$_POST['pass']=="") { $mysql_link=mysql_connect("localhost", "****", "*****"); mysql_select_db("******", $mysql_link); session_start(); $pass = mysql_real_escape_string($_POST['pass']); $nom = mysql_real_escape_string($_POST['nom']); $sql = mysql_query("SELECT * FROM eleves WHERE nom='$nom' and passd='$pass'"); $row = mysql_fetch_array($sql); $ville = $row['ville']; $adresse= $row['adresse']; if (mysql_num_rows($sql) == 1) { $_SESSION['nom'] = $nom; header('Location: identificationphpok.php'); exit; } } header('Location: identification.htm'); ?>