Probleme Sur Création d'un jeux en ligne - PHP - Programmation
Marsh Posté le 01-02-2009 à 19:03:28
ouch
Marsh Posté le 01-02-2009 à 19:10:17
flo850 a écrit : ouch
|
Merci de ta réponse.
Je suis débutant et je comprend pas tout :
A quoi sert mysql_real_escape_string ?
Et j'ai essayer d'utiliser les mysql_fetch_array mis je ne sais pas comment
Marsh Posté le 01-02-2009 à 19:12:46
la doc de mysql_real_escape_string : http://fr2.php.net/manual/en/funct [...] string.php
les exemples pour mysql_fetch_array : http://fr2.php.net/manual/en/funct [...] -array.php
Marsh Posté le 01-02-2009 à 19:14:06
flo850 a écrit : la doc de mysql_real_escape_string : http://fr2.php.net/manual/en/funct [...] string.php |
Je vais voir ca
Marsh Posté le 01-02-2009 à 19:36:24
BbZ c0nnexion moka a écrit : |
Voila j'ai juste mit le mysql_fetch_row mais quoi mettre dans $données ??
while ($données = mysql_fetch_row($requete_pseudo);
{
if(isset ($_POST['form_login']) AND isset($_POST['choix'] ) AND isset ($_POST['form_passe']))
{
if ( $_POST['form_login'] != NULL AND $_POST['choix'] !=NULL AND $_POST['form_passe'] !=NULL )
{
if( ($_POST['form_login']) !== ($requete_pseudo))
{
echo ' domage ';
}
else
{
echo 'heyllo ' .$_POST['form_login']. ' .' ;
}
}
else
{
echo 'votre connexion a échouer, peut-être que vous n\'avez pas remplis touts les champs';
}
}
else
{
echo 'votre connexion a échouer pour une raison inconnue, réessailler plus tard';
}
}
Marsh Posté le 01-02-2009 à 19:53:35
en fait , tu as pas vraiment compris ce que tu faisais
essaye dans cet ordre
Code :
|
Marsh Posté le 01-02-2009 à 20:25:20
flo850 a écrit : en fait , tu as pas vraiment compris ce que tu faisais
|
ok merci je vais essayer ca
Marsh Posté le 02-02-2009 à 17:33:20
BbZ c0nnexion moka a écrit : |
Voila mon new code avec des commentaires. Juste 2-3 questions
Sui-je obliger d'utiliser mysql_fetch_row ? Je dois obligatoirement les mettre dans une boucle ? Si oui, où la placer ?
Code :
|
Marsh Posté le 03-02-2009 à 09:09:41
tu fais un jeu en ligne en étant débutant? bon courage...
Marsh Posté le 03-02-2009 à 09:38:26
BbZ c0nnexion moka a écrit : |
oui
pas forcement
je suis sur que tu peux trouver des tutoriaux plus clair que mex explications
Marsh Posté le 03-02-2009 à 13:24:44
SELECT passe FOR membres
Y'a rien qui vous choque??? Faudrait déjà à apprendre le SQL de base. C'est pas FOR mais FROM...
Marsh Posté le 03-02-2009 à 17:47:59
@rufo > j'allais dire pareil, mais tu a ete plus rapide
Marsh Posté le 03-02-2009 à 18:12:11
BbZ c0nnexion moka a écrit :
|
BbZ c0nnexion moka a écrit :
|
BbZ c0nnexion moka a écrit :
|
BbZ c0nnexion moka a écrit :
|
BbZ c0nnexion moka a écrit :
|
Faut vraiment que tu revoies les bases du langage SQL et de l'orthographe
Marsh Posté le 03-02-2009 à 18:49:18
je le ferait promis . mais quand dans l'inscription je m'inscrit ce me met dans le champ 'mdp' de phpmyadmin
8df56d630e88a66460da650242f19550 (mon mdp est censé être 123) 0_o quelqu'un peut m'aider ?
Marsh Posté le 03-02-2009 à 18:57:02
du coup quand je met
Code :
|
forcément ca va pas aller ...
Marsh Posté le 03-02-2009 à 19:01:46
c'est normal, le mot de passe est "hashé" en md5 (rechercher "md5" sur google).
Il faut donc hasher l'entrée de l'utilisateur en md5 puis la comparer avec le mdp enregistré dans la base.
Pour hasher une chaine en md5 en PHP :
Code : |
Marsh Posté le 03-02-2009 à 19:20:11
Donc j'ai juste a modifier la page d'inscription en mettent
Code :
|
Et idem pour le reste
Marsh Posté le 03-02-2009 à 19:21:34
non, seule le mot de passe est hashé ! il n'y a aucun intérêt à hasher un pseudo, surtout qu'il serait irrécupérable !
MD5 est irréversible !
Marsh Posté le 03-02-2009 à 19:27:08
OULALA tu me prévient juste a tent ! merci beaucoup !
mais pour le style (que je fait choisir sur liste déroulante), il se retrouve lui aussi haché
Marsh Posté le 03-02-2009 à 19:29:03
Voila mon code d'inscription (j'ai rajouté les md5)
Ca ne marche toujours pas !
Code :
|
Marsh Posté le 03-02-2009 à 19:45:39
fais attention a ne pas crypter plusieurs fois la même chaine !
Et n'utilise pas la fonction MD5 de mysql, tu devras échapper tes données avant, c'est dommage...
Autre chose : n'utilise pas addslashes qui n'échappe que les guillemets (et pas très bien ) mais mysql_real_escape_string() ;
Marsh Posté le 03-02-2009 à 19:48:24
Mais addslash est une fonction php et celle que tu m'a donné une mysql 0_o
Marsh Posté le 03-02-2009 à 19:50:17
non !
addslashes est une fonction de PHP.
mysql_real_escape_string est une fonction de PHP liée au module mysql
md5 peut être une fonction PHP si elle est appelée de cette façon :
Code : |
Et mysql si elle est appelée dans une requête.
Marsh Posté le 03-02-2009 à 19:53:34
A ok ca s'éclaircie maintenent ! Mais alors puisque j'ai utiliser md5 dans ma requete, pourquoi ca me met encore en hashé sur phpMyAdmin ??
Marsh Posté le 04-02-2009 à 09:43:57
ReplyMarsh Posté le 04-02-2009 à 13:33:50
ReplyMarsh Posté le 04-02-2009 à 13:52:04
pourquoi tu veux l'éviter? c'est un minimum de hasher/crypter un mot de passe en base...
Marsh Posté le 04-02-2009 à 13:59:57
soulmanto a écrit : pourquoi tu veux l'éviter? c'est un minimum de hasher/crypter un mot de passe en base... |
Oui mais quand je met
Code :
|
ca ne pourra pas marché puisque le client aura rentré son mdp (123 par exemple) et ds la BDD le mdp du client saura BF464864FJYE4886 par exemple
Marsh Posté le 04-02-2009 à 14:02:19
alors il faut faire :
if(md5($_POST['passe']) == $password_en_base)
Marsh Posté le 04-02-2009 à 14:09:57
$requete = mysql_querry('SELECT pseudo,passe FROM membres');
Va y avoir un pb. Du reste, php ne te jette pas avec un code pareil??? faut qu'un seul r à query et je serais curieux de savoir ce que tu penses que c'est sensé donné comme résultat quand tu fais :
if($_POST['pseudo'] AND $_POST['passe'] == $requete);
Marsh Posté le 04-02-2009 à 14:11:48
sérieux, avant de te lancer dans le codage d'un jeu, même simple :
1) apprends la modélisation de bases de données + SQL (parce que tu nous a pas montré ton MCD, mais s'il est de la même qualité que ton code, je pense que tu vas avoir des pbs par la suite...)
2) apprends le PHP
3) révises ton orthographe...
Marsh Posté le 04-02-2009 à 14:55:11
rufo a écrit : $requete = mysql_querry('SELECT pseudo,passe FROM membres'); |
bein la requete est (en francais)
selectioner le champ pseudo et e champ passe de la table 'membres'
et le if
si le mdp et le pseudo rentré sur la page de connexion est juste est égale au champ pseudo et au champ passe de la table membres, afficher le message
Marsh Posté le 04-02-2009 à 15:30:35
rufo a écrit : et je serais curieux de savoir ce que tu penses que c'est sensé donné comme résultat quand tu fais : |
Réponse :
BbZ c0nnexion moka a écrit : si le mdp et le pseudo rentré sur la page de connexion est juste est égale au champ pseudo et au champ passe de la table membres, afficher le message |
: http://www.php.net/manual/fr/langu [...] edence.php
Prend le tableau de cette page de haut en bas en mettant des parenthèses pour chaque élément que tu croises et dis nous si c'est bien ce que tu pensais.
En plus de ta superbe écriture qui revient à dire un truc du genre "si "prix de la maison" et "prix de la voiture" = "pile de facture" alors ...".
Marsh Posté le 04-02-2009 à 18:08:00
omega2 a écrit : |
omega2 a écrit : |
Mais comment il faudrait faire alors ??
Marsh Posté le 04-02-2009 à 19:32:18
ben
Code :
|
Franchement c'est trivial... Avant de te lancer dans quelque projet que ce soit, apprends au moins les bases du PHP, là tu ne comprends même pas ce que tu fais
Marsh Posté le 04-02-2009 à 20:02:44
Voilà mon nouveau code
Code :
|
PS: pour l'orthographe, les fautes sont faites 'expré', ce n'est que provisoire
PS²: J'ai pas eu besoin de md5, je me suis débrouiller pour que ca ne crypte pas ds la BDD
Marsh Posté le 05-02-2009 à 10:32:15
Vas lire des tutoriels et apprend.
Là, tu fais n'importe quoi sans savoir comment ça marche. Sans chercher à savoir comment sa marche d'ailleurs.
Marsh Posté le 05-02-2009 à 11:20:51
BbZ c0nnexion moka a écrit : Voilà mon nouveau code
|
Tu testes ton code avant de poster n'importe quoi ici ?
Parce que, là, ça m'étonnerait que ça fonctionne
=> Comme tout le monde : apprend les bases (de php, de SQL, du html, de l'algotithmie, etc.), lis des tutoriels, fais des tests sur des petites "applications".
Et prends aussi des cours de français, tes messages sont fatigants à déchiffrer
(Pour mémoire, rappel de la charte :
Citation : [12] Rédigez vos messages de manière lisible. |
)
Marsh Posté le 05-02-2009 à 13:09:46
$requete_passe = ('SELECT passe FROM membres');
$requete_login = ('SELECT login FROM membres');
Alors :
1) t'as pas besoin de faire 2 requêtes pour récupérer un pauvre login/mdp
2) là, tu récupères tous les logins/mdp de ta base. Utiliser le WHERE pourrait s'avérer utile...
Marsh Posté le 01-02-2009 à 19:00:25
alors j'ai un petit probleme concernent le php.
Je suis actuellement en train de créer un jeu en ligne avec un pote et j'ai un petit probleme pour la page d'inscription
Le probleme c'est que je rentre toujours le bon pseudo et ca m'affiche le message comme quoi je ne suis pas inscrit (message provisoire) = domage
[cpp]<?php
session_start();
require 'zone_membres_conf.php';
// connexion BDD
mysql_connect($mysql_host,$mysql_login,$mysql_passe) OR die('<p>Connexion impossible à la base de données. Réessayez plus tard.</p>');
mysql_select_db($mysql_base) OR die('<p>Impossible de sélectionner la base</p>');
$requete_pseudo = mysql_query(' SELECT pseudo FOR membres WHERE pseudo =' .$_POST['form_login']. '');
$requete_mdp = mysql_query(' SELECT passe FOR membres ');
$requete_style = mysql_query(' SELECT style FOR membres ');
$pseudo_login = mysql_query('SELECT pseudo, passe, style FOR membres');
$afficher_style = mysql_query('SELECT style FOR membres');
if(isset ($_POST['form_login']) AND isset($_POST['choix'] ) AND isset ($_POST['form_passe']))
{
if ( $_POST['form_login'] != NULL AND $_POST['choix'] !=NULL AND $_POST['form_passe'] !=NULL )
{
if( ($_POST['form_login']) !== ($requete_pseudo))
{
echo ' domage ';
}
else
{
echo 'heyllo ' .$_POST['form_login']. ' .' ;
}
}
else
{
echo 'votre connexion a échouer, peut-être que vous n\'avez pas remplis touts les champs';
}
}
else
{
echo 'votre connexion a échouer pour une raison inconnue, réessailler plus tard';
}
?>
[/ccp]