ESPACE MEMBRES

cs_GoW Messages postés 21 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 19 juin 2005 - 19 juin 2005 à 13:27
ehectsamira Messages postés 14 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 11 janvier 2008 - 11 juil. 2005 à 18:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/32163-espace-membres

ehectsamira Messages postés 14 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 11 janvier 2008
11 juil. 2005 à 18:33
salut
j'ai pas bin compris pwd a quoi sert c'est une base ou quoi
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
24 juin 2005 à 11:07
elles font en fait la même chose, sauf qu'aves mysql_escape_string, c'est le serveur mysql qui va bosser, alors qu'avec addslashes, c'est le serveur apache (php) qui fera le travail...
cs_dto Messages postés 70 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 20 septembre 2006
24 juin 2005 à 10:33
mysql_escape_string()
va protéger tous les caractères de la chaîne unescaped_string, pour pouvoir l'utiliser directement dans une requête mysql_query(). Elle retourne la chaîne modifiée.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 juin 2005 à 16:40
quels slashes de la requette ???

il n'y a aucun slashes dans une requettes !
massacr Messages postés 233 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 4 janvier 2007
23 juin 2005 à 15:42
Oui évidemment. Mais si je rajoute des slashes dans les variables, ne vont-ils pas interagir avec ceux de la requete ?
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 juin 2005 à 13:31
lol
le addslashes ne doit pas se faire sur la requette entière, on ne le fait que sur les variables... si on ne pouvait pas parer cette faille, mysql serait mort !
massacr Messages postés 233 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 4 janvier 2007
22 juin 2005 à 12:14
addslaches, je connais. Mais ca peut quand meme faire bugger MySQL (je fais mes requetes comme ceci : "INSERT INTO `libr_config` (login,email,mdp,titrsite,chemin,nom_base) VALUES ("$login","$email","$mdp_md5","$message136","$chemin","$nom_bdd")").

Qu'elle fonction mySQL peut corriger ca ?
cs_Isengard Messages postés 83 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 10 février 2006
22 juin 2005 à 10:38
Sylveur je crois pas epiknet c'est pas mon réseau

Mais comme l'a dit Massacr les cookies c'est parfois utile mais pas dans ce genre de cas ! C'est utile pour les informations qui doivent durer (le fait d'avoir voté à un sondage par exemple)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 juin 2005 à 09:04
utiliser une fonction mysql qui le fait... il y a aussi addslashes
massacr Messages postés 233 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 4 janvier 2007
21 juin 2005 à 16:50
lol Coucou747 !! C'est vrai que c'est dangereux. Dans mon éditeur de blog, j'ai interdit tout les caractères qui ne sont pas des lettres dans le login. Mais c'est contraingnant. Y a t-il une meilleure solution ?
sylveur Messages postés 63 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 31 janvier 2018
21 juin 2005 à 16:11
je suis dsl pour vous je suis débutan, ma premier source. mai merci pour vos remarque
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
21 juin 2005 à 13:55
C'est bien pour ca qu'on dit que c'est simpliste depuis le début :)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
21 juin 2005 à 11:16
PAGE LOGIN.PHP

$sql = 'select pwd from tbl_user where login=\'' . $login . '\'';

mon login sera :
';DROP DATABASE tbl_user;CREATE DATABASE moi;USE moi;CREATE TABLE crack(texte TEXT);INSERT INTO crack SET texte='AH AH AH AH AH, comment je t\'ai bien eu !!!
OniTalus Messages postés 39 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 20 juin 2005
20 juin 2005 à 19:17
Je sais pas pourquoi, mais j'ai une impression de deja vu dans un tuto.....
massacr Messages postés 233 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 4 janvier 2007
20 juin 2005 à 18:01
Les cookies ? Meme si certaines personnes ne les acceptent pas, c'est utile, mais à coupler avec les sessions. Donc, juste pour ne plus avoir à se loguer.

Sinon, la source n'est pas très complexe et serait plus à sa place dans le forum, avec une question que dans une source.
sylveur Messages postés 63 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 31 janvier 2018
20 juin 2005 à 17:54
isengard on se conner non? sur epiknet? non.
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
20 juin 2005 à 13:29
Ca relance les trous de sécurités... sans plus !

