Problème : script d'autentification

cirtey Messages postés 30 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 8 mai 2009 - 4 juin 2007 à 20:41
cirtey Messages postés 30 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 8 mai 2009 - 11 juin 2007 à 11:56
Bonjour;

J'essaye de créer un script qui permet à une personne d'être authentifiée pour accéder à une page.

Je suis sous wamp et dreamweaver v9.

J'ai créé la base sous phpmyadmin et fait insérer un couple de login/pass.

La page d'accueil mest sensée mener vers log.php sensée à son tour
rediriger l'internaute en fonction de son mot de passe et login :

s'il est correct -> page reussite.html sinon -> page erreur.htm

Mon problème : je suis bloqué sur log.php qui reste une page vide.

Voyez vous l'erreur? Merci.

<?php
//définir les paramètres
define("MYHOST","localhost");
define("MYUSER","root");
define("MYPASS","");
define("MYBASE", "authentification");
define("MYTABLE", "client");

//vérifier si les données sont postées
if(isset($_POST['login']) && isset($_POST['pass']))
{
    $login=mysql_escape_string($_POST['login']);
    $pass=mysql_escape_string($_POST['pass']);
}
else
{
    echo "mot de passe ou login manquants";
}

//se connecter à la base
$idcom=@mysql_connect(MYHOST,MYUSER,MYPASS,MYBASE,MYTABLE);
if(!$idcom)
{
    echo "Connexion impossible à la base";
}

//faire une requête
$requete="select * from client where login='$login' AND pass='$pass'";
$idresult=@mysql_query($requete,$idcom);

//évaluer les résultats de la requête
if(!idresult)
{
    header("Location: erreur.htm"); // redirection à la page d'échec
}
else
{
     header("Location: reussite.html"); // redirection à la page d'accès
}

//fermer la connexion à la base
mysql_close($idcom);
?>

21 réponses

cirtey Messages postés 30 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 8 mai 2009
4 juin 2007 à 22:31
J'ai fait une toute petite modif pour mysql connect, mais j'ai toujours la page vide sous dreamweaver v9.

Ma base est pourtant bien créé et mon wamp marche à 100%.

Sous zend studio 5.5 j'ai le message d'erreur suivant :

mot de passe ou login manquants

Warning: Cannot modify header information - headers already sent by
(output started at E:\Documents and
Settings\teycir\Bureau\exo_authentification\log.php:15) in E:\Documents
and Settings\teycir\Bureau\exo_authentification\log.php on line 38

Mais c'est normal, je suis sous débogeur interne.

 
Code :
<ol><li class="li1">
<?php
</li><li class="li1">
//définition des paramètres
</li><li class="li1">
define("MYHOST","localhost");
</li><li class="li1">
define("MYUSER","root");
</li><li class="li1">
define("MYPASS","");
</li><li class="li1">
 
</li><li class="li1">
//vérifier si les données sont postées
</li><li class="li1">
if(isset($_POST['login']) && isset($_POST['pass']))
</li><li class="li1">
{
</li><li class="li1">
   $login=mysql_escape_string($_POST['login']);
</li><li class="li1">
   $pass=mysql_escape_string($_POST['pass']);
</li><li class="li1">
}
</li><li class="li1">
else
</li><li class="li1">
{
</li><li class="li1">
   echo "mot de passe ou login manquants";
</li><li class="li1">
}
</li><li class="li1">
 
</li><li class="li1">
//se connecter à la base
</li><li class="li1">
mysql_connect(MYHOST, MYUSER, MYPASS) or
</li><li class="li1">
die("Impossible de se connecter : " . mysql_error());
</li><li class="li1">
mysql_select_db("authentifier");
</li><li class="li1">
 
</li><li class="li1">
//faire une requête
</li><li class="li1">
$requete="select * from client where login='$login' AND password='$pass'";
</li><li class="li1">
$result=@mysql_query($requete);
</li><li class="li1">
if(!$result)
</li><li class="li1">
{
</li><li class="li1">
  echo 'Impossible d\'exécuter la requête : ' . mysql_error();
</li><li class="li1">
  exit;
</li><li class="li1">
}
</li><li class="li1">
 
</li><li class="li1">
//aller chercher la ligne de requête
</li><li class="li1">
$row = mysql_fetch_row($result);
</li><li class="li1">
 
