La POO c'est la programmation orientée objet et c'est ce qu'il faut quand on souhaite programmer de manière plus organisée et réutilisable. Tu as des cours à cette adresse :
Vu le nombre de commentaires tu est bien courageux de tous les prendre en compte. Essayes de te renseigner au niveau de la POO en PHP5 - ce serais un super bon début pour un débutant.
Bonne prog et à+,
akh
liptibilly
Messages postés15Date d'inscriptiondimanche 2 novembre 2008StatutMembreDernière intervention27 juin 2011 18 nov. 2008 à 16:16
desoler pour cet amalgam, je vais modifier mon code tout de suite, je ne suis qu'un debutant et quand j'écrit mes codes, je ne me soucie pas de la lisibilité car je le tape d'abord parce que j'an ai besoin et comme j'aii une bonne mémoire, je me souvient des chose à ouvrir, à fermer, nouveau post dans 6 jours... si tout vas bien
cs_lucas74
Messages postés18Date d'inscriptionmercredi 16 mai 2007StatutMembreDernière intervention10 février 2009 17 nov. 2008 à 19:35
Salut, l'idée est bonne mais :
1 - ton code PHP est mélangé à du HTML deprecated
2 - De ce fait il n'est pas "modulable" donc inutilisable
3 - dans ton fichier connection.php, tu hash en md5 $_POST password sans te soucier de son existence. Si le serveur qui héberge le script est bien configuré en ce qui concerne la gestion des erreurs (ce qui semble ne pas être ton cas), alors on a le droit à un E_NOTICE à chaque requête ne comprenant pas POST password.
4 - dans logout.php, tu affiches un message à la déconnexion ce qui est complètement inutile, puis tu rediriges avec Javascript ce qui ne fonctionne pas partout et peut paraitre "bête" sachant qu'un header('location: http..'); est beaucoup plus simple et ergonomique.
5 - Ton code, mal indenté, comporte des boucles inutiles (else { ceho ''; } ce qui ne sert à rien du tout, alourdit le script et contribue à son illisibilité).
6 - Pour vérifier la connexion, ce que tu fais, c'est pas l'idéal. Niveau perfs, c'est même risqué.
Déjà, admettons que l'on souhaite conserver ton fonctionnement, à chaque page visitée, tu liste TOUT les membres et compares à CHAQUE FOIS si les données correspondent. Tu pourrais simplement faire la requête avec à l'intérieur les logins et mots de passe (avec un WHERE) puis vérifier si la requête retourne un résultat avec mysql_num_rows($query).
Si tu voulais vraiment faire des économies, tu utiliserais la technique que je viens de proposer uniquement à la connexion, mais après tu vérifierais uniquement l'existence des sessions (non falsifiables car stockées sur le serveur !).
7 - alors le die(mysql_error()) c'est bien mais à retirer à tout prix avant la mise en production surtout pour la connexion à la DB. Tu peux révéler des informations sensibles au client.
8 - Pas de code HTML dans des echo çà ne sert à rien, et c'est moins lisible. En plus on ne peux pas bénéficier de la coloration syntaxique.
9 - D'ailleurs tu ne sépares aucune couche : MySQL, PHP et HTML sont complètement mélangés :/
Bonjour, malgré l'idée intéressante de ton script, aucune classe ou module réutilisable.
L'intérêt de cette classe aurait pu être la gestion en session ou cookies de l'état sécurisé mais même là tu ne traites pas le problème de vol de sessions.
L'intérêt de ton code est limité car pas utilisable en l'état - l'idée de faire une brique de gestion de la sécurité d'une application est parcontre super.
azqsazqs
Messages postés83Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention28 novembre 2010 16 nov. 2008 à 10:53
J'ai regardé 3 pages, voici ce que j'ai noté:
je comprend pas pourquoi il y a autant de pages. une seul page index.php c'est mieux, surtout au niveau sécurtité, là tu multiplie les page avec un accès a la bdd, et donc tu multiplie les risque d'être craqué (personnellement j'ai toujours une page publique avec accès a la bdd , le reste se fait à l'administration).
Certaines page (lien2, cryptmd5, logout) ont des codes si réduit que c'est dommage d'en faire des pages séparé, surtout que les contenus php de canevas et de index ont peu de différences
dernière chose, mais tout le monde ne le sait pas, pour les utilisateurs de free, il faut mettre un dossier "sessions" la racine du serveur, je te conseil de le mettre dans toutes des applications utilisant des sessions, ca évite qu'on te rappel en te disant "ca marche pas !"
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 15 nov. 2008 à 20:10
le md5 n'est pas une methode de cryptage mais de hashage.
19 nov. 2008 à 14:19
http://phpdebutant.org/article42.php
19 nov. 2008 à 13:52
18 nov. 2008 à 16:21
Vu le nombre de commentaires tu est bien courageux de tous les prendre en compte. Essayes de te renseigner au niveau de la POO en PHP5 - ce serais un super bon début pour un débutant.
Bonne prog et à+,
akh
18 nov. 2008 à 16:16
17 nov. 2008 à 19:35
1 - ton code PHP est mélangé à du HTML deprecated
2 - De ce fait il n'est pas "modulable" donc inutilisable
3 - dans ton fichier connection.php, tu hash en md5 $_POST password sans te soucier de son existence. Si le serveur qui héberge le script est bien configuré en ce qui concerne la gestion des erreurs (ce qui semble ne pas être ton cas), alors on a le droit à un E_NOTICE à chaque requête ne comprenant pas POST password.
4 - dans logout.php, tu affiches un message à la déconnexion ce qui est complètement inutile, puis tu rediriges avec Javascript ce qui ne fonctionne pas partout et peut paraitre "bête" sachant qu'un header('location: http..'); est beaucoup plus simple et ergonomique.
5 - Ton code, mal indenté, comporte des boucles inutiles (else { ceho ''; } ce qui ne sert à rien du tout, alourdit le script et contribue à son illisibilité).
6 - Pour vérifier la connexion, ce que tu fais, c'est pas l'idéal. Niveau perfs, c'est même risqué.
Déjà, admettons que l'on souhaite conserver ton fonctionnement, à chaque page visitée, tu liste TOUT les membres et compares à CHAQUE FOIS si les données correspondent. Tu pourrais simplement faire la requête avec à l'intérieur les logins et mots de passe (avec un WHERE) puis vérifier si la requête retourne un résultat avec mysql_num_rows($query).
Si tu voulais vraiment faire des économies, tu utiliserais la technique que je viens de proposer uniquement à la connexion, mais après tu vérifierais uniquement l'existence des sessions (non falsifiables car stockées sur le serveur !).
7 - alors le die(mysql_error()) c'est bien mais à retirer à tout prix avant la mise en production surtout pour la connexion à la DB. Tu peux révéler des informations sensibles au client.
8 - Pas de code HTML dans des echo çà ne sert à rien, et c'est moins lisible. En plus on ne peux pas bénéficier de la coloration syntaxique.
9 - D'ailleurs tu ne sépares aucune couche : MySQL, PHP et HTML sont complètement mélangés :/
17 nov. 2008 à 11:12
L'intérêt de cette classe aurait pu être la gestion en session ou cookies de l'état sécurisé mais même là tu ne traites pas le problème de vol de sessions.
L'intérêt de ton code est limité car pas utilisable en l'état - l'idée de faire une brique de gestion de la sécurité d'une application est parcontre super.
16 nov. 2008 à 10:53
je comprend pas pourquoi il y a autant de pages. une seul page index.php c'est mieux, surtout au niveau sécurtité, là tu multiplie les page avec un accès a la bdd, et donc tu multiplie les risque d'être craqué (personnellement j'ai toujours une page publique avec accès a la bdd , le reste se fait à l'administration).
Certaines page (lien2, cryptmd5, logout) ont des codes si réduit que c'est dommage d'en faire des pages séparé, surtout que les contenus php de canevas et de index ont peu de différences
dernière chose, mais tout le monde ne le sait pas, pour les utilisateurs de free, il faut mettre un dossier "sessions" la racine du serveur, je te conseil de le mettre dans toutes des applications utilisant des sessions, ca évite qu'on te rappel en te disant "ca marche pas !"
15 nov. 2008 à 20:10