Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1432 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Actualisation des données MYSQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Actualisation des données MYSQL

n°1716695
willy54
Posté le 12-04-2008 à 14:09:48  profilanswer
 

Bonjour,  
 
Je suis confronté à un nouveau problème. J'utilise un espace membre sur mon site et je suis obligé de me deconnecter puis de me reconnecter si je veux voir apparaître les modifications que j'ai apporté dans la section profil de mon espace membre. J'ai beau actualisé la page, je suis obligé de me déconnecter/connecter.

 
Page connexion.php:
 
<div id="right">  
<div id="right_haut"></div>  
<div id="rightbk">  
<form action="http://trigancefoot.jexiste.fr/test/connexionok.php" target="_parent" method='post'>  
<table align="left" border="0">  
<tr>  
<td>Pseudo:</td>  
<td><input type="text" name="login" maxlength="250"></td>  
</tr>  
<tr>  
<td>Mot de passe:</td>  
<td><input type="password"name="pass" maxlength="10"></td>  
</tr>  
<tr>  
<td colspan="2" align="center"><input type="submit" value="Se connecter"></td>  
</tr>  
</table>  
</form>  
 
</div>  
 
 

Page connexionok.php

 
<?  
// CONNEXION BASE DE DONNE  
$db = mysql_connect('', '', '');  
mysql_select_db('trigancefoot',$db);  
 
// voir les exercices dans le menu de droite pour cela.  
 
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {  
extract($_POST);  
// on recupère le password de la table qui correspond au login du visiteur  
$sql = "select pwd,age,pseudo,credits from tbl_user where login='".$login."'";  
// la ligne suivante n'est pas utilisée  
// $age = "SELECT age FROM tbl_user WHERE login='$login' ";  
$credits = "SELECT age FROM tbl_user WHERE login='$login' ";  
$req = mysql_query( $sql ) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());  
 
$data = mysql_fetch_assoc($req);  
// à ce stade $data[ 'age' ] contient l'age correspondant au login dans la base  
// à ce stade $data[ 'credits' ] contient l'age correspondant au login dans la base  
if( $data['pwd'] != $pass )  
{  
include('http://trigancefoot.jexiste.fr/erreur_connexion_1.php'); // On inclut le formulaire d'identification  
exit;  
}  
else  
{  
session_start();  
$_SESSION['login'] = $login;  
$_SESSION[ 'age' ] = $data[ 'age' ];  
$_SESSION[ 'credits' ] = $data[ 'credits' ];  
 
header('Location: http://trigancefoot.jexiste.fr/test/index.php');  
//  
// vers la page d'accueil de votre espace membres  
}  
}  
else  
{  
include('http://trigancefoot.jexiste.fr/erreur_connexion_2.php'); // On inclut le formulaire d'identification  
exit;  
}  
?>  
 
Page index.php
 
<?  
session_start();  
if(!isset($_SESSION['login'])) {  
echo 'Merci de te connecter';  
include('http://trigancefoot.jexiste.fr/test/connexion.php');  
exit;  
}  
$mdr= $_SESSION['age'];  
?>  
 
<b><u>Compte:</b></u>  
<br><br>  
Bienvenue <b><? echo "$login"; ?></b>! Tu as <? echo "$age"; ?> ans!  
<br>Ton crédit est de: <? echo "$credits"; ?> euros.  
 
<br><br><u><b>Amélioration:</b></u>  
<br><br>  
<a href="/test/ajouter.php" alt="_parent">Ajouter de l'argent</a>  
<br><a href="/test/supprimer.php" alt="_parent">Supprimer de l'argent</a>  
<br><a href="/test/tribune.php" alt="_parent">Créer des tribunes</a>  
<br><a href="/test/liste_membres.php" alt="_parent">Liste des membres</a>  
<br><a href="/test/deconnexion.php" alt="_parent">Déconnexion</a>  
 
 
----------------------
 
Par exemple dans le cas ci-dessus, lorsque je modifie mon age dans ma base de donnée, j'ai beau réactualiser autant de fois que je veux, l'âge reste le même. Il faut que je me deconnecte/reconnecte pour voir le changement.

mood
Publicité
Posté le 12-04-2008 à 14:09:48  profilanswer
 

n°1716766
naeh
Posté le 12-04-2008 à 16:53:03  profilanswer
 

le probleme vient des sessions, quand tu te deconnecte elle sont detruites, donc la prochaines connexion tu vois la différence puisqu'elle sont recrées avec les nouvelles valeurs.
 
mais le vrai probleme vient de ta gestion de ton espace membre, tu n'a pas a mettre l'age dans la session (ni les autres infos d'ailleurs a part long/pass et ça dépend des façons de faire).
 
en gros ce qu'il faudrait c'est que tu mette login/pass dans les sessions.
dans ta page de profile tu affiche celui qui appartient a ce login/pass (sans mettre les info dans les sessions). et ça s'arrete là, donc ta page au lieu d'afficher l'age a partir de la variable de session, elle va l'afficher a partir de la base de données en se basant sur le login/pass (dans la session) pour le retrouver.
 
 
en gros, les données n'ont pas besoin d'être stockées dans les sessions a chaque connexion, dans les sessions tu mets juste ce qui te permet de controler que le user est bien connecter (de page en page) et pour ça t'as le login/pass :)

n°1716774
willy54
Posté le 12-04-2008 à 17:31:24  profilanswer
 

Ah d'accord. Je m'en suis douté mais j'étais pas vraiment sur. Merci beaucoup!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Actualisation des données MYSQL

 

Sujets relatifs
recupérer valeur SELECT MySQLcréation de statistiques mensuelles en PHP/MySQL
Insertion dans base de données MYSQL IMPOSSIBLE!MySQL => insert intelligent
Comparaison de données sous Excel[Résolu] MySQL et condition sur le résultat retourné par une requête
Migration d'une base de données Récupérer les données à partir des zones de textes
[MySQL] Mysql ne démarre pas 
Plus de sujets relatifs à : Actualisation des données MYSQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR