affichage donné=bug

Répondre
covin85
le 01/06/2006 à 22:14
covin85
Bonjours cela fait bien 2 mois que je suis toujours bloquer sur ma zone membre.

Le probleme:

l'orsque l'utilisateur s'enregistre et qu'il va dans une page ou doit s'afficher son login et son email,tout marche impec :)

MAIS

Quand il quitte le site et qu'il revien pour se connecter,et qu'il va sur la page ou doit s'afficher les données,seulle son login s'affiche corectement,l'emplacement ou doit s'afficher son email deconne(soit rien soit l'email du dernier utilisateur enregistrer.

Si vous savez d'ou sa vien merci de m'informez,sinon demande moi les codes qui pourrai vous aider

Merci de me faire retrouver le sommeille^^
i M@N
le 01/06/2006 à 22:27
i M@N
Hello !

Fais un wall avec :
- ta "page ou doit s'afficher son login et son email"
- la page qui traite le login (celle qui enregistre les variables de session)
- la "page ou doit s'afficher les données"

On va y voir plus clair.

à priori je penche pour une variable de session mal enregistrée ou une variable ailleurs dans le script qui a le même nom qu'une des variables de session et qui fout le boxon.

@+...
One Love, One Heart, One Unity.
Rolland
le 02/06/2006 à 22:47
Rolland
Salut Covin85,

Dans ta page inscription ton formulaire comprend 3 champs : login - pass et email et tout marche bien, ta variable de session email est enregistrée.

Par contre dans ta page connexion il semble que ton formulaire ne comporte que 2 champs : login et pass et tu définis en variables de session :
$_SESSION['login'] = $_POST['login']; 
$_SESSION['email'] = $_POST['email'];

Mais y'a pas de post email dans cette page !!!

Et donc en page 3 s'affichent effectivement ta variable de connexion login et la variable email de l'inscription puisqu'il n'en a pas été posté de nouvelle.
3SI - Sea, Sex, Sun and Internet
covin85
le 03/06/2006 à 15:48
covin85
En gros comment doi-je faire pour que les infos issus de l'inscription,soit affichées dans une page,sans que l'utilisateur les retapes a nouveaux?
i M@N
le 03/06/2006 à 20:14
i M@N
Hello !

Tu te sers des variables de sessions que t'as enregistré.

@+...
One Love, One Heart, One Unity.
i M@N
le 03/06/2006 à 21:55
i M@N
Reuh ...

Avant de dire j'y arrive pas, on cherche à apprendre, à comprendre et quand on vient demander de l'aide on explique ce qu'on a essayé, on dit pas "Je n'arrive pas...". smiley

Lis ça :
Les variables globales
Les sessions

à partir de là t'as les bases, tu sais où tu vas et comme dirait Cart "tu risques y arriver". smiley

Donc "en gros" :
- Tu récupères les variables issues de $_GET (celles envoyées en $_GET depuis ton formulaire) dans ton script de login / enregistrement de variables de session puisque ça revient au même (fin / moyens) :
<?php
/*tu initialises ta variable (je fais avec une pour l'exemple ^^)*/
if (isset($_GET['variable'])) $variable = $_GET['variable']); else $variable = "";
/*à partir de là ta variable $variable issue du formulaire est disponible dans ton script*/
/*Tu lances ta session*/
session_start();
/*Tu enregistres ta variables en session*/
$_SESSION['variable'] = $variable;
/*à partir de là ta variable de session est disponible
dans tous les scripts qui commencent par session_start();*/
/*Pour afficher ta variable de session tu fais*/
echo $_SESSION['variable'];
/*Tu peux donc afficher la valeur de la variable de session où tu veux :
dans un formulaire, sur une liste, en long, en large et même en travers si tu y arrives*/
?>


@+...
One Love, One Heart, One Unity.
covin85
le 05/06/2006 à 21:41
covin85
http://www.lephpfacile.com/wall/wall.php?id=2782

Voila se que cela donne,mais sa ne marceh toujours pas
i M@N
le 05/06/2006 à 22:42
i M@N
Hello !

T'as relu ton code avant de le poster ?

T'es pas logique, sans logique t'y arriveras pas.
Tu déclares des variables qui n'ont rien à faire dans le code, tu n'initialises pas tes variables issues de $_POST pourtant ça serait tellement plus simple et plus propre.

Bref essaye ça :
<?php

/*on démarre la session*/
session_start();
/*on initialise les variables issue de $_POST*/
if (isset($_POST['connexion'])) $connexion = $_POST['connexion']; else $connexion = "";
if (isset($_POST['login'])) $login = addslashes($_POST['login']); else $login = "";
/*on initialise et on crypte md5+addslashes immédiatement la variable pass issue de $_POST*/
if (isset($_POST['pass'])) $pass = md5(addslashes($_POST['pass'])); else $pass = "";

// on teste si le visiteur a soumis le formulaire de connexion
if ($connexion == 'Connexion') {
/*on vérifie que les variables ne sont pas vides*/
if (($login != "") && ($pass != "")) {

$base = mysql_connect ('mysql.webzzanine.net', 'user', 'pass');
mysql_select_db ('teamsseek-membre', $base);

// on teste si une entrée de la base contient ce couple login / [pass crypté md5]
$sql = 'SELECT count(*) FROM membre WHERE login="'.$login.'" AND pass_md5="'.$pass.'"';
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
$data = mysql_fetch_array($req);

$data = mysql_fetch_array($req);

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
/*on récuère les données du membre*/
$login_valid = $data['login'];
$pass_valid = $data['pass'];
$email = $data['email'];

mysql_free_result($req);
mysql_close();
/*on enregistre ses données en session*/
$_SESSION['login'] = $login_valid;
$_SESSION['email'] = $email;
header('Location: membre.php');
exit();
}

// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}

}

else {
$erreur = 'Au moins un des champs est vide.';
}
}

?>


Quelques remarques :
le pass est crypté et addslashé mais je te conseille aussi de le mettre en minuscules avec la fonction strtolower($variable); mais n'oublie pas de le mettre aussi en minuscule addslashé et crypté md5 dans la base lors de l'inscription de ton membre ou tu ne compareras pas 2 chaînes identiques.

@+...
One Love, One Heart, One Unity.
Répondre
LoadingChargement en cours