JeuWeb - Crée ton jeu par navigateur
Récupération de données propre à un joueur - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Récupération de données propre à un joueur (/showthread.php?tid=477)

Pages : 1 2 3


Récupération de données propre à un joueur - P0ulp0r - 23-11-2006

Bonjour à tous,

J'ai un petit problème.
Comment faire pour récupérer les informations du joueur dans une table précise. Pour éviter que chacun récupère les memes informations.
Merci

Voici mon script
Code PHP :
<? 
mysql_connect
("******","******","******") or die(mysql_error());
mysql_select_db("******") or die(mysql_error());

$usr_name = $_POST['usr_name']; //On recupère le pseudo
$password = $_POST['password']; // le pass

$reponse = mysql_query ("SELECT * FROM utilisateurs WHERE usr_name='" . $usr_name . "'"); //info récup du pseudo
$donnees = mysql_fetch_array ($reponse) or die (mysql_error());

echo
'<font face="Verdana" size="2"><b>Nom: </b>'.$_SESSION['usr_name'].'<br/>';
echo
'<font face="Verdana" size="2"><b>Peuple: </b> '.$_SESSION['classe'].' <br/>';
echo
'<font face="Verdana" size="2"><b>Grade: </b>'.$_SESSION['grade'].'<br/>';
mysql_close();
?>
Ici, je n'arrive pas à récupérer l'information classe et grade. :S


RE: Récupération de données propre à un joueur - barst - 23-11-2006

Tu cherches tes données dans $_SESSION alors qu'elles sont dans $donnees.


RE: Récupération de données propre à un joueur - Plume - 23-11-2006

En plus de ça, tu ne démarres même pas de session {session_start()} donc aucune chance que tu trouves quoi que ce soit même si tu avais préalablement enregistré quelque chose.


RE: Récupération de données propre à un joueur - P0ulp0r - 23-11-2006




RE: Récupération de données propre à un joueur - Raoull - 23-11-2006

Salut,

1) je t'ai fait un mp, change rapidement ce que tu dois changer dans que tu as affiché ^^

2) tu récupères des données $_POST mais à mon gout il manque une sécurité.
avant de faire
Code PHP :
<?php 
$usr_name
= $_POST['usr_name'];
tu devrez faire une vérification de sécurité pour voir si les données POST sont bien transmises :
Code PHP :
<?php 
if (isset($_POST['usr_name']) && isset($_POST['password'])) {
// traitement
}
else {
echo
'erreur : vous n avez pas rempli le formulaire !';
}

Ca évite d'abord les erreurs de base si tes données POST sont vides, ca évite aussi par la suite que des petits malins fassent des formulaires maisons et t'envoies n'importe quoi, et surtout ca permet de débugger au passage.

Moi je rajoute même une sécurité sur tous mes formulaire : je donne un nom au bouton, et je vérifie à l'arrivée que le nom est bon :
Code PHP :
<?php 
<input type="submit" name="post_submit" value=" Envoyer " />
// et je vérifie à l'arrivée que c'est bon, en même temps que tous les autres vars POST du formulaire :
if (isset($_POST['post_submit']) && $_POST['post_submit']==' Envoyer ' && ...) {
//ok
}
else {
// ya un hic }

Sinon pour ton probleme ... je vois pas, explique davantage ou je vais chercher encore un peu

EDIT :

un truc aussi, source de probleme, quand tu fais une requete, tu fais direct un mysql_fetch_array, sans vérifié que la requete a donné un resultat...
Code PHP :
<?php 
$reponse
= mysql_query("SELECT * FROM usine WHERE usine_prodid = '3' ");
$donnees = mysql_fetch_array($reponse);
Tu devrais p-e faire un mysql_num_rows avant pour voir si la reuquete a abouti. Sécurité encore... mais tout ca n'est pas inutile, rien que pour débugguer.


RE: Récupération de données propre à un joueur - Archange - 23-11-2006

Je comprend pas trop pourquoi tu te connecte la deuxieme fois a la base de donnée alors que tu ne t'es meme pas deconnecter la premiere fois bref une seul fois suffit normalement ( et tu devrait te connecter apres ton session start je pense)

Ensuite tu fait deux requete

Code PHP :
<?php 
$reponse
= mysql_query("SELECT * FROM usine WHERE usine_prodid = '1' ");

Code PHP :
<?php 
$reponse
= mysql_query ("SELECT * FROM utilisateurs WHERE usr_name='" . $usr_name . "'");

Je crois bien que ca ne vas pas de mettre le meme nom $reponse pr deux requetes differentes

MAIS je ne suis pas trop sur de ce que j'affirme attend l'avis de quelqu'un qui si connait bien psk je suis un débutant


RE: Récupération de données propre à un joueur - Plume - 23-11-2006

Pour la double connexion à la table je confirme: inutile.
Ensuite pour ce qui concerne le nom de la variable, si aucun traitement sur la première requète n'est nécesaire, ça ne posera aucun soucis pour la suite. Faudra juste être certains que les données stockées dans le premier $reponse ne seront pas utiles pour la suite.
Sinon j'appuis Raoull sur le fait que des détails sur les problèmes rencontrés seraient les bienvenus. J'avoue ne pas avoir suffisament de motivation pour chercher à connaitre ton problème, à comprendre ton problème pour pouvoir le résoudre après ^^

[EDIT] Grilled Raoull Tongue
[EDIT2] Ouais genre, on est tous dans le même cas. Pas d'excuses Big Grin


RE: Récupération de données propre à un joueur - Raoull - 23-11-2006

Oui c'est vrai que tu te connectes 2 fois ... c'est inutile et vraiement pas recommandé. Et ferme aussi ta connection à la fin de ton script (mysql_close()Wink !! C'est très très crade sinon !

Pour le meme nom... ca dépend si tu as fini d'utiliser le 1er resultat tu peux utilisre le même, mais c'est sur que par principe il vaut mieux donner des noms differnets et clairs, pour pas s'emmeler les pinceaux.

EDIT : hé oui ... c'est la fin de journée je n'ai plus tous mes reflexes Wink


RE: Récupération de données propre à un joueur - P0ulp0r - 23-11-2006

Merci pour ces réponses.

Bah le probleme, c'est que seul le script des ressources s'affichent. Le script de l'horloge, des echo classe, grade, usr_name ne s'affichent pas. Et je ne comprends pas pourquoi :S

J'ai modifié les variables pour éviter les memes noms, mais cela ne marche toujours pas.

Voici le screenshot de la page ou seul les ressources s'affichent:
http://ap0calypse.free.fr/bug.jpg

Merci


RE: Récupération de données propre à un joueur - Plume - 23-11-2006

Je me doutes bien que ça ne marche pas plus, je l'ai expliqué plus haut Smile
Pour le reste, je vais chercher Wink