Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LIVRE D'OR (PHP/MYSQL)


Information sur la source

Catégorie :Divers Classé sous : livre, or, mysql, simple, modifiable Niveau : Débutant Date de création : 22/12/2007 Date de mise à jour : 26/12/2007 16:37:29 Vu / téléchargé: 4 585 / 466

Note :
Aucune note

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

C'est un livre assez simple et administrable (c'est mon premier code que je publie).

Il y a plusieurs champs : pseudo, localisation, mail, mail_visible, date et le message.

Il faut au moins avoir rempli le message et le pseudo pour que le message s'enregistre. On peut indiquer si le mail sera visible ou pas. La date est automatiquement enregistré.

/!\ La partie administration doit être protégé par le fichier ".htaccess". /!\
 

Source

  • Tout est dans le zip. :)
Tout est dans le zip. :) 

Conclusion

Il y a surement des améliorations à faire, n'hésitez pas à commenter même si c'est un avis négatif.

Le look est simpliste mais on peut le modifier.

/!\ La partie administration doit être protégé par le fichier ".htaccess". /!\
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

22 décembre 2007 10:12:09 :
rien
23 décembre 2007 10:36:14 :
Cette mise à jour comprend : La correction du bug des "\". La suppression du sscanf. La correction de quelques erreurs de programme.
26 décembre 2007 16:37:29 :
J'ai ajouté un champ 'reponse_webmaster' dans la table. J'ai changé le nom de certaines variables pour plus de lisibilité. J'ai aussi corriger les erreurs XHTML. Les erreurs du à la base de données sont gérées de manière plus propre.

Commentaires et avis

signaler à un administrateur
Commentaire de yoman64 le 22/12/2007 23:43:26

Salut,
J'ai survolé rapidement le code et j'ai quelques remarques:
Premièrement bravo , tu penses a échapper les variables avant de les inséré , c'est malheureusemnet une erreur très courrante ici, mais toi tu y a pensé ^^.

Ensuite, pour les \ Un stripslashes() suffirait, mais tu dois vérifié si magic quote est a On sur le serveur parce que sinon tu risque de stripper des slashs qui sont dans le message au départ.


if(get_magic_quotes_gpc()==1)
{
//alors on utilise stripslashes()
}
else
{
//la variable est bonne
}



Tu t'es pas foué pour la gestion des erreurs , des or die() partout c'est pas beau :(

Ton sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde);
Moi je crois que tu devrais simplement stocker la date en timestamp, ensuite tu en fait ce que tu veux a la sortie.

@+

signaler à un administrateur
Commentaire de christo_59 le 23/12/2007 10:42:35

Salut,

Merci pour tes commentaires, j'ai pu amélioré ainsi mon code.

Pour le magic quote, il était bien à on sur mon seveur.

Pour le timestamp, je pense qu'il vaut mieux utiliser un type datetime dans la base. Ca me parait plus logique.

Il me reste plus qu'à supprimer ces "die()" pour améliorer le code.

Encore merci.

@+

signaler à un administrateur
Commentaire de malalam le 23/12/2007 13:10:24 administrateur CS

Hello,

