SESSION PHP : BONJOUR LES DEGATS !
Résolu
iBi0tux
Messages postés
71
Date d'inscription
Statut
Membre
Dernière intervention
-
toto -
toto -
Bonjour,
Je suis en train de réaliser un site avec un formulaire de connexion. Les informations sont comparées avec celles d'unes base SQL. Malheureusement un problème se pose lors de la redirection vers l'index après la connexion.
Ce qui se passe réellement c'est qu'après la connexion, la page voulue s'affiche mais, dès que l'on actualise l'on actualise la page, la variable $_SESSION perd toutes les valeurs et je retombe sur le formulaire de connexion.
Cela est embettant puisque la page index.php est censée recevoir (dans la deuxième partie) des informations venant par méthode GET. Mais dès que la page est relancée avec ces données en paramètre, je me retrouve également sur le formulaire de connexion.
Comment remédier à ce problème ?
voici connexion.php (au cas ou l'erreur proviendrait de ce fichier) :
Merci
Je suis en train de réaliser un site avec un formulaire de connexion. Les informations sont comparées avec celles d'unes base SQL. Malheureusement un problème se pose lors de la redirection vers l'index après la connexion.
<?php if(!ISSET($_SESSION)) session_start(); mysql_connect('********', '********', '********'); mysql_select_db('********'); $reponse = mysql_query('SELECT name , password FROM players WHERE name=\'' . $_SESSION['name'] . '\' AND password=\'' . $_SESSION['pass'] . '\'') or die(mysql_error()); $donnees = mysql_fetch_array($reponse); if(!$donnees) { ?> <html> <head> <link rel='stylesheet' type='text/css' href='game.css' /> </head> <body class="fond"> <div class="formulaire"> <?php if(!$_GET['page']) $_GET['page'] = ''; switch($_GET['page']) { case 'error1': echo '<b><font color=red>Pseudo ou mot de passe incorect</font></b>'; break; } ?> <form action="connexion.php" method="post"> <input type="text" name="login"> <input type="password" name="password"> <input type="submit" value="CONNEXION" class="bouton"> </form> </div> <?php } else { // CETTE PARTIE LA N'EST CENSEE APPARAITRE QU'APRES LA CONNEXION. } ?>
Ce qui se passe réellement c'est qu'après la connexion, la page voulue s'affiche mais, dès que l'on actualise l'on actualise la page, la variable $_SESSION perd toutes les valeurs et je retombe sur le formulaire de connexion.
Cela est embettant puisque la page index.php est censée recevoir (dans la deuxième partie) des informations venant par méthode GET. Mais dès que la page est relancée avec ces données en paramètre, je me retrouve également sur le formulaire de connexion.
Comment remédier à ce problème ?
voici connexion.php (au cas ou l'erreur proviendrait de ce fichier) :
<?php $login = mysql_real_escape_string($_POST['login']); $password = md5(mysql_real_escape_string($_POST['password'])); mysql_connect('********', '********', '********'); mysql_select_db('********'); $reponse = mysql_query('SELECT name , password FROM players WHERE name=\'' . $login . '\' AND password=\'' . $password . '\'') or die(mysql_error()); $donnees = mysql_fetch_array($reponse); if($donnees) { session_start(); $_SESSION['name'] = $login; $_SESSION['pass'] = $password; echo '<script>document.location="index.php"</script>'; } else { echo '<script>document.location="index.php?page=error1"</script>'; } ?>
Merci
A voir également:
- SESSION PHP : BONJOUR LES DEGATS !
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Teamviewer code de session expiré ✓ - Forum logiciel systeme
- Session invalide ou obsolète ✓ - Forum finances
6 réponses
Bonjours,
Celà peut paraître bête mais mets-tu bien ce code avant d'écrire le premier code html ? :
Il ne peut y avoir aucun caractère juste avant "<" (parfois un caractère invisible vient se mettre quand tu travail le fichier sur Linux et sur Windows)
Celà peut paraître bête mais mets-tu bien ce code avant d'écrire le premier code html ? :
<?php session_start(); >?
Il ne peut y avoir aucun caractère juste avant "<" (parfois un caractère invisible vient se mettre quand tu travail le fichier sur Linux et sur Windows)
Avec les sources que tu as mises, je ne vois pas de session_start(); avant quoi que ce soit.
Voici ce à quoi doit ressembler le début de toutes les pages :
Ou bien si tu veux directement mettre du PHP (par exemple pour un moteur de templates) :
PS : Je voulais dire premier code HTML mais aussi de PHP donc <?php session_start(); ?> doit être la première chose à lire (même pas un code PHP avant)
Voici ce à quoi doit ressembler le début de toutes les pages :
<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> ...
Ou bien si tu veux directement mettre du PHP (par exemple pour un moteur de templates) :
<?php session_start(); //ton code PHP ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> ...
PS : Je voulais dire premier code HTML mais aussi de PHP donc <?php session_start(); ?> doit être la première chose à lire (même pas un code PHP avant)
c'est pourtant ce que je faisait !
mais, le problème venait de wamp server. en hébergeant les pages sur un autre serveur, le script fonctionne comme je l'avais mis.
merci quand même
mais, le problème venait de wamp server. en hébergeant les pages sur un autre serveur, le script fonctionne comme je l'avais mis.
merci quand même
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question