Problème session php

Résolu
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   -  
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

n'étant pas du tout informaticien, j'ai appris à me servir du php grâce à des forums et des tutos. J'ai donc beaucoup de lacunes.
J'essaie de créer des sessions sur mon site mais je bloque en écrivant le code de vérification qui identifie l'utilisateur.
Voici mon code :

<?php

session_start();
$pseudoOK = false;

if ( isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['mdp'])) ) {

extract($_POST);

$hostname = "*****";
$user = "*****";
$password = "*****";
$nom_base_donnees = "*****";

mysql_connect($hostname, $user, $password) or die(mysql_error());
mysql_select_db($nom_base_donnees);

$sql = "SELECT nom, prenom, pseudo, email FROM joueurs WHERE pseudo = '".addslashes($pseudo)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);


if ($mdp == $data['mdp']) {
$pseudoOK = true;
}
}
}

if ($pseudoOK) {
$_SESSION['nom'] = $data['nom'];
$_SESSION['prenom'] = $data['prenom'];
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['email'] = $data['email'];

header("Location: index3.php") ;
}
else {
header("Location: index2.htm") ;
}
?>

J'ai pompé des morceaux sur plusieurs tutos et je pense ne pas tout mettre dans le bon ordre en fait.

Merci de me donner un coup de main ;o)
A voir également:

33 réponses

nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   1
 
Ca me renvoie à nouveau sur :

Array
(
)
0
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
cela confirme que $_POST existe et ne contient rien.
il me faut le code de la page qui appelle ce fichier.


d'une manière générale, c'est un formulaire utilisé avec la method POST qui renseigne ces infos

je vais déjeuner je reprendrai cet après midi
0
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   1
 
Ben c'est celui-là :

<html>
<head>
<title>Connexion au site</title>
</head>
<body>
<form method="post" action="verifpseudo.php">
<table border="0" width="400" align="center">
<tr>
<td width="200"><b>Pseudo</b></td>
<td width="200">
<input type="text" name="pseudo">
</td>
</tr>
<tr>
<td width="200"><b>Mot de passe<b></td>
<td width="200">
<input type="password" name="mdp">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="Se connecter">
</td>
</tr>
</table>
</form>
</body>
</html>

Où sinon je ne comprends pas quel est ce fichier.
En tous cas je n'en ai pas d'autres
0
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
oui celui là.

mettez post en majuscule
<form method="POST" action="verifpseudo.php">
0
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   1
 
J'obtiens :

Array
(
[pseudo] => nico3009
[mdp] => ******
[submit] => Se connecter
)
0

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

Posez votre question
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
C'est mieux puisque maintenant les valeurs passent.
est-ce que cela fonctionne maintenant ?
0
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   1
 
Ca ne m'affiche toujours que mon pseudo. Le nom et prénom ne s'affichent pas
0
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
alors on continue à tracer

$sql = "SELECT nom, prenom, pseudo, email FROM joueurs WHERE pseudo = '".addslashes($pseudo)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);
echo "<pre>";print_r($data);echo "</pre>";

pour voir ce que renvoit cette requête.
0
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   1
 
Ca me renvoie tout cette fois.

Ca avance bien ;o))
0
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
bon alors on fait un point.
dites moi où on en est. et ce qui ne va toujours pas.
0
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   1
 
Je te fais un point demain, j'ai du monde à manger ;o)

Merci beaucoup en tous cas
0
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
OK à demain
0
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,

il semblerait que la nuit porte conseil :o))

Je viens de galérer pendant 1 heure avant de te solliciter et finalement j'ai trouvé.
J'ai reconstruit ma requête sur papier pour que ce soit plus clair.
Il y avait des problèmes d'accolades qui n'étaient pas au bon endroit.

Voici le résultat :

<?php

if ( isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['mdp'])) )
{
$pseudo = $_POST["pseudo"] ;
$mdp = md5($_POST["mdp"]) ;

$hostname = "";
$user = "";
$password = "";
$nom_base_donnees = "";

mysql_connect($hostname, $user, $password) or die(mysql_error());
mysql_select_db($nom_base_donnees);

$sql = "SELECT nom, prenom, pseudo, email FROM joueurs WHERE pseudo = '".addslashes($pseudo)."' AND mdp = '".$mdp."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

if (mysql_num_rows($req) > 0)
{
$data = mysql_fetch_assoc($req);

{
session_start();
{
$_SESSION['nom'] = $data['nom'];
$_SESSION['prenom'] = $data['prenom'];
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['email'] = $data['email'];
}
header("Location: index3.php") ;
}
}
else {
echo '<p>Pseudo ou mot de passe incorrect. Veuillez réessayer.</p>';
include('index2.htm');
exit;
}
}
?>

En tous cas un GRAND MERCI à toi pour avoir passé autant de temps à m'aider pour ce script.
Je vais pouvoir commencer à m'amuser avec toutes ces sessions ^^
0
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
bravo @+
0