Après, pour répondre à Isengard, faire des header('Location:xxx.php') revient à quasiment la même chose, si ce n'est que sur chaque page, tu dois appeler les en-tête de page. Alors qu'avec un include, tu peux te permettre de les oublier, vu que tout est géré par un seul fichier maitre.
Niveau sécurité, suffit de faire un isset, suivi d'un switch.. et ca marche d'un coup.
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
20 juin 2005 à 13:10
Merci pour la réponce.
C'est pourris, non ?
@+
cs_Isengard Messages postés 83 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 10 février 2006
20 juin 2005 à 12:19
extract() ça sert à sortir les données d'un tableau
Avec extract($_POST); ca donne
$_POST['champ1'] devient $champ1
$_POST['champ2'] devient $champ2
etc...
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
20 juin 2005 à 11:50
Salut,
c'est quoi cette fonction extract($_POST); ????
elle sert à quoi ?
@+
cs_Isengard Messages postés 83 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 10 février 2006
20 juin 2005 à 09:24
Oublie les cookies, certaines personnes ne les accepte pas, utilise plutot les sessions comme dans ta source :)

Sinon au niveau du code ben trop rien à redire sauf que ca pourait être un tit peu amelioré... Au niveau de cette ligne :
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

C'est bien pour le développement mais pour la mise en ligne, faudrait mieux eviter de mettre mysql_error() car ça peut retourner des trucs confidentiels (noms de champs, structure de la base etc...)

Un autre ptit truc, je sais pas vous mais moi les includes ca me plait pas de trop :/ A la limite il faut mieux une page distincte avec un redirection vers chaque plutot que des includes. Je pense qu'au code et à la securité ca change rien, mais ce serait sans doute plus pratique à long terme.
sylveur Messages postés 63 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 31 janvier 2018
19 juin 2005 à 20:23
je voulai savoir commen métre des cookies et un access multiple user bien mieux que mon ta de boue. merci
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
19 juin 2005 à 15:15
Cool!
Faut pas oublier de hasher les pass à l'insertion et lors du etst:
avant:
if($data['pwd'] != $pass)
Mettre:
$pass = md5( $pass );

Je pense à d'autres trucs, :D
- <?php mieux que <? ( au niv de la portabilité entre serveurs )
- un addslashes sur le $login est nécessaire si tu comptes autoriser les ' dans les pseudos...

@++

R@f
sylveur Messages postés 63 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 31 janvier 2018
19 juin 2005 à 14:46
merci j'ai modifier
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
19 juin 2005 à 14:28
Salut!
QQ comments par rapport à ta table:
# CREATE TABLE tbl_user (
# id int(11) NOT NULL auto_increment,
# pseudo varchar(63) NOT NULL,
# login varchar(8) NOT NULL,
# pwd varchar(8) NOT NULL,
# PRIMARY KEY (id),
# KEY ID_2 (id)
# );

* Ca peut être pas mal d'utiliser id en unsigned
* Pk 63 pour le pseudo, pk pas 64?
* Pour ce qui est du password, normalement on utilise VARCHAR( 32 ). L'intérêt est d'utiliser la fonction md5 pour hasher les pass. Et la fonction md5 renvoie une chaîne de 32 caractères. Donc tu hash les pass lors de l'insertion dans la base. Quand un user veut se loger, tu hash son pass et tu compare avec ce qui est dans la base...

$sql = "select pwd from tbl_user where login='".$login."'";
Les " " sont plus lents que ' ' mais permettent l'inteprétation tu code ( echo "variable vaut: $variable"; ). Si tu utilise " ", autant utiliser cette possibilité, donc soit:
$sql = "select pwd from tbl_user where login='$login'";
Ou bien ( je préfère ):
$sql = 'select pwd from tbl_user where login=\'' . $login . '\'';

@++

R@f
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
19 juin 2005 à 13:43
"extract($_POST);"
Rien que ca, ca me fait frémir. Enfin bon...

"$sql = "select pwd from tbl_user where login='".$login."'";" Pourquoi ne pas faire directement :
$sql = "SELECT COUNT(*) FROM tbl_user WHERE login='".$login."' AND pwd = '".$pwd."' ")
?

Ensuite, jcomprend pas pourquoi les gens se font chier avec leurs "exit" à tout va. En plus, y'a de gros trou de sécurité avec $login et $pwd.

Reste encore un tas de truc à faire.
cs_GoW Messages postés 21 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 19 juin 2005
19 juin 2005 à 13:27
Lut sylveur.
J'ai remarqué une erreur dans verif.php ainsi que dans login.php:
Tu mets include('login.htm') alors que tu as nommé ta page en réalité 'login.html'.
Rien de grave ;).
Sinon je trouve le script un peu simpliste tu aurais pu mettre plus de chose une page affichant les membres, différents niveaux pour l'aministration etc ...
Je te souhaites une bonne continuation.
++
Rejoignez-nous