ESPACEMEMBRES TK_2.0

codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 - 3 nov. 2008 à 10:21
cs_alex850701 Messages postés 3 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 28 octobre 2009 - 13 sept. 2009 à 19:47
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/48363-espacemembres-tk-2-0

cs_alex850701 Messages postés 3 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 28 octobre 2009
13 sept. 2009 à 19:47
Super !
cs_thekid06 Messages postés 23 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 30 septembre 2009
28 févr. 2009 à 22:13
Mais tout est permis ! lol
Modifie le script comme tu veux...

Bonne chance et bonne continuation !
Salazar4 Messages postés 3 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 23 janvier 2009
23 janv. 2009 à 21:39
Ca a l'air mieux comme ca

PS: Thekid

Je me suis permis de personnaliser ton systeme d'inscription

J'ai refait une page completement en XHTML avec ton Formulaire D'Inscription et j'ai rajouter un captcha

Puis j'ai cree une page avec du PHP et du XHTML qui contient un code pour verifier les captcha et les donnee , et qui previens si des champs manques etc... et qui insere automatiquement les donnéés dans la BDD si la creation de l'utilisateur a été reussi.
cs_thekid06 Messages postés 23 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 30 septembre 2009
11 janv. 2009 à 11:01
Voilà comme prévut quelques modifications (un peut tard mais vos mieux tard que jamais ^^)... Correction : Quand un membres (pseudo ou email) existe déjà on pouvait en créer un deuxieme maintenent c'est fini ! Et aussi comme m'as dit Salazar4 et je crois d'autre... Le session_start(); est avant tout !

Voilà ! @+
Salazar4 Messages postés 3 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 23 janvier 2009
22 nov. 2008 à 11:12
Oui

Sinon ton espace membre est bien configurer

Juste quelques conseils :)

Pour certaines pages il y a du XHTML et du CSS avant session_start
pour le CSS tu peus cree un fichier design.css et mettre le CSS dedans

Pour le code XHTML avant session_start tu peus le mettre apres
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
21 nov. 2008 à 13:41
bien vu...
toujours ouvrir la session avant d'envoyer quoi que ce soit au navigateur
Salazar4 Messages postés 3 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 23 janvier 2009
21 nov. 2008 à 12:43
Merci

Mais attention

avant session_start il y a du HTML et du CSS

Met ca apres session_start autrement il pourra y avoir des erreur ;)
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
11 nov. 2008 à 07:29
effectivement, c'est plus simple ;)
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
10 nov. 2008 à 23:28
... ou utiliser pdo ... ;)Avec pdo, un SELECT user FROM users WHERE login :Login AND passwd :Passwd; fonctionne sans problèmes !
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
10 nov. 2008 à 22:50
Re,
en fait, je me suis dit que plutôt que de dire: voilà, ton truc est nul, il faudrait aussi dire comment il faut faire. Mais pour éviter les critiques syntaxiques je vais le mettre en algorithme.

récuperer les champs login et mot_de_passe
vérifier que login ne contient pas d'apostrophe, guillemet, etc...
rechercher dans la BDD si l'utilisateur existe
si oui, on continue, sinon, on sort
extraire le mot de passe depuis le résultat précédent et le comparer avec le mot_de_passe
si correspondance, on continue, sinon, on sort

Comme ça, on évite les injexion SQL
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
10 nov. 2008 à 16:53
? et c'est tout?
Là je suis bleuffé...

Oui, c'est vrai, php4 est mort: vive php4...

J'ai un client qui a un site de vente sur php4 et pour lui, passer en php5 c'est l'horreur, car il faudrait reprendre tout le code...

Sinon, paraitrait que php.net est encore sous php4 aussi?... cherchez l'erreur
lol...
Mais bon, je suis d'accord, il faut d'urgence passer à php5; d'autant que php6 arrive...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
10 nov. 2008 à 15:51
Pour Php5 sur Free, tu n'as qu'a mettre un fichier .htaccess à la racine de ton site et mettre dedans :

php 1

C'est tout ! :p