quelques ajouts à faire : je ne dirai rien sur ce que je pense du code, il y en a des tas comme le tien, mais bon...c'est Noël...
En effet, tu as sécurisé un minimum ton code. Bien. Mais tu devrais privilégier mysql_real_escape_string() puisque ton code se destine à mysql. Et pas stripslashes() comme te le dit Yoman (ce qui n'est pas un mauvais conseil hein! C'est juste que ce n'est pas adpaté là) : mysql_real_escape_string() tient compte des spécificités de mysql, et évoluera avec cette API (si tant est qu'elle évolue...ce dont je doute fort! PDO est bien plus adaptée à la gestion des DB et à mon avis, elle se verra renforcé et mysql_* abandonnée tôt ou tard)., alors que stripslashes() ne tient compte que de PHP, qui échappe ses caractères dangereux avec un anti slash "\".
J'aurais quand même bien vu la possibilité d'utiliser n'importe quelle DB avec ton livre d'or. Certes...un livre d'or, c'est un code pour débutant, et les débutants ont la plupart du temps un hébergement avec mysql (c'est le plus courant). Donc ça se tient. Mais bon, pour des évolutions futures, éventuellement...
Ton HTML n'est absolument pas XHTML strict, malgré ce que tu "annonces" dans les headers HTMl que tu balances. Un transitionnal serait plus approprié.
Voilà voilà...

signaler à un administrateur
Commentaire de yoman64 le 23/12/2007 20:29:34

Salut malalam, il utilise déja mysql_escape_string avans l'insertion, moi je lui conseil le stripslash pour évtiter l'effet du magic quote sur les champs POST qu'il récupere,ce qui est le plus approprié puisque c'est PHP qui échappe les string, on doit donc rectifié avec la fonction php fait pour ça.Je ne disais pas de remplacé mysql_escape string par ça pour sécurisé l'insertion.

Parce que si un utilisateur poste Salut je m'appele bob.

Alors dans son code php a cause des magic_quote $message = Salut je m\'sappele bob.

Si tu y ajoute un mysql_escape string ça va donné Salut je m\\\'appele bob.
Ce qui donne un slash de trop
C'est pour quoi je lui ai dit d'utilisé stripslash si la fonction magic_quote est a ON.

Peut être ai-je mal compris ton message et ce n'est pas la que tu voulais en venir?

signaler à un administrateur
Commentaire de yoman64 le 23/12/2007 20:32:41

Dans le doute j'ai vérifié la doc , et ils conseille égallement l'utilisation de stripslashes avant d'appeler mysql_escape string

Doc: http://ca.php.net/manual/fr/function.mysql-real-escape-string.php


Citation:
Note: Si magic_quotes_gpc est activée, appliquez d'abord la fonction stripslashes() à vos données. Utiliser cette fonction sur des données qui ont déjà été protégées, les protègera une deuxième fois.

signaler à un administrateur
Commentaire de christo_59 le 23/12/2007 23:26:59

Bonjour,

MALALAM :

Le stripslashes() est utilisé que si le magic quote est on. Il supprime les \ puis je sécurise les données avec l'outil adapté à MySQL.

if (get_magic_quotes_gpc()==1) {
$message = mysql_real_escape_string(stripslashes( $_POST['message'])) ;
...
}
else{
$message = mysql_real_escape_string( $_POST['message']) ;
...
}

En ce qui concerne la posibilité d'utiliser d'autres base de données. Etant débutant, je préfère d'abord commencer avec une seule base que plusieurs mais j'amèliorer le code en ce sens.

Pour le XHTML, c'est un point que je vais amèliorer.

@+

signaler à un administrateur
Commentaire de malalam le 24/12/2007 07:56:38 administrateur CS

Oui oui j pensais addslashes() lol désolé.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Help !!! [ par curreli ] Bonjour,Je suis allé sur le site: www.phpguide.netJ'ai installé Easyphp tout fonctione !Mais: j'ai essayé un de leurs scripts: le livre d'or. le scrip PB: insertion des données saisies dans base mysql [ par spritzz ] je suis sous easyphp 1.7(php 4.3.3) en localhost, et j'ai un problème pour insérer des données dans ma base mysql, ca ne fonctionne pas si je laisse m Tableau avec php et données mysql [ par Alpha911 ] Bonjour,j'essais de faire un tableau dont les lignes s'ajustent en fonction du nombre de données exemple l'utilisateur 9 a effectué 4 emprun Mauvaise réponse MySQL [ par Evangun ] Bonjour à tous ! Mon pb en gros c'est que MySQL me renvoie une valeur quand je l'interroge par ma page php, alors qu'il ne devrait pas et que d'a Comment afficher le text dune DB sur plusieur ligne [ par dannyl ] Bonjour moi j'utilise Dreamweaver pour la création d'un site et j'aimerai affichier les information de ma DB, le probleme est que le text entré meme s Livre d'or : Problème PHP [ par Brice88100 ] Bonjour ...En fait je souhaites créer un livre d'or. Aujourd'hui je pensais l'avoir terminé et réussit mais plusieurs problèmes perssistes ... :1°) Lo Livre d'or et sécurité [ par spike666 ] Bonjour,J'ai un livre d'or assez simple mais je recois plein de message de spam dessus, n'y connaissant pas trop en php, j'ai quand meme reussis a blo Connection a phpmyadmin impossible ! [ par nicomilville ] Salut tout le monde, je vous écrit car j'ai un gros problème :J'ai mis la v2 de mon livre d'or sur wamp server en local pour pouvoir la débugger mais JSP & Mysql [ par chywy ] chywyBonjour tout le monde!je suis en cour de réaliser un site dynamique avec JSP en utilisant une base de données Mysql; mon probléme consiste dont l simple question. [ par Zebra1928 ] slt tous le monde je veux simplement comprendre c koi la différence entre @mysql_num_rows et mysql_num_rowsaussi entre @mysql_connect($host,$user,$p


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.