Question : comment vérifier, lors de la soumission d'un formulaire, qu'une valeur n'est pas déjà présente en base ?
Rappel : avec CakePHP, une règle existe déjà de base pour effectuer ce type de vérification :
'monchamp' => array(
'rule' => 'isUnique',
'message' => 'Nom déjà utilisé'
));
Solution : et maintenant, la solution que j'ai pondue (testée mais bon, on est pas à l'abri des erreurs alors si vous en voyez, hésitez pas à me le signaler).
j'espère que ce billet pourra éviter à certains de perdre une aprèm pour une broutille
j'ai voulu faire un script pour uploader un fichier (via un champ de type file dans un formulaire), stocker le contenu et le type mime du fichier en BD, puis affichage via une action dédiée
rien de sorcier à priori
sauf que mon image (puisque pour le coup je testais avec une image) ne s'affichait pas et j'avais son texte alternatif à la place
les en-têtes HTPP étaient OK et je recevais bien le contenu du fichier
Dans ce billet je vais vous présenter ma version de Lightbox qui permet de faire défiler les images automatiquement à la manière d'un diaporama. Mais pour commencer, petite introduction.
Lightbox
Lightbox est un script JavaScript d'affichage dynamique d'images : un clic sur un lien affiche l'image par dessus la page en cours (voir l'exemple du site officiel).
Au boulot hier je suis resté bloqué un moment sur un point dont la solution est toute bête, encore faut il la connaitre. Alors si ça peut vous éviter de tomber dans le panneau...
Situation :
- un fichier XML, enregistré en ISO, avec en-tête déclarant un charset ISO
- une BD en ISO
- un script PHP, dans un fichier en ISO
But :
parser le fichier XML et enregistrer les données en BD
Problème :
problème d'encodage au final dans la BD
Solution:
Après avoir tourné un grand moment en rond, testé moult solutions différentes et mis plusieurs fois en vrac mon X11, je suis enfin tombé sur LA solution qui a marché.
- Lancer la machine virtuelle
- Dans le menu en haut, aller dans "Périphériques" > "Installer les additions client"
- Une image CD montée apparait sur le bureau et l'explorateur vous affiche son contenu
- Lancer un terminal et entrer "cd /media/cdrom" puis "sudo bash ./VBoxLinux*"
- Attendre la fin de l'exécution et redémarrer
Il y a quelques jours est sortie la Release Candidate 1 de la branche 1.2 de CakePHP. Autant dire que ça sent la version finale...
Jusqu'à présent, pour être tenu au courant de l'arrivée de mails sur ma boite Gmail, j'utilisais l'extension Gmail Notifier pour Firefox, que je vous avais présentée dans ce post.
Mettre en ligne un formulaire quelqu'il soit (contact, livre d'or...) s'est être à peu près sûr de se faire massivement spammer, même si votre site n'a pas une audience très élevée.
L'un des remèdes utilisés généralement est le captcha (les caractères à lire sur une image et à saisir dans un champ texte). Sauf que déjà de base il va à l'encontre des principes de l'accessibilité du Web mais en plus, il marche tellement bien que parfois, quelqu'un qui veut utiliser votre formulaire ne le peut pas, faute de pouvoir lire correctement les caractères requis.
Un article fort intéressant vient d'être publié sur le site Developpez.com. Cet article rassemble un large panel de tests comparatifs sur les vitesses d'exécution de différents pans de code.
Pour les pressés, je vais vous résumer les grandes lignes qui ressortent de ces test. Vous pouvez lire l'article original ici.
Si vous l'avez manqué (bon c'est vrai que je l'ai pas imprimé à 50 000 exemplaires), vous pouvez retrouver le 1er round là (compte-rendu d'alternance, p.19 du fichier).
Mes avis ont-ils changé depuis la sortie de la 1.2 de CakePHP et depuis que j'ai utilisé d'autres fonctions de symfony ?

