bruno3591
Messages postés155Date d'inscriptiondimanche 28 septembre 2008StatutMembreDernière intervention28 mars 2010
-
12 oct. 2008 à 16:49
bruno3591
Messages postés155Date d'inscriptiondimanche 28 septembre 2008StatutMembreDernière intervention28 mars 2010
-
13 oct. 2008 à 21:32
Bonjour,
j'ai une page blanche quand je valide le formulaire d'authentification. Il y a 2 pages, une pour le formulaire et l'autre pour traiter les infos du formulaire dont voici le code :
<?php
if ( isset ($_POST['utilisateur']) || isset ($_POST['mdp']) )
{
mysql_connect('localhost', 'root', '');
mysql_select_db('gestion_conges');
//requête vers la table users
$query "SELECT utilisateur, mdp FROM users WHERE utilisateur '".$_POST['utilisateur']."' AND mdp = '".$_POST['mdp']."' ";
// Regarde les valeurs retournees par la base
if (mysql_num_rows($result) == 1)
{
header ('Location: index.php');
}
session_start();
$_SESSION['utilisateur'] = $data['utilisateur'];
bruno3591
Messages postés155Date d'inscriptiondimanche 28 septembre 2008StatutMembreDernière intervention28 mars 2010 12 oct. 2008 à 16:51
Le code n'est pas passé :
<?php
if ( isset ($_POST['utilisateur']) || isset ($_POST['mdp']) )
{
mysql_connect('localhost', 'root', '');
mysql_select_db('gestion_conges');
//requête vers la table users
$query "SELECT utilisateur, mdp FROM users WHERE utilisateur '".$_POST['utilisateur']."' AND mdp = '".$_POST['mdp']."' ";
// Regarde les valeurs retournees par la base
if (mysql_num_rows($result) == 1)
{
header ('Location: index.php');
}
session_start();
$_SESSION['utilisateur'] = $data['utilisateur'];
bruno3591
Messages postés155Date d'inscriptiondimanche 28 septembre 2008StatutMembreDernière intervention28 mars 2010 12 oct. 2008 à 16:52
<?php
if ( isset ($_POST['utilisateur']) || isset ($_POST['mdp']) )
{
mysql_connect('localhost', 'root', '');
mysql_select_db('gestion_conges');
//requête vers la table users
$query "SELECT utilisateur, mdp FROM users WHERE utilisateur '".$_POST['utilisateur']."' AND mdp = '".$_POST['mdp']."' ";
// Regarde les valeurs retournees par la base
if (mysql_num_rows($result) == 1)
{
header ('Location: index.php');
}
session_start();
$_SESSION['utilisateur'] = $data['utilisateur'];
bruno3591
Messages postés155Date d'inscriptiondimanche 28 septembre 2008StatutMembreDernière intervention28 mars 2010 12 oct. 2008 à 20:56
Bonsoir, il est vrai que mon post n'est pas très clair. Je m'explique :
Je débute en php et mysql et m'entraine en faisant un site destiné à l'intranet qui devra gérer des congés (CA, RTT...). Les utilisateurs devront se connecter via une page d'authentification. Les login et mdp sont placés dans une BDD mysql.
J'ai une base mysql "gestion_conges" et pour le moment 4 tables dont une "users" avec 3 champs : id, utilisateur, mdp.
J'ai fais une page authentification.php qui affiche un formulaire d'identification qui pointe ensuite vers un page verif_authen.php et c'est là que je patauge depuis 2 jours. J'ai compris le principe des sessions (pas cookie) mais je n'arrive pas à coder correctement cette page. Sur le net j'ai trouvé beaucoup d'exemple que j'ai tenté d'adapter et comprendre mais sans succés.
J'ai l'impression qu'il y a de nombreuses façons de vérifier les données transmises par le formulaire, de les comparer à la BDD etc...
Le code que j'ai posté plus haut, je l'ai encore modifié mais il ne marche toujours pas.
Je cherche quelqu'un pour m'aider à écrire correctement cette page verif_authen.php.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 20231 13 oct. 2008 à 12:05
Qu'est ce que tu essayes de faire là ?
if (mysql_num_rows($result) = = 1)
{
header ('Location: index.php');
}
session_start();
Si tu envoi un header avant, il me semble que ça fait planter le session_start (header already sent).
Pourquoi utiliser la variable $data ($data = (mysql_fetch_array($result) ); ) puisqu'elle contient par définition les variables utilisateur et mdp envoyé par POST ?
D'ailleurs préfère l'utilisation de mysql_fetch_assoc, qui a le même comportement mais dont le nom est plus explicite.
Flachy Joe
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. » Les Shadoks<
Bonjour, je tente de faire ça : si le login et le mdp sont égaux à ceux de la BDD, je met les info. en session et je redirige vers index.php. (Pour le moment je m'entraine)
Pourquoi utiliser la variable $data ( $data = (mysql_fetch_array($result) ); ) puisqu'elle contient par définition les variables utilisateur et mdp envoyé par POST ?
Je ne le savais pas, je débute encore.
Mon but ultime est d'avoir un formulaire qui pointe vers un script php comme celui ci-dessous, et qui fait une connection sur un annuaire ldap. J'aimerai ramenner les info de l'utilisateur qui c'est logguer sur ma page d'authentification (formulaire). Si les info saisies dans le formulaires sont identiques à celles ramenés de ldap, alors je redirige vers index.php. Pour le moment je patauge, je ne sais pas quoi faire des variables du début du script ($server...), si je l'ai remplie en dur avec mes identifiants ldap, le script me ramène bien mes infos, mais je ne sais pas le faire en les saisissant dans le formulaire. Si vous m'avez compris merci :) Je bataille avec ça depuis 3 jours, pas facile de débuter.
<?php $server $person $rootdn $rootpw
///1ère étape : essai de connexion au serveur ldap
$ds = @ldap_connect($server);
// on teste : le serveur LDAP est-il trouvé ?
if ($ds)
{
//echo "Le résultat de connexion est " . $ds . "
";
}
else
{
//die("connexion impossible au serveur LDAP
");
}
@ldap_set_option($ds, LDAP_OPT_SIZELIMIT, 50);
//2ème étape : on effectue une liaison au serveur, ici de type "anonymous"
$r = @ldap_bind($ds, $rootdn, $rootpw);
//3ème étape : on effectue une recherche anonyme, avec le dn de base,
$dn = "dc=....., dc=......, dc=....";
$filtre="(|(sn=$person*)(cn=$person*))";
$sr = @ldap_search($ds, $dn, $filtre);
$info = @ldap_get_entries($ds, $sr);
if ($info["count"] < 1)
{
?>
<script type="text/javascript">
alert("Compte ou mot de passe erroné.");
</script>
<?php
exit;
}
print("\");
print(\"----
Nom complet : |" . @$info[0]["displayname"][0] . ", \");
print(\"----
Compte matriculaire : |" . @$info[0]["cn"][0]. ", \");
print("
");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<head>
<title>Base des congés</title>
<meta http-equiv ="Content-Language" content="fr" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link type="text/css" rel="stylesheet" href="style.css" />
if ($user == 'none'){
header('WWW-Authenticate: Basic realm="Authentifiez vous"');
header('HTTP/1.0 401 Unauthorized');
// Ici débute la page en cas d'erreur de login
echo <<<ERR
<html>
<head>
<meta/>
<title></title>
</head>
Accès non autorisé
[. Identifiez vous.]
</html>
ERR;
// Fin de la page d'erreur de login
exit; //Termine l'interprétation du PHP pour cette page, rien de ce qui suit ne sera utilisé.
}else{
session_start();
//Définition de variables de session.
$_SESSION['user'] = $user;
$_SESSION['uid'] = uniqid();
mysql_connect('localhost', 'root', '');
mysql_select_db('gestion_conges');
//requête vers la table users
$query "SELECT utilisateur FROM users WHERE utilisateur '".$user."' AND mdp = '".$pass."' ";
Sinon en effet tu peux utiliser un formulaire plutôt que les header HTTP.
J'ai bien l'impression qu'un chouille de recherche sur le site devrait te satisfaire...
Flachy Joe
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. » Les Shadoks<