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
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 jeudi 27 novembre 2008 Statut Membre Dernière intervention 31 janvier 2014 11
31 janv. 2014 à 22:49
Bonjour,

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

--
0
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
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 mardi 5 février 2013 Statut Membre Dernière intervention 10 octobre 2022
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 :


$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 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
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 mardi 5 février 2013 Statut Membre Dernière intervention 10 octobre 2022
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 :


$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 mardi 5 février 2013 Statut Membre Dernière intervention 10 octobre 2022
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.
0
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
Merci, j'ai l'impression que pour l'instant ça ne bug plus.
0