Aide php formulaire authentification mercciii

Résolu/Fermé
mehdi9833 Messages postés 88 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 mars 2010 - 16 oct. 2009 à 14:44
emna.hidr Messages postés 34 Date d'inscription lundi 25 février 2013 Statut Membre Dernière intervention 1 mars 2013 - 28 févr. 2013 à 15:38
Bonjour,

Tout d'abord merci de porter attention à mon message.
voila je dois créer un site en intranet,av une bdd mysql qui tourne dérriere.
J'ai ma premiére page qui s'apel pageauthen.html qui me sert à m'authentifier,j'aimerais quand je clique sur valider afficher 3 pages différentes selon l'authentification.si c 'est par exemple utlisateur ARM63 afficher la page profilarm, si c'est l'utilisateur RTM afficher la page profilrtm, si c'est l'utilisateur ATM afficher la page profilatm...j'ai déja créer mes 3 pages html suivant l'authentification,créer aussi le formulaire php que j'ai nommée authentif.php et 2 tables sur ma bdd sql.mes noms de champs sur la base sql de la table utilisateur sont tout simplement utilisateur et mdp...j'ai aussi créer mes 3 enregistrements dans la table pour les 3 profils atm,rtm et arm...

ex :
utilisateur : ARM 63
mdp : stage

quand j'essaye de m'authentifier cela ne marche, qqun pourrait il m'aider pour me dire si mes formulaires ou fichier php contiennent des erreurs.merci d'avance
voici mon fichier authentif.php

<?php
session_start();
echo "<html>
<head>
<title>authentification</title>
<body>";
// connexion au serveur MYSQL
$utilisateur=$_POST['utilisateur'];
$mpass=$_POST['mdp'];
$_SESSION['utlisateur']=$_num;
mysql_connect("localhost","root","") or die("erreur de connexion au serveur".mysql_error());
// Ouverture de la base de données Terminale
mysql_select_db("testarm") or die ("erreur de connexion à la base testarm");
// Requete
$sql="select * from client where utilisateur=".$utilisateur.";";
$requete=mysql_query($sql) or die ("erreur dans la requête");
$res= mysql_num_rows($requete);
if ($res==0)
{
echo "Utilisateur non répertorié, veuillez réessayer </br>"; // a revoir
}
else
{
$resu=mysql_fetch_array($requete);
if ($mdp!=$resu['mdp'])
{
echo "Mot de passe incorect, veuillez réessayer </br>"; // a revoir
}
else
{
//Fermeture de la connexion à Mysql
mysql_close();
?>

et voici mon formulaire html ou je m'authentifie :


<html>
<head>
<title> formulaire d'identification </title>
</head>
<body BACKGROUND="fond.jpg"/>
<center><img src="dsem2.JPG"/></center>
<form method ="POST" action = "authentif.php"> <!--creer le fichier d'authentification...-->
<br>
<br>
<br>
<h1>Veuillez vous identifiez :</h1>
<br>
<b>
<center><h3> Utilisateur : </h3><input type="text" name="utilisateur" value="" maxlength="20" size="20"/>
<h3> Mot de passe : </h3><input type="password" name="mdp" value="" maxlength="20" size="20"/>
<br>
<br>
<br>
<a href="profilarm.html"><input type="submit" value="valider" name="valider" id="valider" style="height: 30px; width: 80px"></a>
</td>
<td>
</center>
A voir également:

6 réponses

mehdi9833 Messages postés 88 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 mars 2010 4
16 oct. 2009 à 14:55
je me suis trompé juste pour la selection de la table,dans le fichier auhentif.php,j'ai mis client au lieu d'utilisateur...merciii
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
16 oct. 2009 à 15:02
Bonjour,

Dans un premier temps, en ce qui concerne ton formulaire de connexion, je ne vois pas pourquoi tu fais un lien sur la page 'profiarm' sur ton bouton de submit du formulaire. Ca n'a rien à faire là.

Voici donc le code de ta page de connexion :
<html>
<head>
<title> formulaire d'identification </title>
</head>
<body BACKGROUND="fond.jpg"/>
<center><img src="dsem2.JPG"/></center>
<form method ="POST" action = "authentif.php"> <!--creer le fichier d'authentification...-->
<br>
<br>
<br>
<h1>Veuillez vous identifiez :</h1>
<br>
<b>
<center><h3> Utilisateur : </h3><input type="text" name="utilisateur" value="" maxlength="20" size="20"/>
<h3> Mot de passe : </h3><input type="password" name="mdp" value="" maxlength="20" size="20"/>
<br>
<br>
<br>
<input type="submit" value="valider" name="valider" id="valider" style="height: 30px; width: 80px">
</td>
<td>
</center>


Ce qu'il faut surtout modifier, c'est ton script de vérification.

$num, qu'est ce que c'est que cette variable ? Elle n'apparait nul part. Inutile donc, surtout que tu ne semble pas utiliser plus que ça la variabel de session 'utilisateur' (peut-être pour d'autres page)

Il faut :
- vérifier si l'utilisateur est connu
- si oui, en fonction de son nom, faire une redirection sur la page correspondante

Le code sera donc celui-ci:
<?php
session_start();
echo "<html>
<head>
<title>authentification</title>
<body>";
// connexion au serveur MYSQL
$utilisateur=$_POST['utilisateur'];
$mpass=$_POST['mdp'];

mysql_connect("localhost","root","") or die("erreur de connexion au serveur".mysql_error());
// Ouverture de la base de données Terminale
mysql_select_db("testarm") or die ("erreur de connexion à la base testarm");
// Requete
$sql="select * from client where utilisateur='".$utilisateur."' AND mdp = '".$mpass."' ";
$requete=mysql_query($sql) or die ("erreur dans la requête");

//Fermeture de la connexion à Mysql
mysql_close();

$res= mysql_num_rows($requete);
if ($res==0)
{
echo "Couple utilisateur / mot de passe inconnu, veuillez réessayer </br>"; // a revoir
}
else
{
 // --- enregistrement en session de l'utilisateur
 $_SESSION["utilisateur"] = $utilisateur;
 // --- redirection en fonction de l'utilisateur
 if ( $utilisateur == "ARM63" ){
     header("Location: profilarm.html");
     exit();
 }else if ($utilisateur == "..." ){
    header("Location: ...");
 }
}
?> 


A toi de compléter les redirections en fonction du nom de tes pages.
0
mehdi9833 Messages postés 88 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 mars 2010 4
16 oct. 2009 à 15:20
tout d'abord mercr kij_82 de m'avoir repondu rapidement et pris le temps...ok je vois comment faire par rapport au condition av le if...je fais le test de suite et je te tiens au courant.merciiiiiiiiii !!!!!!!!!
0
mehdi9833 Messages postés 88 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 mars 2010 4
16 oct. 2009 à 15:38
j'ai modifié ma page authentif.php : j'ai aussi changé mon nom de champ utilisateur par user...et dans ma bdd testarm aussi.

<?php
session_start();
echo "<html>
<head>
<title>authentification</title>
<body>";
// connexion au serveur MYSQL
$utilisateur=$_POST['user'];
$mpass=$_POST['mdp'];

mysql_connect("localhost","root","") or die("erreur de connexion au serveur".mysql_error());
// Ouverture de la base de données Terminale
mysql_select_db("testarm") or die ("erreur de connexion à la base testarm");
// Requete
$sql="select * from utilisateur where user='".$utilisateur."' AND mdp = '".$mpass."' ";
$requete=mysql_query($sql) or die ("erreur dans la requête");

//Fermeture de la connexion à Mysql
mysql_close();

$res= mysql_num_rows($requete);
if ($res==0)
{
echo "Couple utilisateur / mot de passe inconnu, veuillez réessayer </br>"; // a revoir
}
else
{
// --- enregistrement en session de l'utilisateur
$_SESSION["user"] = $utilisateur;
// --- redirection en fonction de l'utilisateur
if ( $utilisateur == "ARM 63" ){
header("Location: profilarm.html");
exit();
}else if ($utilisateur == "RTM 18" ){
header("Location: profilrtm.html");
exit();
}else if ($utilisateur == "ETI 18" ){
header("Location: profilatm.html");
exit();
}
}
?>

voici le message que sa m'affiche apprés authentification :
Objet non trouvé!
L'URL requise n'a pu etre trouvée sur ce serveur. La référence sur la page citée semble être erronée ou perimée. Nous vous prions d'informer l'auteur de cette page de cette erreur.

Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site.

Error 404
127.0.0.1
10/16/09 15:31:33
Apache/2.2.13 (Win32) PHP/5.3.0

Juste pr qe tu comprenne voici ma table utilisateur pour l'auhentification :
user mdp
ARM 63 stage
ARM 18 stage....


merciiiii
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
16 oct. 2009 à 15:56
Dans un premier temps tu pourrais tester si l'ensemble du script fonctionne, en remplaçant les header(...) par des echo "toto/tata/titi" et te logguer avec chacun des users pour vérifier.

Ensuite, vu le message d'erreur que tu obtiens, les redirections n'arrivent pas à être effectuée.
Ou se trouve tes pages de profil par rapport à la page d'authentification (dans l'arborescence de ton site je veux dire). De même, ou se trouve la page de formulaire ?
0
mehdi9833 Messages postés 88 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 mars 2010 4
16 oct. 2009 à 16:02
tout mes fichiers que sa soit les formulaires hmtl ou script php, se trouvent dans le repertoire www dans C:\Program Files\EasyPHP5.3.0\www.

J'ai remplacé les header par des echo et essayé de me loguer av le profil atm 63 mais cela ne marche pas...merciii
0

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

Posez votre question
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
16 oct. 2009 à 16:09
Ok, je n'ai pas testé ce que je t'ai donné, je l'ai fait à la volée mais l'idée est là. Essai de débugger, voir jusqu'ou ton programme va avant d'échouer. Afficher les données pour voir ce qui cloche et pouvoir corriger, etc.

Bon courage à toi et bon we.
0
mehdi9833 Messages postés 88 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 mars 2010 4
16 oct. 2009 à 16:16
ok je vais testé et je te tien o courant lundi.si il te faut les formulaires contact moi et je t'enverrai tout sa par mail.je te remercie et te souhaite un bon weekend.salut
0
emna.hidr Messages postés 34 Date d'inscription lundi 25 février 2013 Statut Membre Dernière intervention 1 mars 2013
28 févr. 2013 à 15:38
Bonjour,
j'ai integré le code d'authentification posté par mr kij_82 dans ma page mais j'ai l'erreur suivant:

Notice: Undefined index: login in C:\xampp\web\htdocs\g_h travelv1\index.php on line 5

Notice: Undefined index: psw in C:\xampp\web\htdocs\g_h travelv1\index.php on line 6
erreur dans la requête
Merci de me répondre :)
0