Mon $_Session me retourne S
Résolu
TandooriaChoco
Messages postés
82
Date d'inscription
Statut
Membre
Dernière intervention
-
TandooriaChoco Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
TandooriaChoco Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de faire un site web pour ma soeur. Tout fonctione à peu près bien sauf ça.
L'inscription se passe bien, comme la connexion, mais dès que je veux faire des sessions ça ne marche plus.
Voici mon code :
Page de connexion :
Page d'après Index1.php, je fais passer les gens sur une page avant d'accéder au site à cause d'un autre soucis (mais là c'est pas le soucis) Le session_start (); est en haut :
Et la dernière page. Là l'utilisateur est censé être connecté et pour vérifier si c'est bon, je met toujours un petit echo bonjour, mais là il me dit S:
Image :
https://i47.servimg.com/u/f47/15/87/45/51/sans_t10.jpg
Question :
Pour quoi ça me retourne S ?
C'est censé me dire dans ma situation d'essai, Bonjour Idole (mon chien ^^)
Ca fait plusieurs jours que je planche dessus, j'ai demandé à divers dév, mais là, j'ai besoin d'aide.
Je suis en train de faire un site web pour ma soeur. Tout fonctione à peu près bien sauf ça.
L'inscription se passe bien, comme la connexion, mais dès que je veux faire des sessions ça ne marche plus.
Voici mon code :
Page de connexion :
<h2>Pour visualiser la liste, veuillez vous connecter.</h2> <form action="index1.php" method="post"> <fieldset> <legend>Saisir les informations de connexion :</legend> <table><tr> <td>Identifiant :</td><td> <input type="text" name="pmid"></td></tr> <tr> <td>Mot de passe :</td><td> <input type="password" name="pmpass"></td>
Page d'après Index1.php, je fais passer les gens sur une page avant d'accéder au site à cause d'un autre soucis (mais là c'est pas le soucis) Le session_start (); est en haut :
$db = mysql_connect('localhost','root','') or die("Connexion impossible"); mysql_select_db('baby_list',$db); $sql = 'SELECT * FROM utilisateurs'; //Vérification des variables de passages $identif=$_POST["pmid"]; $mdp=$_POST["pmpass"]; //if(isset($identif = $sql['Id_Util']) AND ($mdp = $sql['MOT_DE_PASSE']) AND ($sql['ID_Admin']='7777')) if ((isset($identif)) AND ($identif=$sql['Id_Util']) AND ($mdp=$sql['MOT_DE_PASSE'])) { echo 'Vous êtes connectés à la liste de naissance.'; echo '<br> Pour continuer, <a href="index2.php">Cliquez ici</a> '; $_SESSION["sid"]=$identif; } else
Et la dernière page. Là l'utilisateur est censé être connecté et pour vérifier si c'est bon, je met toujours un petit echo bonjour, mais là il me dit S:
<?php echo 'Bonjour '.$_SESSION["sid"].'.'; ?> </div>
Image :
https://i47.servimg.com/u/f47/15/87/45/51/sans_t10.jpg
Question :
Pour quoi ça me retourne S ?
C'est censé me dire dans ma situation d'essai, Bonjour Idole (mon chien ^^)
Ca fait plusieurs jours que je planche dessus, j'ai demandé à divers dév, mais là, j'ai besoin d'aide.
A voir également:
- Mon $_Session me retourne S
- Ecran retourne - Guide
- R retourné - Forum Windows
- Application qui retourne les photos - Accueil - Photo
- La lettre R inversée, tête en bas - Forum Graphisme
- Vidéo mal orientée : comment la faire pivoter - Guide
13 réponses
J'ai procédé à quelques changements :
Page Index 1 (après la page de formulaire) Tout en haut :
(J'ai vu ça sur Site du 0)
Ma connexion sur Index 1 :
Page Index 2 :
Mon souci maintenant, c'est qu'il me retourne Array au lieu du prénom.
En plus ma connexion fonctionne plus, alors qu'elle a fonctionné, un jour.
J'pige plus rien. SVP aidez moi
Page Index 1 (après la page de formulaire) Tout en haut :
<?php session_start(); $_SESSION['sid']=$_POST['pmid']; $_SESSION['smdp']=$_POST['pmpass']; ?>
(J'ai vu ça sur Site du 0)
Ma connexion sur Index 1 :
<?php $timestamp_today=time(); echo date('d/m/Y G:i',$timestamp_today); echo '<br><br><br>'; //connexion base de données $db = mysql_connect('localhost','root','') or die("Connexion impossible"); mysql_select_db('baby_list',$db); $sql = 'SELECT * FROM utilisateurs'; //Vérification des variables de passages //if(isset($identif = $sql['Id_Util']) AND ($mdp = $sql['MOT_DE_PASSE']) AND ($sql['ID_Admin']='7777')) if ((isset($_SESSION['sid'])) AND ($sql['Id_Util']=$_SESSION['sid']) AND ($sql['MOT_DE_PASSE']=$_SESSION['smdp'])) { echo 'Vous êtes connectés à la liste de naissance.'; echo '<br> Pour continuer, <a href="index2.php">Cliquez ici</a> '; } else { echo 'La connexion n\'a pu s\'établir. Retournez à la page d\'<a href="index.html" title="Accueil">Accueil</a>.'; } // on ferme la connexion à mysql mysql_close();
Page Index 2 :
<?php $db = mysql_connect('localhost','root','') or die("Connexion impossible"); mysql_select_db('baby_list',$db); $sql = mysql_query('SELECT DISTINCT PRENOM FROM 'utilisateurs' WHERE Id_Util =\'' .$_SESSION['sid']. '\''); $donnees['PRENOM'] = mysql_fetch_array($sql); echo "Bonjour ".$donnees['PRENOM'] ; ?>
Mon souci maintenant, c'est qu'il me retourne Array au lieu du prénom.
En plus ma connexion fonctionne plus, alors qu'elle a fonctionné, un jour.
J'pige plus rien. SVP aidez moi
Pour faire une vérifiaction supplémentaire :
J'ai fait un GET au lieu du post , mes variables sont bien passé :
URL :
php?pmid=AdminA&pmpass=admina
J'ai fait un GET au lieu du post , mes variables sont bien passé :
URL :
php?pmid=AdminA&pmpass=admina
mysql_fetch_array te retourne un tableau sur 2 dimensions
$donnees[0]['PRENOM'] pour avoir le prénom
$donnees[0]['PRENOM'] pour avoir le prénom
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je cherche pas a mettre ca dans un tableau. ce que trouve bizarre, c'est que tous mes ajouts, suppressions et autres modifications sur mes tables fonctionnent.ca doit etre lier a l'etape de connexion. d'ou le fait que ma page de connexions
Dans ce cas il ne faut pas utiliser mysql_fetch_array car cette fonction retourne un tableau sur deux dimension ! Il faut utiliser mysql_fetch_assoc !
Alors j'ai essayé pleins de choses. Un amie m'a aidé. Mes connexions entre page ne fonctionnait pas, elle a résolu cela. Tout en m'expliquant les manoeuvres à faire, ma page fonctionnait mais me retournait toujours cette valeur alors qu'on pouvait afficher toutes autres informations. Vraiment très bizarre.
Je vais vous mettre le code résolu quand même au cas où que quelqu'un a la soluce finale.
(je le mettrai ce soir)
En faite, je me contente de pas mettre son prénom, de ne pas dire Bonjour !
Je vais vous mettre le code résolu quand même au cas où que quelqu'un a la soluce finale.
(je le mettrai ce soir)
En faite, je me contente de pas mettre son prénom, de ne pas dire Bonjour !
Hello,
Tu fais ça :
Ma question : que se passe-t-il si tu fais un
Juste avant ?
Tu fais ça :
$_SESSION['sid']=$_POST['pmid'];
Ma question : que se passe-t-il si tu fais un
echo $_POST['pmid'];
Juste avant ?
Bonjour
echo 'Bonjour '.$_SESSION["sid"].'.';
Cet 'echo' ajoute un point après $_SESSION["sid"]. Or on n'en voit pas sur ton image.
Donc ce n'est pas le bon code que tu nous donnes, ou alors $_SESSION["sid"] contient un S suivi d'un < qui est pris pour une ouverture de balise et nous masque la suite.
Dans ce dernier cas, ça doit se voir en visualisant le HTMLM généré.
echo 'Bonjour '.$_SESSION["sid"].'.';
Cet 'echo' ajoute un point après $_SESSION["sid"]. Or on n'en voit pas sur ton image.
Donc ce n'est pas le bon code que tu nous donnes, ou alors $_SESSION["sid"] contient un S suivi d'un < qui est pris pour une ouverture de balise et nous masque la suite.
Dans ce dernier cas, ça doit se voir en visualisant le HTMLM généré.
Mon amie a résolue le soucis par :
Selon elle, c'est ma requête SQL qui n'était pas bonne.
En haut :
Dans le contenu :
Selon elle, c'est ma requête SQL qui n'était pas bonne.
En haut :
<?php session_start(); $_SESSION['sid']; ?>
Dans le contenu :
<?php $db = mysql_connect('localhost','root','') or die("Connexion impossible"); mysql_select_db('baby_list',$db); $sql = mysql_query('SELECT * FROM utilisateurs WHERE Id_Util =\'' .$_SESSION['sid']. '\''); $donnees['PRENOM'] = mysql_fetch_row($sql); echo "Bonjour ";echo $_SESSION['sid']; ?>
lorsqu'un membre se connecte je voudrais que mon site affiche :
" merci de vous être connecté login etc.."
sur la page de redirection.
j'ai une page parametre.php pour se connecter à la bdd:
$server="localhost";
$bdd="projetio2";
$user="root";
$password="";
$connexion=mysql_pconnect($server, $user);
if(!$connexion){
echo "pas de connexion" ; exit;
}
if(!mysql_select_db($bdd, $connexion)){
echo "pas d'accès à la base"; exit;
}
apres avoir rempli le formulaire on test si les identifiants et mot de passes sont correctes :
if(isset($_POST["adresse"])){
$adresse=$_POST["adresse"];
$mdp=$_POST["pass"];
$login="SELECT * FROM membres WHERE mail_membre='".$adresse."' AND mdp_membre='".$mdp."'";
$log=mysql_query($login);
$row=mysql_fetch_array($log);
/*si c'est correct alors il est connecté et on les redirige vers la page d'acceuil avec un petit message avec son nom de login*/
if($row){
$_SESSION["adresse"]=$adresse;
/*je recupere le login a partir de la base de donnees avec une requete*/
$login_recup="SELECT login FROM membres WHERE mail_membre='".$adresse."'";
/*je definie une variable session pour qu'elle soit stocké tout au long de la session*/
$_SESSION["login"]=$login_recup[$adresse];
echo '<p>merci de vous être connecté
<span style="color: #CC0000">'.$_SESSION["login"].'</span>, vous allez être redirigé vers la page d\'acceuil...</p>
<p>si votre naviguateur ne vous redirige pas <a href="index.php">cliquez sur le lien</a> !</p>';
echo '<meta http-equiv="refresh" content="3; index.php">';
}
else{
die("adresse mail ou mot de passe incorrecte! Please try again!" . mysql_error());
}
}
le problème c'est qu'au lieu d'afficher le nom du login, il m'affiche S!
je ne vois pas du tout d'ou vient l'erreur !
merci d'avance !
" merci de vous être connecté login etc.."
sur la page de redirection.
j'ai une page parametre.php pour se connecter à la bdd:
$server="localhost";
$bdd="projetio2";
$user="root";
$password="";
$connexion=mysql_pconnect($server, $user);
if(!$connexion){
echo "pas de connexion" ; exit;
}
if(!mysql_select_db($bdd, $connexion)){
echo "pas d'accès à la base"; exit;
}
apres avoir rempli le formulaire on test si les identifiants et mot de passes sont correctes :
if(isset($_POST["adresse"])){
$adresse=$_POST["adresse"];
$mdp=$_POST["pass"];
$login="SELECT * FROM membres WHERE mail_membre='".$adresse."' AND mdp_membre='".$mdp."'";
$log=mysql_query($login);
$row=mysql_fetch_array($log);
/*si c'est correct alors il est connecté et on les redirige vers la page d'acceuil avec un petit message avec son nom de login*/
if($row){
$_SESSION["adresse"]=$adresse;
/*je recupere le login a partir de la base de donnees avec une requete*/
$login_recup="SELECT login FROM membres WHERE mail_membre='".$adresse."'";
/*je definie une variable session pour qu'elle soit stocké tout au long de la session*/
$_SESSION["login"]=$login_recup[$adresse];
echo '<p>merci de vous être connecté
<span style="color: #CC0000">'.$_SESSION["login"].'</span>, vous allez être redirigé vers la page d\'acceuil...</p>
<p>si votre naviguateur ne vous redirige pas <a href="index.php">cliquez sur le lien</a> !</p>';
echo '<meta http-equiv="refresh" content="3; index.php">';
}
else{
die("adresse mail ou mot de passe incorrecte! Please try again!" . mysql_error());
}
}
le problème c'est qu'au lieu d'afficher le nom du login, il m'affiche S!
je ne vois pas du tout d'ou vient l'erreur !
merci d'avance !
Salut je n'ai pas cherché a afficher le prénom, sauf dans un tableau (c'est le seul endroit où sa fonctionne car fetch_array c'est pour un tableau .
J'avais déjà vu que tes requêtes étaient pas bonnes, désolé de pas avoir répondu. Ya plein de truc qui me pertube dans ton code, mais je ne suis pas dévellopeur.
Et je ne peux pas t'aider étant donné que mon problème est pas résolu. (mais mon site est fini, actif et ça servait à rien ça).
J'avais déjà vu que tes requêtes étaient pas bonnes, désolé de pas avoir répondu. Ya plein de truc qui me pertube dans ton code, mais je ne suis pas dévellopeur.
Et je ne peux pas t'aider étant donné que mon problème est pas résolu. (mais mon site est fini, actif et ça servait à rien ça).
C'est vraiment trop bizarre.