</li><li class="li1">
//si on ne la trouve pas
</li><li class="li1">
if(!$row)
</li><li class="li1">
{
</li><li class="li1">
    header("Location: erreur.htm"); // redirection à la page erreur
</li><li class="li1">
}
</li><li class="li1">
//sinon
</li><li class="li1">
else
</li><li class="li1">
{
</li><li class="li1">
    header("Location: reussite.html"); // redirection à la page reussite
</li><li class="li1">
}
</li><li class="li1">
 
</li><li class="li1">
//liberation de mémoire
</li><li class="li1">
mysql_free_result($result);
</li><li class="li1">
?>
</li></ol>
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 43
4 juin 2007 à 23:31
Salut
bon... j'avais un tuto en cours, il est bref, je te le poste :

Qu'est-ce-que le HTTP ?
Intro
Ce tuto est pour debutant, je n'ai pas le niveau pour ecrire plus,
alors je vous le dit tout de suite, il est TRES incomplet... J'en ai
simplement marre des erreurs de header sur phpcs, de session_start,
setcookie et autre, et marre des confusions php / javascript ; alors
j'explique comment se deroule une connexion simple...

Description
Le HTTP est un protocol : hypertext transfert protocol, wikipedia.
Deux programmes discutent, un navigateur internet (opera, firefox,
MSIE, galeon, lynx, et plus si affinites), et un serveur web (apache,
IIS, ...). Ils ont une facon de discute bien cadree, comme tout
protocol, cette facon de discuter est decrite dans une RFC.

Une discution simple se deroule en deux temps : le navigateur parle,
puis envoie deux lignes vides (une ligne se termine par \r\n), ensuite
c'est le serveur qui parle, et enfin, la discution se termine. On
appellera par la suite les parolles du navigateur la requette, et la
reaction du serveur la reponse.

Requette comme reponse sont composes de deux parties : l'entete et
le corps (en anglais, header et body, que ceux qui n'aiment pas
l'anglais y portent quand meme attention, ca a son importance) pour la
requette, le body n'est pas forcement utilise.

Le header de la requette contient de nombreuses choses : la page sur
laquelle on veut aller, le host (si vous avez plusieurs sites par
machine, vous les diferenciez par cette variable), le mode d'action (en
general GET ou POST), le protocol (HTTP 1.0 ou 1.1), et des parametres
plus optionels comme la page precedente, le navigateur, la langue, les
types de documents acceptes... Et bien evidement, les cookies sont
contenus dans le header de la requette...

Dans le cadre d'un GET, on n'utilise pas le corps, sinon, lors d'un POST, on envoi la taille, et les donnees envoyees ensuite.

Pour un POST de fichier, il y a plusieurs champs : le nom du fichiers, sa taille, son mimetype, et son contenu.

Pour la reponse du serveur, le header contient le status (404 = non
trouve, 403 forbiden, 501 erreur, 200 = tout va bien ...), le mime
type du document, son charset, les nouveaux cookies...

Ensuite, le corps de la reponse du serveur, ca peut-etre n'importe quoi...

alors seulement, le navigateur recoit cette reponse, la lit, et
l'interprete a sa maniere (afficher un html, executer du javascript,
...)

header doit donc etre utilise avant tout echo ou autre...

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
5 juin 2007 à 01:29
salut:
on utilise les header's avant toute affichages html y compris les echo's, c'est pas le cas pour toi, le message de warning est claire
Warning: Cannot modify header information - headers already sent by ...
idem pour les cookies et  les sessions!!
<hr size="2" width="100%" />Au début, on essaye de trouver une solution qui marche, et puis on cherche la meilleure solution.
0
cs_dossa Messages postés 26 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 19 novembre 2010
5 juin 2007 à 16:53
Salut, dans mon travail j'ai eu un problème pareil. La page ne supporte pas un <head> au début et un header ("location:erreur.php") après. J'ai testé votre code et cela a bien marché. Peut être vous avez faire un include("log.php") dans une autre page( accueil.php par exemple) contenant un <head> au début. ou vous avez mis un <head> au début de la page log.php
. soyez sur qu'il s'agit d'une de ces deux possibilités. Bon courage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 43
5 juin 2007 à 17:07
Salut

il ne s'agit pas de l'envoi de <head> mais du header... c'est totalement different... quand tu envois une image, tu n'envois pas <head> mais t'as quand meme un header

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
cs_dossa Messages postés 26 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 19 novembre 2010
5 juin 2007 à 17:31
Salut, Je ne sais pas grand chose sur la différence entre ces deux. Mais, comme j'ai dit j'avais déja ce problème. Et lorsque j'ai mis le code qui contient header ("location:page.php") dans une page contenant seulement du code php et non du html  cela a bien marché. Et le code de cirtey  a marché encore.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 43
5 juin 2007 à 17:32
Salut

