Page 1 sur 2

Session avec login et password

Posté : 22 févr. 2011, 12:16
par scoop
Bonjour à tous !

Voilà depuis quelques jours je m'arrache les cheveux pour créer une session avec login et password.
J'ai créer une page de connexion et une base de données hors je n'arrive pas à me connecter avec les variables que j'ai créé :x

Ma page de connexion :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>


</head>
<body>
<div id="headco"> <u> Identification </u> </div>
<div id="connexion">

<form method="post" action="sectionmembre_acces.php" enctype="multipart/form-data">

<div id="fieldset">

<div class="set">
<label for="id"> Nom d'utilisateur : </label>

<div class="champs">
<input type="text" name="ident" />
</div>
</div>

<div class="set">
<label for="mdp"> Mot de passe : </label>
<div class="champs">
<input type="password" name="mdp" />
</div>
</div>
</div>

<input type="submit" value="Connexion" />

</form>
</body>
</html>


ma page de vérification :

<?php
// Script faisant appel aux sessions
session_start();

// Paramètres de connexion à la base de données
$BD_serveur = "localhost";
$BD_utilisateur = "root";
$BD_motDePasse = "";
$BD_base = "reservation salle";

$id = $_POST["ident"];
$motDePasse = $_POST["mdp"];

@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");

$requete = "SELECT mdp FROM utilisateur WHERE ident='$ident'";

$result = @mysql_query($requete);

if ($enreg = @mysql_fetch_array($result)) {
// Si une ligne a été trouvée c'est que le couple
// (identifant, mot de passe) est valide
$_SESSION["ident"] = TRUE;
$_SESSION["ident"] = $ident;
header("Location: sectionmembre_acces_accueil.php");
die();
} else {
$_SESSION["ident"] = FALSE;
header("Location: sectionmembre_acces_invalide.html");
die();
}
?>

Ma BDD se nome "reservation salle", la table que j'interroge "utilisateur" et les champs dont j'ai besoin sont "ident" et "mdp".

[edit] voilà ce que je voudrais :
si le login et le mot de passe sont valides => accès autorisé
sinon => veuillez recomencer

Merci de vos lumières !

Re: Session avec login et password

Posté : 22 févr. 2011, 12:33
par Mazarini
Bonjour,

Ajout
if (mysql_errno()<>0)
{
die(mysql_error());
}
après tes utilisations de mysql pour voir ce qui ne marche pas. D'ailleurs ce serai bien de nous dire à quel niveau tu as un problème.

Il lecture en diagonal de ton script me fait soupçonner que tu ne testes pas le mot de passe saisie et celui stocké.

Re: Session avec login et password

Posté : 22 févr. 2011, 13:22
par scoop
Quand j'essaie de me logué rien ne s'affiche....

Pour tester le mot de passe, faudrait-il que je déclare la variable en haut de page ? tel que :
$_POST['mdp'] = "toto";


[edit] $_POST['mdp'] = "toto";
ou
$_SESSION['mdp'] = "toto";

Re: Session avec login et password

Posté : 22 févr. 2011, 14:33
par Mazarini
Bonjour,

Pour être sur de voir les messages d'erreur, tu devrais mettre en début de script : error_reporting(E_ALL);

Pour le contrôle du mot de passe :

A priori remplacer :
if ($enreg = @mysql_fetch_array($result)) {
par :
$enreg = @mysql_fetch_array($result))
if ($motDePasse=$result['mdp'])

Ou faire :
$requete = "SELECT mdp FROM utilisateur WHERE ident='$ident' and mdp='$motDePasse'" ;
En général on stocke les mots de passe crypté dans la base.

Il faut aussi te renseigner sur l'injection SQL (cf http://php.net/manual/fr/function.mysql ... string.php)

Re: Session avec login et password

Posté : 22 févr. 2011, 15:25
par xTG
Moi je dirai surtout que pour voir les messages d'erreur il faudrait ne pas les cacher...
Enlèves tous les @ devant les fonctions. ;)

Re: Session avec login et password

Posté : 22 févr. 2011, 15:56
par scoop
xTG, j'ai retiré les @ comme tu m'as dis et j'ai enfin quelque chose qui s'affiche, les messages d'erreurs ^^


Warning: mysql_pconnect() [function.mysql-pconnect]: [2002] Une tentative de connexion a échoué car le parti connecté n’a pa (trying to connect via tcp://localhost:3306) in C:\Program Files\EasyPHP-5.3.3\www\dev\nouveaudossier\sectionmembre_acces.php on line 20

Warning: mysql_pconnect() [function.mysql-pconnect]: Une tentative de connexion a échoué car le parti connecté n’a pas répondu convenablement au-delà d’une certaine durée ou une connexion établie a échoué car l’hôte de connexion n’a pas répondu. in C:\Program Files\EasyPHP-5.3.3\www\dev\nouveaudossier\sectionmembre_acces.php on line 20

Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\EasyPHP-5.3.3\www\dev\nouveaudossier\sectionmembre_acces.php on line 21

Re: Session avec login et password

Posté : 22 févr. 2011, 16:10
par moogli
salut,

mysql est bien démarré ? tu vois bien le processus dans le gestionnaire de taches ?

pourquoi pconnect ? un simple mysql_connect suffit et peut éviter des soucis ;)

@+

Re: Session avec login et password

Posté : 22 févr. 2011, 16:18
par scoop
Salut Moogli !
MySQL est bien connecté et est actif dans le gestionnaire de taches, de plus dans mon script je viens de remplacer mysql_pconnect par mysql_connect mais j'ai toujours le même message d'erreur...

Re: Session avec login et password

Posté : 22 févr. 2011, 16:25
par xTG
MySQL utilise-t-il le bon port ? (3306 en l'occurence)

Re: Session avec login et password

Posté : 22 févr. 2011, 16:27
par scoop
Euh comment vérifier ?

Re: Session avec login et password

Posté : 22 févr. 2011, 17:27
par xTG
C'est dans le fichier my.ini
Vérifies aussi que ton parefeu ou ton antivirus (ou tout autre protection) ne bloque pas MySQL.

Re: Session avec login et password

Posté : 22 févr. 2011, 18:18
par scoop
Pour le port c'est bon il utilise bien le 3306, pour ce qui est du pare-feu c'est OK aussi mais pour l'anti-virus je ne sais pas, j'ai sophos et je sais pas comment vérifier si il le bloque ou pas...

Re: Session avec login et password

Posté : 22 févr. 2011, 19:59
par moogli
essai de "voir" ce que mysql à dans le ventre a partir de phpmyadmin il est normalement pré installé avec easyphp à l'adresse suivante http://localhost/phpmyadmin

si cela fonctionne je vois pas trop la :/

@+

Re: Session avec login et password

Posté : 23 févr. 2011, 10:02
par scoop
Bonjour tout le monde !

A l'adresse http://localhost/phpmyadmin j'ai ceci :


Objet non trouvé!

L'URL requise n'a pu etre trouvée sur ce serveur. Si vous avez tapé l'URL à la main, veuillez vérifier l'orthographe et réessayer.

Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site.
Error 404
localhost
02/23/11 09:01:00
Apache/2.2.16 (Win32) PHP/5.3.3

Re: Session avec login et password

Posté : 23 févr. 2011, 14:45
par Mazarini
Bonjour,

Dans le répertoire C:\Program Files\EasyPHP-5.3.3\www tu dois avoir un fichier index.php fourni par easyphp si tu as mis tes sources dans le sous-répertoire dev. En appelant http://localhost tu dois avoir un lien qui permet l'accès à phpmyadmin.

Au pire sauvegarde tes sources et réinstalle easyphp.