Blog Tech

Script d’upload PHP propre et sécurisé

PHP (My)SQL 1
A ce point ?PassableIntéressantYeahExcellent! (9 vote(s), 3,89/ 5)
Loading...

But : créer un script d'envoi de fichiers PHP

Sur la toile le nombre de scripts d'envoi PHP (upload) est incalculable. La grande majorité de ces scripts est obsolète : mauvaise sécurité, crée pour une ancienne version de PHP et donc pas optimal, mauvaise logique de langage, etc.

Je vous propose de découvrir un script réalisé en PHP, et qui plus est en POO avec des classes, qui vous permet de réaliser ce formulaire d'envoi correctement. Je l'ai découvert sur le site de Miasmatech et j'avoue que les explications sont très pédagogiques et accessibles 🙂

Lire le tutoriel (version pdf mirroir)

Version spéciale de WordPress : Crazy Horse

PHP (My)SQL commenter
A ce point ?PassableIntéressantYeahExcellent! (Votez !)
Loading...

Il existe une version de WordPress un peu différente de la version officielle : WordPress Crazy Horse.

C'est une version dans laquelle les développeurs incorporent des fonctionnalités qu'ils verraient bien dans une future version définitive. On retrouve donc une interface de gestion différente, plus accessible (ajax) ainsi que de nombreux éléments bien pensés 🙂

Pour tester la démo rendez-vous ici (login : demo, password : demo).

SVN de WordPress Crazy Horse

Générateur de clés WordPress

PHP (My)SQL 1
A ce point ?PassableIntéressantYeahExcellent! (2 vote(s), 4,50/ 5)
Loading...

But : configurer les nouvelles clés de protections WordPress dues à la version 2.6

Si vous avez migré sur WordPress 2.6 vous devriez revoir votre fichier wp-config.php à la racine de votre blog.

En effet ce fichier a été complètement revu dans le but d'un support HTTPS (si votre serveur apache le supporte) pour la consultation et/ou l'administration. La SECRET_KEY n'existe plus, et ce au profit de 3 nouveaux champs :

define(’AUTH_KEY’, ‘mettez votre expression unique ici’);
define(’SECURE_AUTH_KEY’, ‘mettez votre expression unique ici’);
define(’LOGGED_IN_KEY’, ‘mettez votre expression unique ici’);

Le meilleur moyen de remplir ses champs n'est pas de faire appel à votre imagination, mais plutôt à un générateur aléatoire, qui plus est fourni par l'équipe de WordPress 🙂

Accéder au générateur WordPress
Plus d'infos sur ces clés via WP-France

Ral le bol des captcha

Dév 4
A ce point ?PassableIntéressantYeahExcellent! (2 vote(s), 3,50/ 5)
Loading...

Je pousse un petit coup de gueule qui s'adresse directement aux webmasters et développeurs d'applications internet.

Les captcha sont partout ! vous savez les codes qu'il vous faut retaper et qui ne sont lisibles qu'en ayant un torticoli ? Ils sont là pour empêcher de vilains robots de s'inscrire à des sites internet car les sites internet ne sont pas fait pour les robots mais les humains. D'ailleurs il est intéressant de noter que l'humain a créer l'informatique et donc ces robots, et qu'il doit désormais mettre un système de protection qui permet de se protéger de ses propres robots... la différenciation entre les deux étant pas facile.

Un captcha est-ce utile ? Oui, En effet si un système automatisé parvient à s'inscrire de manière automatique, il pourrait à ce moment là facilement réserver des tonnes de pseudonymes, ouvrir des adresses email à gogo et ainsi saturer un serveur en quelques minutes !

Ce que je remet en cause ce ne sont pas les captcha en eux mêmes ni leur fondement, car ils sont inévitables. Je suis d'ailleurs toujours étonné que personne n'ait trouvé de solution plus agréable que de faire forcer nos yeux et nos méninges pour retaper  un mot, cela relève bientôt du Da Vinci Code 🙂

J'arrive au centre de ma préoccupation, ne vous inquiétez pas. Imaginez que vous remplissez un formulaire  d'inscription contenant votre nom, prénom, email, pseudonyme, mot de passe souhaité, etc... puis vous tombez sur la case captcha que vous remplissez avec exactitude (bien que parfois cela relève du défi). Et là vous cliquez sur le bouton "Envoyer", soulagé d'avoir rempli tous les champs du formulaire.

Et là patatra ! On vous dit qu'un des champs est incorrect, ou bien que le pseudonyme existe déjà. Rebelotte on modifie le champ en question, et puis bien souvent on rentre à nouveau le mot de passe souhaité.

Vous êtes précisément à l'étape qui me gène : pourquoi demander à nouveau le mot de passe alors qu'il serait si simple de le mémoriser temporairement pour éviter au visiteur de le tapper à chaque erreur sur un champ du formulaire ? Vous continuez et vous retomber sur la case captcha 🙂

Alors là, c'est à nouveau la même problématique ! Pourquoi ne pas avoir mémorisé le fait que le premier captcha fut valide et de cette manière de ne pas demander cette vérification une deuxième fois ?

Voilà ce que je préconise pour pallier à tout ça par ordre de préférence :

  • mettre en place un système AJAX qui évite au visiteur de valider le formulaire si celui-ci contient des erreurs (pensez également à le faire pour le captcha !) On est à l'air du Web 2.0 ou bien on ne l'est pas 😉
  • mettre en place un système de sessions (en PHP par exemple) qui évite au visiteur à retaper les précédentes informations (pré-remplissage des formulaires avec l'attribut value="ma valeur")
  • mettre en place un système de cookie contenant un clé qui valide le fait que le captcha ait déjà été validé

Vous savez ce qu'il vous reste à faire 🙂

Merci de m'avoir lu jusqu'ici car les articles les plus longs ne sont pas forcément les meilleurs, mais ils ont le mérite de rentrer dans les détails. Les commentaires sont là pour receuillir vos avis 😉

Fonction PHP BR2NL(); inverse de NL2BR();

PHP (My)SQL 7
A ce point ?PassableIntéressantYeahExcellent! (Votez !)
Loading...

But : convertir les retours chariot en saut de ligne HTML

Sans doute usez-vous parfois de la fonction nl2br() de PHP ? Celle-ci est très utile lorsque vous récupérer des valeurs depuis une base de donnée vers des "textarea".

Pour le développement d'EG j'ai eu besoin d'utiliser la fonction inverse (suite à une migration j'ai du fusionner nos deux bases de données). Sauf que... celle-ci n'existe pas, la voici donc :

function br2nl($foo) {
return preg_replace("/\<br\s*\/?\>/i", "\n", $foo);
}

Si jamais vous avez le besoin de remplacer 2 "<br />" à la suite, voici le code :

preg_replace("/(<br\s*\/?\>){2,}/", "\n", $foo);

Détecter la version PHP installée

PHP (My)SQL 2
A ce point ?PassableIntéressantYeahExcellent! (Votez !)
Loading...

But : détecter la version de PHP interprétant le code source sur son serveur

Suivant les versions de PHP vos scripts peuvent plus ou moins fonctionner.

Je vous propose aujourd'hui une astuce permettant de détecter la version PHP mais également de préciser votre version minimale requise.

En effet j'ai déjà eu assez de surprises dans ce style, surtout lorsque vous fournissez un script qui peut-être réutilisé par d'autres personnes : source d'incompatibilité garantie.

Voici une fonction permettant de pallier à ce souci » Lire la suite

Ajouter les gravatars à WordPress (GlossyBlue)

PHP (My)SQL 12
A ce point ?PassableIntéressantYeahExcellent! (1 vote(s), 5,00/ 5)
Loading...

But : incorporer les gravatars aux commentaires laissés sur votre blog WordPress

Un "gravatar" c'est quoi ?

