Blog de Portekoi : Programmation et Astuces

Programmation Cobol, Php, Asp, Java et DotNet…

Php

Requêtes préparées avec Mysqli

Il y a de cela un petit moment, j’avais lu une discussion à propos des requêtes préparées. (prepared statements en anglais)

C’est quoi une requêtes préparée?

La vraie question serait : qu’est-ce qui la différencie d’une requête normale?

Sauvegarde d’une base Mysql avec ou sans les données

J’ai récemment été confronté à un dilemme : Pouvoir recréer en local ma structure de base de données rapidement afin de lancer des tests unitaires.

Le souci est que certaines tables sont des données « systèmes » alors que d’autres non dont je n’ai nullement besoin.

Par exemple, je n’ai pas besoin des données de ma table « commande », « client » et à l’inverse, j’ai besoin de ma table « produit » etc.

Voici un script qui permet de générer un fichier « .zip » et qui contiendra les X fichiers sql dont vous avez besoin.

Le premier appel permet de ne prendre que les tables sans les données.

Le second appel prendra TOUTES les tables SAUF celles chargées lors du premier appel.

<?php
//domaine.fr/back/
$path = $_SERVER["DOCUMENT_ROOT"] . ‘/back/’;

$table = array(
    "table1",
    "table2",
  […]

POO : Inclure des classes en PHP 5 via autoload

Lorsque l’on programme en POO en PHP sans framework et que l’on créé ses propres objets, on a tendance à empiler les « includes » en-tête des fichiers.

Heureusement, en PHP5, ils ont pensé à nous via la fonction « __autoload ».

, ,

Captcha simple mais efficace en PHP

Le pourquoi du comment :

Sur certains de mes sites, j’utilisais un captcha sous cette forme :

Combien font 1 + 3?

Mais les robots trouvaient parfois la bonne réponse sachant que cela n’était que des chiffres entre 1 et 18 maximum.

J’ai donc recréé un autre système plus performant composé de deux parties : La lettre dans un mot choisit de manière aléatoire et la présence d’un champ hidden « piégé »(1).
Pour la première solution, on le voit assez souvent sur le web et je trouve cela assez efficace mais j’ai préféré doubler la sécurité avec un champ caché.

Cela nous donnera donc ceci :

Quelle est la 2ième lettre du mot : Ordinateur

Pour pouvoir valider le formulaire, il faudra bien évidemment répondre […]

, ,

Superfish et Php

Vous désirez installer SuperFish sur votre site Php avec des menus provenant de votre base de données?

Rien de plus simple.

Un exemple ici :
http://www.portekoi.com/menu/index.php

Sur cette page, vous pourrez ajouter un menu très simplement là où vous le désirez.

Du côté de Php, il suffit :

1/ De créer la table qui contiendra notre menu :

CREATE TABLE `tab_menu` (
`m_id` bigint(20) NOT NULL auto_increment,
`m_title` varchar(40) NOT NULL,
`m_id_parent` bigint(20) NOT NULL,
`m_affiche` int(11) NOT NULL,
`m_profondeur` int(11) NOT NULL,
PRIMARY KEY (`m_id`)
) ENGINE=MyISAM AUTO_INCREMENT=29 DEFAULT CHARSET=latin1 AUTO_INCREMENT=29 ;

Une explication :

m_id : ID unique du menu
m_title : Titre (libellé) du menu
m_id_parent : ID du parent. 1 Si Titre principal / 0 pour le niveau invisible « Root »
m_affiche : […]