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   -
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
A voir également:

7 réponses

deglingo592003 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   11
 
Bonjour,

Avec un peu de code, je pense que ce sera plus simple pour t'aider.

--
0
Anonyme209 Messages postés 681 Date d'inscription   Statut Membre Dernière intervention   16
 
Oui, excusez-moi: (si le code est illisible comme ça, je le mettrai dans un fichier)

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>
";
}
}
?>
0
diendi Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

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.
0
Anonyme209 Messages postés 681 Date d'inscription   Statut Membre Dernière intervention   16
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
diendi Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
- 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 :


$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.
0
diendi Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
Anonyme209 Messages postés 681 Date d'inscription   Statut Membre Dernière intervention   16
 
Merci, j'ai l'impression que pour l'instant ça ne bug plus.
0