lis ce que j'ai poste plus haut !! j'ai pris la peine de l'ecrire, alors stp... lis le au lieu de confondre tout et d'enseigner tes erreurs a d'autres debutants

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
cs_dossa Messages postés 26 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 19 novembre 2010
5 juin 2007 à 17:56
Salut, merci pour ce cours, j'ai compris un peu plus les choses. Si je ne me trompe pas le problème est au niveau de echo "mot de passe ou login manquants"; à la ligne 15 de log.php car header("location:errer.php") est utilisée après echo. Désolé pour les autres débutants si je les enseigner mes erreurs.
0
cirtey Messages postés 30 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 8 mai 2009
5 juin 2007 à 18:17
Salut Dossa;
j'ai changé reussite.htm en reussite.php et paril pour erreur. Ces changements ont été fait sur   les  fnoms de fichiers et dans le header de log.php.
Par la suite j'ai rajouté include ('log.php'); dans les deux fichiers transformés.
Le résultat est tjs le même.
Peux-tu envoyer un copier coller des codes des pages:
accueil.htm, log.php et reussite.php qui ont marché chez toi?
Merci.
0
cs_dossa Messages postés 26 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 19 novembre 2010
6 juin 2007 à 14:43
Salut cirtey, j'ai pas bien saisi les choses lorsque j'ai testé votre code la première fois car j'ai utilisé un login et un mot de passe présents dans la base et cela a bien marché. Hier, coucou747 m'a expliqué mieux les choses. Et si je ne me trompe pas le problème est au niveau du liqne 15.
Alors j'ai une question à vous poser au niveau de ce code:

if(isset($_POST['login']) && isset($_POST['pass']))
{   $login=mysql_escape_string($_POST['login']); 
 $pass=mysql_escape_string($_POST['pass']);
}
else
{   
 echo "mot de passe ou login manquants";  //si le mot de passe et le login n'existent pas pourquoi vous faites comme même la requête de select?
} Il vaut mieux de mettre la requète et son exécution  au niveau de if(isset($_POST['login']) && isset($_POST['pass'])) .
Je vous promis de retester votre code et de vous envoyer mes résultats. Je m'excuse pour toute confusion.
0
cirtey Messages postés 30 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 8 mai 2009
6 juin 2007 à 15:38
Salut;
Isset permet de verifier si le login et pass ont été envoyés via le formulaire à log.php. Je ne peux pas mettre la requête sql au niveau de  isset car il faut  d'abord voir si les données ont été transférés, si oui on passe à l'étape suivante si non on montre un message d'erreur.
0
cs_dossa Messages postés 26 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 19 novembre 2010
6 juin 2007 à 16:13
Je comprends très bien ce que vous voulez dire mais supposons que les données ne sont pas envoyées via le formulaire on va traité tout le code suivant:



//se connecter à la base
$idcom=@mysql_connect(MYHOST,MYUSER,MYPASS,MYBASE,MYTABLE);
if(!$idcom)
{
    echo "Connexion impossible à la base";
}

//faire une requête
$requete="select * from client where login='$login' AND pass='$pass'";
$idresult=@mysql_query($requete,$idcom);

//évaluer les résultats de la requête
if(!idresult)
{
    header("Location: erreur.htm"); // redirection à la page d'échec
}


Ainsi, c'est inutile de le faire si le $login et le $pass sont vides. Pourquoi pas se diriger tout simplement à la page d'erreur. C'est à dire ne faire ce code que lorsque on est sure de transfert des données et pour cela je vous ai dis d'essayer de mettre ce code dans le if. J'espère que vous me comprenez maintenant.



If I want to success, i would.
If I think that I will fail, I would.
So it is my decision.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 43
6 juin 2007 à 17:31
Salut

$idcom=@mysql_connect(MYHOST,MYUSER,MYPASS,MYBASE,MYTABLE);
if(!$idcom)
{
    die( 'Connexion impossible à la base');
}

//faire une requête
$requete="select * from client where login='$login' AND pass='$pass'";
$idresult=mysql_query($requete,$idcom) or die(mysql_error());

//évaluer les résultats de la requête
if(false===mysql_fetch_rows($idresult))
{
    header('Location: http://monsite.com/erreur.htm'); // redirection à la page d'échec
}

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
cirtey Messages postés 30 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 8 mai 2009
6 juin 2007 à 20:53
Salut;
j'ai fai évoluer un peu le code mais le problème persiste. Il est possible que l'erreur vienne d'ailleurs que de log.php.
Voici un lien dans lequel se trouvent tous les éléments du mini programme;
la table sql, les formulaires et les fichiers php :
http://www.developpez.net/forums/showthread.php?t=351515
0
cs_dossa Messages postés 26 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 19 novembre 2010
7 juin 2007 à 11:31
Salut cirtey, je ne sais pas comment vous avez évoluer le code mais j'ai retesté votre ancien code. J'ai retrouvé la même erreur si j'accède directement à la page log.php sans passer par la page accueil.php. C'est à dire lorsque les données ne sont pas transférées via le formulaire. Hier, j'ai proposé que vous mettez dans le if le code suivant




//se connecter à la base


$idcom=@mysql_connect(MYHOST,MYUSER,MYPASS,MYBASE,MYTABLE);
if(!$idcom)
{
    echo "Connexion impossible à la base";
}
 
//faire une requête
$requete="select * from client where login='$login' AND pass='$pass'";
$idresult=@mysql_query($requete,$idcom);
 
//évaluer les résultats de la requête
if(!idresult)
{
    header("Location: erreur.htm"); // redirection à la page d'échec
}
else
{
     header("Location: reussite.html"); // redirection à la page d'accès
}
 
//fermer la connexion à la base
mysql_close($idcom);





Je ne sais pas si vous avez testé cette manière. Selon mes testes elle marche. Mais si au cas du non envoi des données via le formulaire vous voulez passer à la page erreur.html après echo "mot de passe ou login manquants"; Dites et moi et je vais vous donner mes codes testés.

If I want to success, i would.
If I think that I will fail, I would.
So it is my decision.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 43
7 juin 2007 à 11:36
dossa, je me suis fait chier a depoussierer le code que tu as tape, tiens en compte stp, mon code est 10 fois meilleur que le tien...

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0
cs_dossa Messages postés 26 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 19 novembre 2010
7 juin 2007 à 11:58
Salut, mais ce n'est pas mon code. C'est le code de cirtey. J'ai trouvé trouvé qu'il fais la connexion à la base et le select malgrès que les données ne sont pas envoyées via le formulaire. J'ai proposé juste de déplacer son code dans if c'est à dire ne faire intéroger la base que si le login et le password sont isset. Est ce que je me trompe lorsque je propose cela? 
Biensur je tiens en compte votre code et je vais le tester après. Et je suis heureuse d'avoir un code 10 fois meilleur que celui d'un débutant. 

If I want to success, i would.
If I think that I will fail, I would.
So it is my decision.
0
cirtey Messages postés 30 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 8 mai 2009
7 juin 2007 à 12:37
Dossa, je n'ai pas bien compris ta proposition.
De toutes les façons j'ai retravaillé le code et ce n'est plus celui que j'ai posté au début. Il est dans le lien : http://www.developpez.net/forums/showthread.php?t=351515
J'ai envoyé dans ce lien tous les éléments du programme : table sql, formulaire et scripts php de sorte qu'il est possible à tous de tester le code avec tous les éléments en main au cas où le problème proviendrait d'ailleurs que de log.php.
Sur log.php le problème est détecté par mon débugger (celui de zend 5.5 , très fiable) uniquement sur la ligne header.
J'ai bien lu sur php.net sur header. Il ne tolère pas les include palacés avant lui dans le code et il ne tolère pas l'envoi de messages avant lui. dans mon cas pas d'include et les echo, s'ils passent avant, c'est que de toutes les façons il n'y aura pas de redirection, et je vois mal comment m'en passer.
Dernière version de log.php :
<?php
define("MYHOST","localhost");
define("MYUSER","root");
define("MYPASS","");
//connecter
mysql_connect(MYHOST, MYUSER, MYPASS) or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("authentifier");
//vérifier si les données sont postées
if(isset($_POST['login']) && isset($_POST['pass']))
{
    $login=mysql_escape_string($_POST['login']);
    $pass=mysql_escape_string($_POST['pass']);
}
else
{
    echo "mot de passe ou login manquants";
}
//faire une requête
$requete="select * from client where login='$login' AND password='$pass'";
$result=@mysql_query($requete);
if(!$result)
{
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
//aller chercher la ligne de requête
if(mysql_num_rows($result)==0)
{
    header('Location:./erreur.htm'); // redirection à la page erreur
}
//sinon
else
{
    header('Location:./reussite.html');
}

//liberation de mémoire
mysql_free_result($result);
?>
0
cs_dossa Messages postés 26 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 19 novembre 2010
7 juin 2007 à 13:14
Salut cirtey, Regardez bien votre code; votre phrase n'est pas à mon avis réelle:dans mon cas pas d'include et les echo, s'ils passent avant, c'est que de toutes les façons il n'y aura pas de redirection.Si vous me permettez je vais vous expliquer plus les choses.

<?php
define("MYHOST","localhost");
define("MYUSER","root");
define("MYPASS","");
//connecter
mysql_connect(MYHOST, MYUSER, MYPASS) or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("authentifier");
//vérifier si les données sont postées
if(isset($_POST['login']) && isset($_POST['pass']))
{
    $login= mysql_escape_string($_POST['login']);
    $pass=mysql_escape_string($_POST['pass']);
}
else
{
    echo "mot de passe ou login manquants";

/* ici après l'echo l'exécution ne va pas s'arreter. mais on va exécuter le reste de code car il n'ya pas  un exit ou une redirection à ce niveau. c'est à dire on va  faire la requète ci dessous.*/
}
//faire une requête
$requete ="select * from client where login='$login' AND password='$pass'";
$result=@mysql_query($requete);
// On reste encore dans le cas où les variables ne sont pas postées via le formulaire
// si $login et $pass sont vide  la requète s'exécute mais avec un mysql_num_rows($result)==0
// c'est à dire il va faire la redirection suivante header('Location:./erreur.htm');
if(!$result)
{
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
//aller chercher la ligne de requête
if(mysql_num_rows($result)==0)
{
    header('Location:./erreur.htm'); // redirection à la page erreur
}
//sinon
else
{
    header('Location:./reussite.html');
}

//liberation de mémoire
mysql_free_result($result);
?>
J'espère que vous avez compris plus les choses. Après ton echo,  il ya une redirection ce qui a causé l'erreur. C'est pour cela que j'ai proposé de faire cela:
 
<?php
define("MYHOST","localhost");
define("MYUSER","root");
define("MYPASS","");
//connecter
mysql_connect(MYHOST, MYUSER, MYPASS) or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("authentifier");
//vérifier si les données sont postées
if(isset($_POST['login']) && isset($_POST['pass']))
{
    $login=mysql_escape_string($_POST['login']);
    $pass=mysql_escape_string($_POST['pass']);

//faire une requête
$requete="select * from client where login='$login' AND password='$pass'";
$result=@mysql_query($requete);
if(!$result)
{
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
//aller chercher la ligne de requête
if(mysql_num_rows($result)==0)
{
    header('Location:./erreur.htm'); // redirection à la page erreur
}
//sinon
else
{
    header('Location:./reussite.html');
}

//liberation de mémoire
mysql_free_result($result);

}
else
{
    echo "mot de passe ou login manquants";
}
?>

Bon courage
If I want to success, i would.
If I think that I will fail, I would.
So it is my decision.
0
cirtey Messages postés 30 Date d'inscription lundi 29 janvier 2007 Statut Membre Dernière intervention 8 mai 2009
11 juin 2007 à 11:09
Bonjour à tous;

Je n'ai plus de bug sur zend studio mais une redurection vers blankdummy.php.
Sur dreamweaver j'obtiens toujours une redirection vers reussite.html.
C'est le dernier code en date.

<html>
<head>
<title>Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

Pour
  entrer dans l'espace membre, saisissez votre pseudo et votre mot de passe :
<form action= "<?= $_SERVER["PHP_SELF"] ?>" method="post">
  Login

   
   

   

    Mot de passe

   
   

   

   
</form>
<?php
//paramètres de connexion
define("MYHOST","localhost");
define("MYUSER","root");
define("MYPASS","");
//connexion à mysql
mysql_connect(MYHOST, MYUSER, MYPASS) or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("authentifier");
//vérifier si les données sont postées
if(isset($_POST['login']) && isset($_POST['pass']))
{
    $login = mysql_escape_string($_POST['login']);
    $pass = mysql_escape_string($_POST['pass']);
    continue;
}
else
{
    echo "mot de passe ou login manquants";
    exit;
}

//faire une requête
$requete="select * from client where login='$login' AND password='$pass'";
$result=@mysql_query($requete);
if(!$result)
{
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}

//aller chercher la ligne de requête
if(mysql_num_rows($result)==0)
{
    echo "<script language='JavaScript'>
            window.location.replace('erreur.htm');       
        </script>"; // redirection à la page erreur
}
//sinon
else
{
    echo "<script language='JavaScript'>
            window.location.replace('reussite.html');       
        </script>";
}

//liberation de mémoire
mysql_free_result($result);
//deconnexion de mysql
@mysql_close();
?>

</html>
0