Faire un acces membre en PHP

Signaler
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009
-
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
-
voilà je fais un accès membre qui a partir d'une saisie (identification et mot de passe) va sur une page (différente suivant du statut: administrateur ou membre). Création avec easy php 1.8. Mais je ne comprend pas pourquoi il veut pas fonctionner au niveau du login.

Base de données>Gestion-laboratoire Table>Prof

IdentProf varchar(6) clé primaire
Mot_de_passe varchar(20)
Statut Varbinary(20)
Nom Varchar(30)
Prénom Varchar(20)
Indice Varchar(5)

------------------------------------------------------------------------------------------------------------------------------------------------------------
Connect.php

Acces Membre

<form action="connect2.php" method='post'>
Identification du professeur :,
,

----

Mot de Passe,
,

----

</form>

---------------------------------------------------------------------------------------------------------------------------------------------------------------
Connect2.php

<?
//Connexion au serveur
if (!$conn= mysql_connect("Localhost","root",""))
echo ("Prob connexion au serveur");
else
{
//Cette partie vérifie si les cases sont completées
if(isset($HTTP_POST_VARS) && !empty($HTTP_POST_VARS['login']) && !empty($HTTP_POST_VARS['password']))
{
extract($HTTP_POST_VARS);
//Connexion a la base de données
$db= mysql_select_db("gestion_laboratoire");
if(!$db)
echo ("Problème de connexion à la base");
else
{
//on vérifie en premier si le nom d'utilisateur existe à la base Prof
$ide =("SELECT IdentProf from Prof where IdentProf = ".$HTTP_POST_VARS['login']." ;");
$ret = mysql_query($ide);
if (!$ret)
echo ("Identification du professeur inconnu");
else
{
// on vérifie le password visiteur
$sql = ("SELECT Mot_de_passe from Prof where password=".$Mot_de_passe.";");
$req = mysql_query($sql);
if (!$req)
echo ("Password incorrect");
else
//on vérifie le statut du professeur. 1 - professeur administrateur. 2 - professeur reconnu
$sta = "SELECT Statut from Prof";
$rec = mysql_query($sta);
if ($rec == 1)
include("administrateur.php");
else
{
include("reconnu.php");
}
}
}
}
}
mysql_close($conn);
?>

28 réponses

Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
pourquoi tu ne fais pas qu'une seule requete

et je ne vois pas où est défini $Mot_de_passe
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

exact sur le point $Mot de passe mais j'ai toujours un problème au niveau du login
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

j'ai toujours ce message:

Identification du professeur inconnu
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
on est d'accord que 'password' c'est 'Mot_de_passe' à la place dans ta table ??

$sql = ("SELECT Mot_de_passe from Prof where Mot_de_passe='".$HTTP_POST_VARS['password']."'");
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
$ide =("SELECT IdentProf from Prof where IdentProf = '".$HTTP_POST_VARS['login']."'");

echo $ide;
Messages postés
27
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
5 avril 2008

Pour commencer tu oublie les {} dans tes conditions ( IF ) du coup tes conditions ne sont pas prise en compte et le script est lu a la volé donc difficile de valider ou de ne pas valider
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
et enlève les () dans les requetes sql
Messages postés
27
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
5 avril 2008

il me semble que cela peut venir de la exemple :

if (!$conn= mysql_connect("Localhost","root",""))
echo ("Prob connexion au serveur");

remplacer par

if (!$conn= mysql_connect("Localhost","root","")) {
echo ("Prob connexion au serveur"); }
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
je ne pense pas ==> myphpscripter
s'il n'y a qu'une instruction conditionnée par le if, les accolades sont facultatives...
if($a==$b)
instruction1;
else
instruction2;
Messages postés
27
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
5 avril 2008

Je viens de tester sur mon serveur EasyPHP sur ce type

if($data['Pass'] != $pass)
$validation="Mauvais";
include('index.php');
exit;
else
{
$validation="Validé";
@session_start();
$_SESSION['login'] = $login;
include('index.php');
}

et moi j ai une erreur bizzar
Messages postés
27
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
5 avril 2008

oki j ai compris merci c est bon a savoir ;-)
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
bien compris pour l'inscription mais pour l'accès
dans connect2.php tu peux controler en une seule fois

$log=$HTTP_POST_VARS['login'];
$pw=$HTTP_POST_VARS['password'];

$ide ="SELECT IdentProf from Prof where IdentProf ='".$log."' and Mot_de_passe='".$pw."' ";
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
là, moi j'aurais tendance à faire un header(location...), non ???

if ($rec == 1)
header("location:administrateur.php");
else
header("location:reconnu.php");
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
Statut Varbinary(20)

c'est toi qui définis les champs de la table , non? regarde là

http://dev.mysql.com/doc/refman/5.0/fr/binary-varbinary.html

bon courage
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

Tout marche sauf pour l'accès administrateur ou reconnu (problème binaire).Merci de bien m'aider encore une fois.

IdentProf varchar(6) clé primaire
Mot_de_passe varchar(20)
Statut Binary(1) Attention ca a changer
Nom Varchar(30)
Prénom Varchar(20)
Indice Varchar(5)

---------------------------------------------------------------------------------------------------------------------

Connect.php

Acces Membre

<form action="connect2.php" method='post'>
Identification du professeur :,
,

----

Mot de Passe,
,

----

</form>

------------------------------------------------------------------------------------------------------------------------

Connect2.php
<?
//Connexion au serveur
if (!$conn= mysql_connect("Localhost","root","")) {
echo ("Prob connexion au serveur"); }
else
{
//Cette partie vérifie si les cases sont completées
if(isset($HTTP_POST_VARS) && !empty($HTTP_POST_VARS['login']) && !empty($HTTP_POST_VARS['password']))
{
extract($HTTP_POST_VARS);
//Connexion a la base de données
$db= mysql_select_db("gestion_laboratoire");
if(!$db)
echo ("Problème de connexion à la base");
else
{
//on vérifie en premier si le nom d'utilisateur existe à la base Prof
$ide =("SELECT IdentProf from Prof where IdentProf = '".$HTTP_POST_VARS['login']."'");
$ret = mysql_query($ide);
if (!$ret)
echo ("Identification du professeur inconnu");
else
{
// on vérifie le password visiteur
$sql = ("SELECT Mot_de_passe from Prof where Mot_de_passe='".$HTTP_POST_VARS['password']."'");
$req = mysql_query($sql);
if (!$req)
echo ("Password incorrect");
else
//on vérifie le statut du professeur. 0 - professeur administrateur. 1 - professeur reconnu
$sta = "SELECT Statut from Prof";
$req = mysql_query($sta);
if ($sta == 0)
include("administrateur.php");
else
{
include("reconnu.php");
}
}
}
}
}
mysql_close($conn);
?>
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
$sta = "SELECT Statut from Prof";
là du coup il faut peut être une clause WHERE


$sta ="SELECT Status from Prof where IdentProf = ' ".$HTTP_POST_VARS['login']." ' and Mot_de_passe=' ".$HTTP_POST_VARS['password']."'";

d'autre part
$req = mysql_query($sta);
$status=mysql_result($req,0,0);

if ($status == 0)
include("administrateur.php");
else
include("reconnu.php");

tu fais trois requêtes là où une seule suffirait, ceci dit
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
$sta = "SELECT Statut from Prof where IdentProf = ' ".$HTTP_POST_VARS['login']." ' and Mot_de_passe=' ".$HTTP_POST_VARS['password']."'";
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

voila ce que j'ai à la fin et ca marche toujours pas, proposez votre fin. merci.

//on vérifie le statut du professeur. 0 - professeur administrateur. 1 - professeur reconnu
$sta ="SELECT Status from Prof where IdentProf = ' ".$HTTP_POST_VARS['login']." ' and Mot_de_passe=' ".$HTTP_POST_VARS['password']."'";
$req = mysql_query($sta);
if ($req == 0)
include("administrateur.php");
else
{
include("reconnu.php");
}
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
Rahhhh
Mais c'est pourtant pas compliqué !!! :)

<?php

if ( isset($_POST['login'], $_POST['password']) ) { $sql "SELECT COUNT(*) FROM Prof WHERE IdentProf "'.mysql_real_escape_string($_POST['login'])."' AND Mot_de_passe = "'.$_POST['password'].'" ";
$query = mysql_query($sql);
$data = mysql_fetch_row($query);
if ( $data[0] == 1 ) {
// Bon pseudo/password
// Fait ce que tu veux ensuite (récupération des infos du membres pour une vérification de droit par exemple)
} else {
// Mauvais pseudo/passwd
}

} // Sinon formulaire non soumis.

?>

C'est aussi simple !
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

non ça marche pas, je veux que le professeur enregistré administrateur (administrateur) va sur sa page administrateur et que le professeur reconnu aille directement sur la page reconnu (reconnu.php)