logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» [PHP] Amelioration d'un bout de script
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [PHP] Amelioration d'un bout de script  (Lu 4164 fois)
Bug_Bug

Profil challenge

Classement : 8531/55032

Néophyte
*
Hors ligne Hors ligne
Messages: 12


Voir le profil
« le: 14 Février 2008 à 16:47:55 »

Bonjour,

J'ai essayé de faire en PHP/MySQL un script qui permet de créer une table dans un BDD, et de faire une saisie à partir d'un petit formulaire puis insérer les informations dans la table.
Voici les scripts que j'ai essayés de faire:
install.php    http://rafb.net/p/nhS2Tk96.html
add_prof.php   http://rafb.net/p/8FwYFe25.html
insert_Prof.php   http://rafb.net/p/MX3VcN58.html

Je sais que j'ai mal codé ça (je débute en php), et il ya quelque problèmes :

Peut-on faire une améliorations en ce qui concernent l'utilisation de sessions pour le compteur du 1er champ d'une ligne dans la table Prof ( $_SESSION['cpt'] ),  que j'ai utiliser dans le fichier insert_Prof.php ?
Et aussi pour l'utilisation de sessions pour bloquer la recréation de la table si elle à déjà été créer. Je sais que c'est crade ce que j'ai fait, mais je n’ai pas trouvé d'autres solutions, donc si vous avez une idée, aidé moi

Je croie que le code est vulnérable au injections SQL, et au XSS ..., rien ne s'insért dans la table si je mets par exemple:    richard","A","B","C,"D")/*    dans le 1er champ du formulaire.

J'ai aussi un problème avec la fonction header() pour revenir à la page add_prof.php pour pouvoir saisir une nouvelle fois ! Si vous avez une meilleur idée que d'utiliser header, je suis preneur. (PS: je peux être intégrer la page insert_Prof.php avec la page add_prof.php ...).
La fonction header me donne ce warning:
Warning: Cannot modify header information - headers already sent by (output started at c:___\insert_prof.php:20) in c:\___\insert_prof.php on line 27

Enfin proposez moi svp des améliorations pour le code, c'est mon 1er code fait en php, et je sais que c'est vraiment mal codé

Merci.
« Dernière édition: 16 Avril 2009 à 08:26:46 par the lsd » Journalisée
NiklosKoda

Profil challenge

Classement : 164/55032

Membre Complet
***
Hors ligne Hors ligne
Messages: 113


Voir le profil
« #1 le: 14 Février 2008 à 20:11:09 »

Erf, ton post n'est pas très bien structuré je trouve.
J'ai du mal a savoir précisément ce que tu veux.

Quelles parties du code tu veux changer ?
D'ailleurs qu'est il censé faire ce code ? Créer une table et y insérer des données, ok, mais quelle est la structure de la table, quel type de données y insères tu, ton formulaire utilise il get ou post, tu parles de session, mais à quoi servent elles ... ?

Autant de questions qui font que les utilisateurs qui peuvent t'aider cerneront le problème rapidement et t'aideront effectivement, ou n'auront pas envie d'analyser le code pour t'aider car finalement ils n'y gagnent rien.

Citation
proposez moi svp des améliorations pour le code
Pour finir tu utilises l'impératif en fin de post, et je trouve ca assez incorrect.


Mais je vais quand même t'aider pour une de tes demandes, car j'ai planché dessus il y a peu de temps, et je l'ai encore en tête :
Citation
Et aussi pour l'utilisation de sessions pour bloquer la recréation de la table si elle à déjà été créer. Je sais que c'est crade ce que j'ai fait, mais je n’ai pas trouvé d'autres solutions, donc si vous avez une idée, aidé moi

Ce que tu veux c'est empécher la tentative de création de ta table, donc plutot que de tester une variable de session, tu peux directement tester si ta table existe.
Pour cela il te suffit de récupérer une liste des tables de ta bdd et de regarder si ta table est dans cette liste.

Pour t'aider dans tes recherches, voila deux moyens de récupérer une liste des tables d'une bdd :
  • la fonction mysql_list_tables()
  • la requète "SHOW TABLES FROM database"

Voila, à toi de faire le reste.
++
NiklosKoda
Journalisée
Bug_Bug

Profil challenge

Classement : 8531/55032

Néophyte
*
Hors ligne Hors ligne
Messages: 12


Voir le profil
« #2 le: 15 Février 2008 à 12:03:11 »

Ok, désolé si les questions n'étais très claires, j'avoue que j'ai écrit ça rapidement...
Merci pour votre aide, j'ai pu vérifié si la table existe dans la BDD en utilisant la requête SHOW TABLES FROM $dbname

Sinon, est ce que ça présente un avantage de mettre insert_Prof.php (la page qui permet de recupérer les $_POST saisis et les inserer dans la table) dans une page autre que add_prof.php (la page qui permet de saisir les donné à inserer à partir du formulaire), ou bien j'aurai du mettre le contenue de insert_Prof.php dans add_prof.php (une seul page quoi..) ?
à votre avis, est ce que c'est possible d'automatiser la page insert_Prof.php  pour n'importe quel formulaire, pas seulement pour celui de add_prof.php ?
« Dernière édition: 15 Février 2008 à 17:46:52 par Bug_Bug » Journalisée
Zmx

Profil challenge

Classement : 75/55032

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 559


Voir le profil WWW
« #3 le: 15 Février 2008 à 20:42:28 »

Sinon, est ce que ça présente un avantage de mettre insert_Prof.php (la page qui permet de recupérer les $_POST saisis et les inserer dans la table) dans une page autre que add_prof.php (la page qui permet de saisir les donné à inserer à partir du formulaire), ou bien j'aurai du mettre le contenue de insert_Prof.php dans add_prof.php (une seul page quoi..) ?
J'aime bien separer la mise en page (formulaire) du traitement de l'information. (bon j'ai pas regarder le contenu de insert_prof, mais j'espere qu'elle ne contient pas de html )

à votre avis, est ce que c'est possible d'automatiser la page insert_Prof.php  pour n'importe quel formulaire, pas seulement pour celui de add_prof.php ?
Oui, en passant des parametre caché comme le nom des table, des champ, etc, mais je pense pas que ça soit une bonne idée
Journalisée

Pages: [1]
  Imprimer  
 
Aller à: