Problème de sessions (PHP)
Anonyme209
Messages postés
681
Date d'inscription
Statut
Membre
Dernière intervention
-
Anonyme209 Messages postés 681 Date d'inscription Statut Membre Dernière intervention -
Anonyme209 Messages postés 681 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Lors de la connexion sur mon site, il arrive que la connexion ne soit pas bien prise en compte, et que l'on soit donc redirigé vers la page d'accueil. Je suppose que c'est un bug, car cela ne se produit qu'une fois sur deux. Je voudrais savoir comment faire pour empêcher ce bug. Si vous voulez le code de ma page php, demandez-moi
Lors de la connexion sur mon site, il arrive que la connexion ne soit pas bien prise en compte, et que l'on soit donc redirigé vers la page d'accueil. Je suppose que c'est un bug, car cela ne se produit qu'une fois sur deux. Je voudrais savoir comment faire pour empêcher ce bug. Si vous voulez le code de ma page php, demandez-moi
A voir également:
- Problème de sessions (PHP)
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php ✓ - Forum PHP
- Alert php ✓ - Forum PHP
- Teamviewer code de session expiré ✓ - Forum logiciel systeme
7 réponses
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>
";
}
}
?>
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.
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
- 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.