PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 12-04-2010 14:54:50

aquievreux
Membre
Inscription : 12-04-2010
Messages : 6

login

Bonjour, j'ai un pb, je suis en train de créer un formulaire permettant de se logger pour un accés au site, cependant le code que j'ai trouvé et modifié comporte une erreur, car lors de la connexion le serveur internet s'arréte, cependant le login et mot de passe sont bien présent dans ma base de données.
Merci de m'aider c'est assez urgent.
Voici le code :


<?php

// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('djp', $base);

// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !
'
.$sql.'
'
.mysql_error());
$data = mysql_fetch_array($req);

mysql_free_result($req);
mysql_close();

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
//<p><strong>Vous êtes bien connecté !!!!</strong></p>
header('Location: deco.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème  
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>

<html>
<head>
<title>Accueil</title>
</head>

<body>
Connexion à l'espace membre :

<form action="index.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>">

Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>">

<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php

if (isset($erreur)) echo '

',$erreur;
?>

<a href="formulaire.php?id=1"><p><strong>Bon d'intervention sur site : fiche à remplir</strong></p></a>

</body>
</html>

Hors ligne

#2 12-04-2010 15:12:24

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : login

Le serveur internet s'arrête ? Tu veux dire que le service mysql ou apache s'éteint ?
Ou bien tu as l'un des messages d'erreur de ton script ?

Hors ligne

#3 12-04-2010 16:07:52

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : login

Sur combien de site à tu collé ce message ?
pour te répondre xTG j'ai essayé sont script et j'ai [[img align=C]http://phpjungle.info/imagesdivers/httpdhs.png[/img]

y a un truc :-)~

après test c'est le mysql_close qui plante le bouzion faut ajouter le lien vers la db pour corriger => mysql_close($base).

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#4 12-04-2010 16:46:18

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : login

Ouuuah... O_o
Et moi qui spécifiait jamais la base dans mes mysql_close()... Enfin j'ai jamais eu ce soucis.
Mais j'espère que PDO le fait pour moi maintenant ! xD

Hors ligne

#5 12-04-2010 22:28:02

aquievreux
Membre
Inscription : 12-04-2010
Messages : 6

Re : login

Non moi c'est mozilla qui s'arrétait car je l'executé sur le localhost, cependant désormais il ne s'arréte plus, mais me recharge a vide la meme pas de connexion

Hors ligne

#6 12-04-2010 22:31:43

aquievreux
Membre
Inscription : 12-04-2010
Messages : 6

Re : login

par contre aucun changement en spécifiant ma bdd dans mon mysql_close()_

Hors ligne

#7 13-04-2010 08:30:38

aquievreux
Membre
Inscription : 12-04-2010
Messages : 6

Re : login

Pour moi aprés longue étude l'erreur viendrai d'ici :

<?php
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; 
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
//var_dump($data);
?>


Car lorsque j'effectue une inscription tout fonctionne bien, si je ne me deconnecte pas il retrouve le membre lors de l'identification. Cependant lorsque je me déconnecte, et que je cherche par la suite à réidentifier ce même membre il ne le trouve plus.
L'erreur viendrai t-elle de ma requête???

Hors ligne

#8 13-04-2010 09:24:40

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : login

faut voir le code de deconnexion ...


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#9 13-04-2010 19:28:47

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : login

Au passage, il n'y a aucun intérêt de mettre un mysql_escape_string sur ton mot de passe.
Car tu le crypte en md5 après et il n'y a rien dans le md5 qui pourrait embêter la requête.

Hors ligne

#10 14-04-2010 08:10:31

aquievreux
Membre
Inscription : 12-04-2010
Messages : 6

Re : login

as tu une idée de l'erreur ????

Hors ligne

#11 14-04-2010 10:59:55

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : login

Montres nous le code de deconnexion comme te l'a demandé Moogli. ^^

Hors ligne

#12 14-04-2010 13:02:00

aquievreux
Membre
Inscription : 12-04-2010
Messages : 6

Re : login

<?php

session_start();
session_unset();
session_destroy();
header('Location: index.php');
exit();
?>

Hors ligne

Pied de page des forums