Problème de sessions (PHP)
Fermé
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
-
31 janv. 2014 à 15:28
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - 2 févr. 2014 à 19:25
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - 2 févr. 2014 à 19:25
A voir également:
- Problème de sessions (PHP)
- Easy php - Télécharger - Divers Web & Internet
- Nombre de sessions maximum atteint, merci de vous reconnecter plus tard ✓ - Forum Réseaux sociaux
- Php?id=1 - Forum PHP
- \R php ✓ - Forum PHP
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
7 réponses
deglingo592003
Messages postés
77
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
31 janvier 2014
11
31 janv. 2014 à 22:49
31 janv. 2014 à 22:49
Bonjour,
Avec un peu de code, je pense que ce sera plus simple pour t'aider.
--
Avec un peu de code, je pense que ce sera plus simple pour t'aider.
--
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
1 févr. 2014 à 13:06
1 févr. 2014 à 13:06
Oui, excusez-moi: (si le code est illisible comme ça, je le mettrai dans un fichier)
Formulaire de connexion:
Traitement des données reçues:
Formulaire de connexion:
<?php
session_start();
if(isset($_SESSION['Pseudo'])){
header("Location: membres.html");
}
?>
<!DOCTYPE html>
<html>
<head>
<a href="http://serverminecrafteman.besaba.com"><img src= "http://serverminecrafteman.besaba.com/images/logo.jpg"></a>
<meta charset="utf8"/>
<title>Connexion - Le serveur Minecraft d'E__Man</title>
<h3>REMPLISSEZ CE FORMULAIRE POUR VOUS CONNECTER</h3>
</head>
<body>
<form method='post' action='traitement.php'>
<p style='width:150px;'>Pseudo : <input size='60px' type='text' name='pseudo'></p>
<p style='width:150px;'>Mot de passe* : <input size='60px' type='password' name='mdp'></p>
<p style='width:150px;'><input style='width:400px;;height:50px;' type='submit' value='Se connecter' name='env'></p>
</form>
<p><a href="passwordrecovery.html">Mot de passe oublié</a>
</body>
<script language="javascript">
var bub_url='http://in.bubblestat.com/bs_cpt.bub?cs=13de_p_h(jm&cp=&js&jm=';
bub_url+= ((new Date()).getTime());
document.write('<scr'+'ipt language="javascript" src="'+bub_url+'"></scr'+'ipt>');
</script><noscript>
<a href="https://www.bubblestat.com/" target="_blank" title="Bubblestat® : compteur gratuit pour sites internet">
<img src="http://in.bubblestat.com/bs_cpt.bub?cs=13de_p_h(jm&cp=" style="border:0px"/>
</a></noscript>
</html>
Traitement des données reçues:
<?php
session_start();
usleep(500);
echo "<a href=\"http://serverminecrafteman.besaba.com\"><img src= \"http://serverminecrafteman.besaba.com/images/logo.jpg\"></a>";
if(isset ($_POST['pseudo']) && isset ($_POST['mdp'])){
extract($_POST);
if(!empty($pseudo) && !empty($mdp)){
mysql_connect("", "", "");
mysql_select_db("");
$passe = sha1($mdp);
$passe = md5($passe);
$nbre = mysql_query("SELECT COUNT(*) AS exist FROM Membres WHERE Pseudo='$pseudo'");
$donnees = mysql_fetch_array($nbre);
if($donnees['exist'] != 0)
{
$quete = mysql_query("SELECT * FROM Membres WHERE Pseudo='$pseudo'");
$infos = mysql_fetch_array($quete);
if($passe == $infos['Passe']){
$_SESSION['Pseudo'] = $pseudo;
echo "
<script type=\"text/javascript\">
window.location = \"membres.html\"
</script>
";
exit();
}else{
echo "
<title>ERREUR DE CONNEXION - Le Serveur Minecraft d'E__Man</title>
<p>LA COMBINAISON PSEUDO/MOT DE PASSE NE CONRESPOND A AUCUN UTILISATEUR!</p>
<a href=\"connexion.html\">RETOUR</a>
";
}
}else{
echo "
<title>ERREUR DE CONNEXION - Le Serveur Minecraft d'E__Man</title>
<p>LA COMBINAISON PSEUDO/MOT DE PASSE NE CONRESPOND A AUCUN UTILISATEUR!</p>
<a href=\"connexion.html\">RETOUR</a>
";
}
}else{
echo "
<title>ERREUR DE CONNEXION - Le Serveur Minecraft d'E__Man</title>
<p>LA COMBINAISON PSEUDO/MOT DE PASSE NE CONRESPOND A AUCUN UTILISATEUR!</p>
<a href=\"connexion.html\">RETOUR</a>
";
}
}
?>
diendi
Messages postés
73
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
10 octobre 2022
1 févr. 2014 à 15:10
1 févr. 2014 à 15:10
Bonjour,
Déjà il est préférable d'utiliser une variable ressource pour tes requêtes mySql du genre :
D'autre part au vu de ton code, il est normal qu'une redirection se fasse (vers connexion.html) si le pseudo ou le passe est incorrect.
Déjà il est préférable d'utiliser une variable ressource pour tes requêtes mySql du genre :
$database = mysql_connect('','','') or die('Database error mysql_connect'); mysql_select_db('', $database); // Tu précises la ressource lors des requêtes $result = mysql_query("TA REQUETE", $database); // etc
D'autre part au vu de ton code, il est normal qu'une redirection se fasse (vers connexion.html) si le pseudo ou le passe est incorrect.
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
Modifié par Anonyme209 le 1/02/2014 à 16:37
Modifié par Anonyme209 le 1/02/2014 à 16:37
Oui, je sais, mais mon problème est qu'il arrive que l'on soit redirigé vers la page d'accès refusé même en ayant rentré des identifiants valides
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
diendi
Messages postés
73
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
10 octobre 2022
Modifié par diendi le 1/02/2014 à 17:58
Modifié par diendi le 1/02/2014 à 17:58
- Supprimer mysql_fetch_array (qui n'existera plus d'ailleurs dans un proche avenir)
- Modifier ta 1ère requête : tester si le nombre de résultat vaut 1 via mysql_num_rows
- Modifier ta 2è requête avec ctrl pseudo + passe
Ce qui donne :
C'est déjà plus propre et peut-être que cela évitera tes bugs, je ne vois pas de raison d'ailleurs pour que ce ckeck ne fonctionne pas correctement.
- Modifier ta 1ère requête : tester si le nombre de résultat vaut 1 via mysql_num_rows
- Modifier ta 2è requête avec ctrl pseudo + passe
Ce qui donne :
$result = mysql_query("SELECT * FROM Membres WHERE Pseudo='$pseudo'"; $database); if(mysql_num_rows($result) == 1) { $result = mysql_query("SELECT * FROM Membres WHERE Pseudo='$pseudo' AND Passe='$passe'"; $database); if(mysql_num_rows($result) == 1) { $_SESSION['Pseudo'] = $pseudo; // Etc
C'est déjà plus propre et peut-être que cela évitera tes bugs, je ne vois pas de raison d'ailleurs pour que ce ckeck ne fonctionne pas correctement.
diendi
Messages postés
73
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
10 octobre 2022
1 févr. 2014 à 19:03
1 févr. 2014 à 19:03
Une autre piste : la casse à vérifier par rapport à ta base, un pseudo tapé en minuscules alors qu'il est enregistré en majuscules, selon le type de champs de ta base, il peut y avoir une incidence.
Voila.
Voila.
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
2 févr. 2014 à 19:25
2 févr. 2014 à 19:25
Merci, j'ai l'impression que pour l'instant ça ne bug plus.