Il existe plusieurs manières, dans le controler, de faire une requête grâce à la fonction magique find().
Lire le reste de cet article »
Archives pour la catégorie Programmation
J’entame aujourd’hui une série d’articles concernant Ruby on Rails, le célèbre framework.
Cette série est initiée grâce à l’un de mes amis, Thomas, qui développe en Ruby depuis quelques temps maintenant avec une passion étonnante mais justifiée. Lire le reste de cet article »
Le HTML5 est la prochaine norme HTML du W3C, elle se présente à la fois comme le successeur de la norme 4 du HTML et de la norme 1 du XHTML.
Contrairement à ses ainés, qui se concentrent principalement sur l’aspect sémantique du contenu d’une page, une des révolutions du HTML 5 est qu’il apporte toute une série de nouveautés multimédia aux pages.
Le HTML5 offre un ensemble de composants qui permettent de gérer ce type de contenu sans avoir à faire appel à des plug-ins externes (comme Flash ou Silverlight).
Que ce soit pour la vidéo, le son ou encore le dessin vectoriel, une toute nouvelle gamme de balises ont été incorporées aux spécifications du HTML 5. Celles-ci nous permettent d’accéder à tout un monde auquel on n’osait aspirer tellement le HTML était vu comme un langage statique et faible en interactions.
A chaque fois que vous spécifiez une image d’arrière-plan dans votre CSS, prenez en compte ce qui peut arriver lorsque l’image est manquante.
S’il y a un texte au dessus de l’image, est-il toujours lisible ? Si non, spécifiez une couleur pour le navigateur pour l’utiliser à la place de l’image ainsi le texte deviendra lisible à nouveau. Lire le reste de cet article »
Ajouter un quoi ?
Il n’y a pas qu’un seul type de HTML, il y en a plusieurs : HTML 4.01 Strict, HTML 4.01 Transitionnel, XHTML 1.0 Strict, et d’autres encore. Tous ces types de HTML sont définis dans leurs spécifications respectives (en langage humain), mais ils sont également définis dans un langage compréhensible par les machines, qui précise la structure légale, les éléments et les attributs de chaque type de HTML. Lire le reste de cet article »
Connexion à MySQL
oct 23
Gagner du temps, c’est toujours intéressant.
Pour cela, il faut utiliser les fonctions, les classes et la POO.
Aujourd’hui, nous verrons une fonction simple et rapide : la connexion Php à une base MySQL.
<?
#############################################
## FONCTION DE CONNEXION A LA BASE DE DONNEES
function appel_base(){
$serveur = "localhost";
$user = "utilisateur";
$pass = "mot_de_passe";
$bdd = "nom_de_la_base";
$connect_db = mysql_connect($serveur, $user, $pass);
mysql_select_db($bdd,$connect_db);
mysql_query("SET NAMES UTF8");
}
?>
Comme nous le voyons, après avoir fourni les paramètres (serveur, user, pass et bdd), nous lançons la connexion.
Rien de très compliqué en somme, sauf que nous incluons tous les éléments dans une fonction…
Notez que j’utilise une requête pour passer en utf-8.
C’est pour la bonne raison que l’ensemble des pages (dans mon cas) est en utf-8.
Sans cette instruction, cela nous donnerait des caractères en « point d’interrogation » à la place des caractères accentués (à cause de la différence d’encodage 8 bits et 32 bits).
La fonction extract() est notre amie.
Toutes les variables sont récupérées, parsées dans un tableau et redonnées dans leur intitulé d’origine, pour cela pas besoin d’un script de 2000 lignes…
<? extract($_REQUEST,EXTR_SKIP); extract($_SERVER,EXTR_SKIP); extract($_ENV,EXTR_SKIP); extract($_GET,EXTR_SKIP); extract($_POST,EXTR_SKIP); extract($_SESSION,EXTR_SKIP); # etc. ?>
Certains diront que ça ajoute une couche d’insécurité (« tu comprends, après je te balance une injection en _GET et c’est fini. »), je suis d’accord pour les sites dont les algorithmes ne sont pas contrôlés, pour les autres : aucun problème puisqu’en bons professionnels, ils contrôlent toutes les variables traitées (n’est-ce-pas ? >)).
Ce n’est pas parce que les hébergeurs toussent qu’il nous faut prendre une veste !
Solution boiteuse mais couramment utilisé par les franco-français (fan de la norme iso-8859-1)
<?php
$str = strtr($str, ‘ÁÀÂÄÃÅÇÉÈÊËÍÏÎÌÑÓÒÔÖÕÚÙÛÜÝ’, ‘AAAAAACEEEEEIIIINOOOOOUUUUY’);
$str = strtr($str, ‘áàâäãåçéèêëíìîïñóòôöõúùûüýÿ’, ‘aaaaaaceeeeiiiinooooouuuuyy’);
?>
Solution qui fonctionne et utilisée par les développeurs internationaux (basé sur utf-8)
<?php
function suppression_accents($str, $charset=’utf-8′)
{
$str = htmlentities($str, ENT_NOQUOTES, $charset);
$str = preg_replace(‘#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml)\;#’, ‘\1′, $str);
$str = preg_replace(‘#\&([A-za-z]{2})(?:lig)\;#’, ‘\1′, $str);
$str = preg_replace(‘#\&[^;]+\;#’, », $str);
return $str;
}
?>
Pourquoi la première solution n’en est pas une ?
Je cite : « si … vous travaillez en utf-8, les caractères accentués sont bien souvent encodés avec plus de 8bits (un caractère), mais jusqu’à 32bits. Ainsi, les techniques basées sur une substitution de caractères (ndlr : strtr() )sont totalement obsolètes parce qu’elles produisent des résultats erronés. C’est triste, mais c’est vrai. »
source : WDBlog
Envoi d’email en Php
oct 21
function EnvoiEmail($Destinataire, $Sujet, $MessageTexte, $MessageHTML , $Expediteur, $AdresseRetour) {
$Codage = "_NextPart_".md5(uniqid(rand()));
$Entete = "Reply-to: ".$AdresseRetour."\n";
$Entete .= "From:".$Expediteur."\n";
$Entete .= "Date: ".date("l j F Y, G:i")."\n";
$Entete .= "MIME-Version: 1.0\n";
$Entete .= "Content-Type: multipart/alternative;\n";
$Entete .= " boundary=\"----=".$Codage."\"\n\n";
//--- Message au format Text
$Texte = "This is a multi-part message in MIME format.\n";
$Texte .= "Ceci est un message est au format MIME.\n";
$Texte .= "------=".$Codage."\n";
$Texte .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$Texte .= "Content-Transfer-Encoding: 8bit\n\n";
$Texte .= $MessageTexte."\n\n";
//--- Message au format HTML
$HTML = "------=".$Codage."\n";
$HTML .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$HTML .= "Content-Transfer-Encoding: 8bit\n\n";
$HTML .= $MessageHTML."\n\n\n------=".$Codage."\n";
return mail($Destinataire, $Sujet, $Texte.$HTML, $Entete);
}
Sinon, il existe toujours les classes qui gère l’envoi d’email sous tous les formats, par exemple : PhpMailer.
function encode_email($email='info@domain.com', $linkText='Contact Us', $attrs ='class="emailencoder"' ) { // remplace l'arobase et le point $email = str_replace('@', '@', $email); $email = str_replace('.', '.', $email); $email = str_split($email, 5); $linkText = str_replace('@', '@', $linkText); $linkText = str_replace('.', '.', $linkText); $linkText = str_split($linkText, 5); $part1 = '<a href="ma'; $part2 = 'ilto:'; $part3 = '" '. $attrs .' >'; $part4 = '</a>'; // generer le javascript $encoded = '<script type="text/javascript">'; $encoded .= "document.write('$part1');"; $encoded .= "document.write('$part2');"; foreach($email as $e) { $encoded .= "document.write('$e');"; } $encoded .= "document.write('$part3');"; foreach($linkText as $l) { $encoded .= "document.write('$l');"; } $encoded .= "document.write('$part4');"; $encoded .= '</script>'; return $encoded; }

Pendant longtemps, le préchargement d’images dans le cache du navigateur se faisait par le biais de Javascript. Beaucoup ont utilisé pendant longtemps des scripts tout droit en provenance de Dreamweaver avec la fonction MM_preloadImages().
Hors, il existe, bien entendu, une solution plus simple, plus accessible et plus rapide :
Créer un div qui contiendra les images en arrière plan avec l’astuce consistant à les cacher grâce à des dimensions nulles.
#preloadedImages {
width: 0px;
height: 0px;
display: inline;
background-image: url(mon_image1.png);
background-image: url(mon_image2.png);
background-image: url(mon_image3.png);
}
Petit guide .htaccess
oct 14

De tous les éléments de développement web, .htaccess est certainement le plus intimidant.
Après tout, c’est un outil incroyablement puissant, et l’un de ceux qui a le potentiel de détruire votre site si vous ne faites pas attention.
Nous allons voir quelques techniques et astuces permettant de bien démarrer avec .htaccess. Ce n’est pas aussi effrayant que cela et si vous étudiez le code quelques minutes, vous saisirez rapidement comment ça fonctionne et pourquoi.
Ensuite, nous verrons les points qu’il ne faut pas rater pour ne pas se créer des soucis supplémentaires lors de manipulation de .htaccess. Lire le reste de cet article »
Menu animé avec JQuery
oct 12
Ou comment ne plus utiliser Flash pour des besoins basiques !

Il suffit d’un client qui souhaite avoir un menu animé de façon aussi « smooth » (ndlr : le client veut-il dire « fluide » ?) que ce qu’on trouve avec Flash Player pour que l’utilisation du plug-in soit l’idée universelle. Hors, il n’en est rien. Flash Player n’est pas un passage obligé.
En voici la preuve.

Il est quelquefois pratique de grouper les éléments d’un menu/liste.
Certains développeurs utilisent des styles CSS imbriqués couplés à des espaces insécables ( ) sans savoir qu’ils réinventent la roue !
Cette roue trop souvent oubliée se nomme optgroup. Lire le reste de cet article »

Un effet de slide sur le background d’un menu. Possible qu’avec Flash ? Pas du tout !
ça s’appelle LavaLamp.

Voici le premier article d’une série intitulée « Guide pour un CMS puissant utilisant WordPress ».
A travers cet article, le focus sera mis sur de nombreux hacks, ideés et astuces WordPress.
Le lien vient de chez Noupe.com
Encore plus d’astuces ? Lisez Smashing Magazine et WPBeginner et ça.

… Dixit « le client », qui, d’une sobriété à toute épreuve n’en rajouta pas plus.
La réponse me fut donnée par Jarel Remick.
Un script simple et efficace qui fait effet pour peu d’effort. Que demander de mieux ?
C’est ici qu’il se trouve.

Jenna Smith, freelance britannique, nous présente un script basé sur JQuery. Ce script possède le double avantage de fonctionner avec et sans JavaScript.
Ça se passe ici.
Générer un flux RSS
sept 29
Un petit lien qui explique clairement et de façon détaillée la manière de créer un flux RSS en provenance d’une base MySQL.
C’est ici que ça se passe.

function encode_email($email='info@domain.com', $linkText='Contact Us',
$attrs ='class="emailencoder"' )
{
// remplace l'arobase et le point
$email = str_replace('@', '@', $email);
$email = str_replace('.', '.', $email);
$email = str_split($email, 5);
$linkText = str_replace('@', '@', $linkText);
$linkText = str_replace('.', '.', $linkText);
$linkText = str_split($linkText, 5);
$part1 = '<a href="ma';
$part2 = 'ilto:';
$part3 = '" '. $attrs .' >';
$part4 = '</a>';
// generer le javascript
$encoded = '<script type="text/javascript">';
$encoded .= "document.write('$part1');";
$encoded .= "document.write('$part2');";
foreach($email as $e)
{
$encoded .= "document.write('$e');";
}
$encoded .= "document.write('$part3');";
foreach($linkText as $l)
{
$encoded .= "document.write('$l');";
}
$encoded .= "document.write('$part4');";
$encoded .= '</script>';
return $encoded;
}