Vient de l'anglais Globally Recognized avatar (comprendre : avatar qui vous suit partout sur le web). C'est donc un avatar attaché à votre ou vos adresse(s) email(s). Comme ça peut paraître très "définition de dictionnaire", voici donc un exemple d'utilisation : vous postez un commentaire sur le blog de Mr Xhark avec votre pseudo, email et éventuellement site perso. Lorsque votre commentaire sera en ligne le blog ira automatiquement cherché votre Gravatar pour l'afficher 🙂

Comment cela fonctionne-t-il ?

Pour rattacher un avatar à votre adresse email il faut ouvrir un compte sur Gravatar.com : il vous suffit de préciser votre email et c'est terminé 🙂 Suivez l'assistant ensuite pour ajouter votre Gravatar dans votre compte.

Passons à l'intégration des Gravatars sur votre blog propulsé par WordPress 😉 » Lire la suite

BDD MySQL 5/6 acceptant connexions externes

PHP (My)SQL 2
A ce point ?PassableIntéressantYeahExcellent! (2 vote(s), 4,50/ 5)
Loading...

But : utiliser une base de données MySQL 5 ou 6 externe à un site, gratuitement

Bien évidemment lorsque vous avez un hébergement il y a une base de donnée MySQL. Prenons l'exemple de l'hébergeur Free qui le propose. Vous pouvez vous connecter uniquement à votre base de donnée depuis votre espace personnel Free, les connexions MySQL depuis l'extérieur ne sont pas autorisées : comme dans bien des cas !

Vous pouvez avoir besoin d'une base de donnée commune accessible depuis plusieurs noms de domaines mutualisés (Free ou autre) lors d'un projet commun par exemple. Vous pouvez aussi en avoir marre de la politique de Free à savoir : les bases de données ne doivent pas être utilisées à des fins de stockage (logs, statistiques...).

Le site "Databases for free"  propose  une base de donnée gratuite et sans aucune restriction d'accès ! De plus, depuis le 31 Mars 2008 vous avez le choix d'accéder à votre base de données avec MySQL 5 ou MySQL 6. Pour faciliter la gestion de vos données c'est PhpMyAdmin qui est utilisé comme interface.

Vous pouvez tout à fait accéder à votre base de donnée depuis un script PHP sur votre espace perso Free 😉

Accéder à DB4Free
Blog de DB4Free

Convertir date MySQL en PHP

PHP (My)SQL 8
A ce point ?PassableIntéressantYeahExcellent! (3 vote(s), 3,33/ 5)
Loading...

But : utiliser le champ DATETIME SQL et surtout récupérer une valeur exploitable en PHP

J'écris ce petit billet tout simplement car je vois souvent des scripts PHP traiter les dates dans des formats exotiques. Vous avez besoin de récupérer une date et une heure (ou l'un des deux) stockée dans votre base de données en PHP et vous ne savez pas comment faire ? Cette astuce est pour vous 🙂

Premièrement : utilisez le format » Lire la suite

Testez le rendu et la compatiblité du design de votre site

Dév, Graphisme, Internet 2
A ce point ?PassableIntéressantYeahExcellent! (1 vote(s), 4,00/ 5)
Loading...

But : vérifier que votre site internet s'affiche correctement sous de multiples navigateurs internet et systèmes d'exploitation

Si vous vous êtes déjà lancés dans la création de site internet un tant soit peu respectueux des standards du W3C, vous avez sans aucun doute du à un moment donné faire face à des incompatibilités.

En effet vous avez pu vous rendre compte que tous les navigateurs n'interprètent pas le code (X)HTML de la même façon, c'est en parti du au fait que le moteur d'interprétation graphique diffère selon les navigateurs (ex : Gecko pour Firefox).

Installer plusieurs navigateurs, c'est assez simple 🙂 Mais installer plusieurs systèmes d'exploitation devient nettement plus compliqué ! Ne vous fatiguez plus, je vous propose le site » Lire la suite