Pour ce qui est de ton paragraphe sur php4, je me battrais à dire qu'il est temps d'aller de l'avant, php4 est mort, ca sert à rien de se borner à y rester ! :p
Donc aucune excuses pour PDO :p
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
10 nov. 2008 à 13:26
Heuu... je viens de me relire... désolé pour les fautes d'orthographes...
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
10 nov. 2008 à 13:22
???
comment ça il suffit de rajouter un .htaccess pour passer en php5???
Là tu m'en bouche un coin. Je veux bien que tu développe...

Sinon, je suis d'accord, la gestion de l'accès est sensible à l'injexion SQL.

Si je mets (texto, avec les apostrophe):
' OR '1'
dans le champs mot de passe, je suis connecté. Je ne sais pas sous quel utilisateur, mais en tout cas, le système me laisse rentrer

Autrement, PDO, je ne connais pas, surement que c'est bien, mais il existe encore parmis nous quelques malheureux qui travaillent sous php4 (contrainte client) et là... et ben il ne reste plus que les mysql_* ...

Pour rejoindre la remarque, il est possible pour les php4iens de se faire leurs propres classe d'abstraction de BDD, mais là on risque de se faire saquer pour la pauvreté des fonctions et contrôles et la non portabilité des classes, car souvent, on fait les classes comme on en a besoins, mais les besoins des autres sont différents.

Faire une vrais classe d'abstraction, utilisable par tout le monde est une entreprise très difficile et suppose d'avoir le temps et l'énergie pour le faire.

En conclusion, ce script ne me semble pas interessant, non pas parcequ'il n'à pas utilisé PDO ou parcequ'il n'à pas séparé le php du html, mais tout simplement parceque ce genre de procédure d'authentification est faite, refaite, surfaite et qu'à chaque fois le verdicte tombe:
injection SQL...
Donc messieurs... avant de vous lancer dans la publication fanfaronnante, merci de vérifier ce qui existe déja pour éviter de poluer un site à vocation innovante
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
4 nov. 2008 à 14:43
@TheKid06: PDO n'est pas une alternative à phpMyAdmin mais aux fonctions mysql. Il permet de se connecter aux bases de données de n'importe quel type de manière orienté objet. Ok Free tourne sous Php4 mais il suffit d'ajouter un fichier .htaccess pour que tu te retrouve sous Php5 avec tout ce qui va bien pour faire du bon boulot, DONT pdo.

Donc aucune excuses ;)

Pour ce qui est de la séparation, ne pas le faire rends difficile la maintenabilité et la pérénité d'une telle application. L'excuse de vouloir aider un débutant n'est pas valide, car trouver plusieurs fois le même code, devoir modifier 20 fichier pour adapter ton code à un design particulier n'est pas vraiment aidant pour un débutant.
A contrario, n'avoir qu'à modifier un fichier styles.css pour adapter ton travail à son design, je vois pas ce qu'il y a de plus simple.
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
4 nov. 2008 à 14:01
Re,

Je ne vois pas ce qui rend moins lisible un code séparé.

Un code bien séparé est forcément plus lisible qu'un code qui mélange tout les langages n'importe comment et pas indenté.

En tout cas c'est mon avis et je ne comprend vraiment pas pourquoi quelqun aurai plus de mal a changer une ligne ou a en ajouter une dans un fichier qui serai plus lisible.

Si c'est le cas, explique moi ton point de vu et argumente moi ce qui te fait dire ça !

a++
cs_thekid06 Messages postés 23 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 30 septembre 2009
4 nov. 2008 à 13:33
Déjà je n'utilise pas PDO car je suis chez free... J'ai une base phpMyAdmin...
Ensuite pour la reponse à "nicomilville" : '- Pas de séparation du contenue, le mieux pour avoir un code optimisé c'est de séparé le html, le css, le javascript et le php, la ce n'est pas le cas.' Je ne l'ai pas séparé car je voulais qu'il soit modifiable par nimporte qui... et pour ce qui ne le savent pas ajouter cette ligne dans le header pour chercher la feuille de style *.css :
<link rel="stylesheet" media="screen" type="text/css" title="titre" href="lien.css" />
...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
3 nov. 2008 à 11:17
En même temps j'ai posté un pavé, ca a mis du temps ;)
Mais t'a pas à t'excuser, je ne vois pas pourquoi tu devrais :p
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
3 nov. 2008 à 10:26
re,

désolé codefalse, j'avais pas vu ton message, il n'y était pas quand je suis arrivé !

a++
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
3 nov. 2008 à 10:23
Salut,

Rien qu'en regardant le code mis en exemple, j'ai des commentaires :

- Pas de séparation du contenue, le mieux pour avoir un code optimisé c'est de séparé le html, le css, le javascript et le php, la ce n'est pas le cas.

- session_is_requistered() c'est vieux et pas très sécurisé, utilise isset, ça marche mieux.

a++
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
3 nov. 2008 à 10:21
Attention je vais être méchant ...

Ton système d'identification est sujet à des attaques de type SQL Injection.
> $verif_querysprintf("SELECT * FROM users WHERE login='$login' AND pass='$pass'"); // requête sur la base administrateurs

Recherche des articles traitants du problème sur Internet, tu devrait trouver pourquoi ca ne vas pas et comment y remédier.

Ensuite, je commence à en avoir marre (c'est pas vraiment contre toi ca, mais contre tous ceux qui sont ciblés), ARRETEZ D'UTILISER LES FONCTIONS mysql_* RHAAAAAAAAAAAAAA
PDO est mieux, PDO est à jour, PDO est performant ! Pourquoi s'entêter avec mysql_* ??
Regardez du côté de :
http://php.net/pdo
http://blog.reflectiv.net/2008/07/23/les-fonctions-mysql_-sont-a-considerer-comme-obsoletes/
http://blog.reflectiv.net/2008/10/21/nutilisez-plus-les-fonctions-mysql_/

Ensuite, tu ne fait aucune vérification sur ce que donne tes requêtes SQL. Si une échoue, ton code va continuer à travailler et risque de faire un peu n'importe quoi !
Avec PDO, si tu définit une levée d'exception par erreurs, ton code sera bloqué et ca t'évitera des problèmes. Du coup tu adaptera ton code à réagir en cas d'erreur, AU CAS OU il y en as, et du coup il sera plus performant.

Quand tu développe ton application, fait le TOUJOURS avec error_reporting (E_ALL) afin d'avoir un maximum d'erreur, et enlève tous les fioritures qui apparaissent à l'écran (NOTICE, WARNING, etc). Si tu ne peux pas les enlever, c'est que ton code n'est pas bon.

Sépare tes fichier en fonctions de leur usage. Le css dans un style.css, le html dans un mapage.html et le code php dans un fichier.php.

Tu peux utiliser des moteurs de templates pour ajouter du contenu dans ta page html, mais franchement, si tu sépare le code html/css/js/php, et que tu fait un truc du genre :
mapage.html tu la renomme en mapage.php (mais tu la met dans la partie template)
et dans cette page, tu inclue : require_once ('mon_traitement.php'); et ensuite tu fait des
<?php foreach ($monTraitementSql as $content) {?>

<?php echo $content['text']; ?>

<?php } ?>

On t'en voudras pas trop. Tu peux mettre du php dans tes templates, tant que le php reste limité à de l'affichage, boucle et conditions.

Il pourra être ainsi considéré comme un moteur de template. Certain te diront que php n'a pas a être utilisé comme un moteur de template, mais d'après son créateur, c'est l'usage d'origine qu'il devait être fait de Php, donc, TU PEUX !

Enfin, et surtout, toutes ces remarques sont à propos de ton code, PAS CONTRE TOI ! Ne les prends pas comme des insultes, comme des "t'es qu'un nul et tu vaut rien !". C'est absolument pas vrai, en tant que dev, ton but est de t'améliorer. Prends les conseils que je t'ai donnée, retravaille ton code en conséquence, améliore le, et c'est ainsi que tu évoluera.

Courage !
Rejoignez-nous