Lettres


[Actu PHP] Lettre N.219 Dimanche 13 Mars 2005
************************************************************
L'actualit? PHP et MySQL
avec Nexen.net
http://www.nexen.net/
Dimanche 13 Mars 2005
************************************************************

Attention :
Cette lettre hebdomadaire est distribu?e aux personnes
qui se sont inscrites sur le site nexen.net, comme membres et
comme destinataires de cette lettre. Les instructions de
modifications sont disponibles en bas de ce mail.

Des commentaires? des questions? des informations ? sugg?rer?
Contactez l'?diteur de la lettre avec l'adresse indiqu?e en
bas de ce mail.

Edito
=====
Ca y est, j'ai une application ? coder, j'ouvre mon
?diteur et je m'appr?te ? ouvrir les balises. Je prend
avec moi ma convention de codage, pour ?crire proprement mon
code; mes consignes de s?curit?, avec une charte pour les
noms de variables et leur fiabilit?; les design patterns
pour organiser mes classes; les moteurs de gabarits
pour produire du code XHTML; le v?rificateur CSS pour
faire joli; les m?thodes de conception, les th?ories
de bases de donn?es, les couches d'abstractions, la
programmation orient?e aspect, la gestion des erreurs
et les bogues (pas les miens, puisque j'ai encore un
fichier vide).

Avec toutes ces th?ories, il devient facile de coder
comme un porc : n'importe quel script viable aura du
mal ? suivre simultan?ment tout d'un coup et donner
un r?sultat.

Ne vous m?prenez pas, je con?ois la valeur de ces
m?thodes, et je les applique moi-m?me souvent. Pour
vivre en soci?t?, il faut des r?gles, et ?a marche
aussi pour la programmation. On ne travaille plus
tout seul sur Internet (sic).

Mais je crois que je touche du doigt le probl?me
du n?ophyte qui, apr?s s'?tre lanc? seul et avoir
r?ussi un obscur script, souhaite passer ? un
niveau sup?rieur. Ce n'est plus l'embarras du
choix, c'est le choix des ambarras.

Allez zou, le formulaire mailera tout via JavaScript,
ca va me permettre de tout coder en dur.

Damien Seguy

Venez discuter sur le forum de la lettre hebdo :
http://www.nexen.net/forum/list.php?f=14

Site de la semaine
==================
PHP est le langage de programmation internet du pr?sent et de
l'avenir. G?n?rationÊPHP a donc pour but de vous faire d?couvrir
ce langage polyvalent.

Ce langage peut ?tre inclus directement au langage HTML ce qui
vous permet de cr?er des pages dynamiques apportant une toute
autre interactivit? ? votre site. Vous pouvez ?galement interagir
avec une multitude d'extensions et bases de donn?es.

Si vous d?butez, commencez ? apprendre PHP gr?ce ? nos cours. Et
pour les plus avanc?es, consultez le manuel pour de plus amples
renseignements sur les extensions et fonctions disponibles.

G?n?rationPHP
http://generationphp.net/index.php


******************** Publicit? ****************************
CD-ROM et DVD PHP Qu?bec 2003/2004

Le CD-ROM PHP Qu?bec 2004 contient plus de 19 heures
de conf?rences au format MP3 : vous trouverez aussi toutes
les pr?sentations des conf?renciers en format ?lectronique
pour accompagner la session. En bonus, nous avons ajout?
les 50 applications PHP les plus populaires, les derni?res
versions de PHP et la documentation PHP compl?te.

http://www.nexen.net/cdrom/index.php
******************** Publicit? ****************************


Au sommaire
===========
  • [1] Garder un site propre avec Smarty
  • [2] Standards de codage en PHP
  • [3] Actualit? de d?veloppement PEAR
  • [4] Alertes de s?curit? des applications PHP et MySQL
  • [5] Cr?er une interface MySQL
  • [6] Gubed d?bogueur pour PHP
  • [7] Actualit? de d?veloppement PECL
  • [8] SQL vers XML
  • [9] R?sum? de la semaine de d?veloppement PHP
  • [10] Construire une application de vote en ligne
  • [11] Conf?rence Dreamweaver PHP
  • [12] Cr?er facilement un site web multilingue avec Gettext
  • [13] PHP et CloudScape
  • [14] " ou '? L'optimisation qui ne sert ? rien
  • [15] Actualit? de d?veloppement PHP
  • [16] Mod?le objet de xoops
  • [17] G?n?rer du code PHP 5 avec Rational Rose et UML


  • Toute l'actualit? en d?tails :
    ===============================

    [1] Garder un site propre avec SmartyHaut ]
    ------------------------------------------------------------
    Le principal avantage de technologies comme HTML et CSS est
    qu'elles aident ? faire une s?paration claire entre le code
    et la pr?sentation. Pourtant, rares sont les applications
    qui en font un usage intelligent. Le moteur de gabarit
    Smarty peut vous aider ? combler ce probl?me.
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/13/4029,0,1,0,0.php3


    [2] Standards de codage en PHPHaut ]
    ------------------------------------------------------------
    Robert Peake publie un long monoblogue de 3 articles
    consacr? aux standards de codage. Les standards de codage
    diff?rent des conventions de code, qui organisent les
    instructions dans un script. Un standard de codage
    correspond ? une organisation g?n?rale d'une application,
    pour permettre une parall?lisation des t?ches en plusieurs
    sous-groupes. La r?partition classique est celle que
    pr?sente Robert :
    + Documentation automatique
    + S?paration du code de la pr?sentation
    + S?paration du code et du contenu
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/13/4028,0,1,0,0.php3


    [3] Actualit? de d?veloppement PEARHaut ]
    ------------------------------------------------------------
    15 paquets ont ?t? mis ? jour cette semaine :

    PHPUnit2 : Cadre de tests de r?gression
    DB : Couche d'abstraction de base de donn?es
    DB_Table : Bas? sur PEAR DB, avec des types de donn?es
    abstraits
    HTML_Form : Gestionnaire de formulaire simple
    Text_Wiki : R?gles de rendus et d'affichage abstraites pour
    les Wikis
    XML_RPC : Impl?mentation de XML-RPC
    DB_DataObject : G?n?rateur de dataobject, pour repr?senter
    une table SQL en PHP
    Numbers_Words : Ecrit les chiffres en toutes lettres
    Archive_Tar : Archives Tar
    DB_odbtp : Interface de base de donn?es avec ODBTP
    Games_Chess : Construction et validation d'un jeu d'?chec
    Image_XBM : Manipulation d'images XBM
    MDB2 : MDB2
    Net_Ident : Impl?mentation du protocole d'identification
    Services_Trackback : Classe g?n?rique pour envoyer des
    liens de retours

    PEAR est la biblioth?que de composants PHP.
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/13/4027,0,1,0,0.php3


    [4] Alertes de s?curit? des applications PHP et MySQLHaut ]
    ------------------------------------------------------------
    Attention ! MySQL fait l'objet d'une alerte de s?curit?
    importante. Lisez le document ci-dessous. La mise ? jour
    est disponible : MySQL 4.1.10a.

    PHP ne fait l'objet d'aucune alerte s?curit? dans sa
    version courante : 5.0.3 et 4.3.10

    26 alertes s?curit? ont ?t? ?mises cette semaine,
    concernant des applications :
    MySQL, Phorum, Xoops, PHPBB, WF-Section, WEBinsta,
    UBBCentral, PHP Arena, eXPerience2, PHP-Fusion, SocialMPN,
    McNews, SafeHTML, Jason Hines PHPWeblog, BTR CopperExport,
    paFileDB, PunBB, Drupal, YaBB, Stadtaus, phpGiftReg,
    Wotlab, Form Mail.

    + MySQL AB MySQL Multiple Remote Vulnerabilities
    + Phorum Unspecified Cross-Site Scripting Vulnerability
    + Xoops Custom Avatar Remote Arbitrary PHP File Upload
    Vulnerability

    + PHPBB Session.PHP Autologin User_Level Privilege
    Escalation Vulnerability
    http://online.securityfocus.com/bid/12736
    + Vulns: Drupal Unspecified Cross-Site Scripting
    Vulnerability
    Location: http://www.securityfocus.com/bid/12757?ref=rss
    + Vulns: YaBB Remote UsersRecentPosts Cross-Site Scripting
    Vulnerability
    Location: http://www.securityfocus.com/bid/12756?ref=rss
    + WF-Sections Input Validation Hole in 'wfsfiles.php' in
    'articleid' Parameter Lets Remote Users Inject SQL
    Commands
    Location:
    http://www.SecurityTracker.com/alerts/2005/Mar/1013412.html
    + WEBinsta Limbo Include File Flaw Lets Remote Users
    Execute Arbitrary Commands
    Location:
    http://www.SecurityTracker.com/alerts/2005/Mar/1013411.html
    + Vulns: UBBCentral UBB.threads Editpost.PHP SQL Injection
    Vulnerability
    Location: http://www.securityfocus.com/bid/12784?ref=rss
    + PHP Arena PAFileDB Multiple Remote Cross Site Scripting
    Vulnerabilities
    Location: http://online.securityfocus.com/bid/12758
    + PHP-Fusion BBCode IMG Tag Script Injection Vulnerability
    Location: http://online.securityfocus.com/bid/12751
    + Vulns: PHPOutsourcing Zorum Multiple Remote
    Vulnerabilities
    Location: http://www.securityfocus.com/bid/12777?ref=rss
    + eXPerience2 Multiples Vulnerabilities
    Location: http://www.net-security.org/vuln.php?id=4059
    + Vulns: SocialMPN Module Arbitrary Remote PHP File Include
    Vulnerability
    Location: http://www.securityfocus.com/bid/12774?ref=rss
    + Vulns: McNews Header.PHP Arbitrary File Include
    Vulnerability
    Location: http://www.securityfocus.com/bid/12776?ref=rss
    + SafeHTML Decimal HTML Entities Security Bypass
    Location: http://secunia.com/advisories/14403/
    + Jason Hines PHPWebLog Remote File Include Vulnerability
    Location: http://online.securityfocus.com/bid/12747
    + BRT CopperExport XP_Publish.PHP SQL Injection
    Vulnerability
    Location: http://online.securityfocus.com/bid/12740
    + phpMyFAQ Username SQL Injection Vulnerability
    Location: http://online.securityfocus.com/bid/12741
    + paFileDB Input Validation Hole in $pageurl Lets Remote
    Users Conduct Cross-Site Scripting Attacks
    Location:
    http://www.SecurityTracker.com/alerts/2005/Mar/1013405.html
    + BLOG:CMS PunBB SQL Injection Vulnerabilities
    Location: http://secunia.com/advisories/14538/
    + Stadtaus.Com PHP Form Mail Script Remote File Include
    Vulnerability
    Location: http://online.securityfocus.com/bid/12735
    + BugTraq: Re: phpGiftReq SQL Injection
    Location:
    http://www.securityfocus.com/archive/1/392485?ref=rss
    + Form Mail Script "script_root" File Inclusion
    Vulnerability
    Location: http://secunia.com/advisories/14505/
    + WoltLab Burning Board/Burning Board Lite Sessoin.PHP
    Multiple SQL Injection Vulnerabilities
    Location: http://online.securityfocus.com/bid/12718
    + D-Forum Nav.PHP3 Cross-Site Scripting Vulnerability
    Location: http://online.securityfocus.com/bid/12720
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/12/4026,0,1,0,0.php3


    [5] Cr?er une interface MySQLHaut ]
    ------------------------------------------------------------
    phpnoise vous propose de mettre en place une interface avec
    MySQL pour ?viter le code r?p?titif et laborieux pour
    rendre vos tables accessibles depuis un script PHP. Il
    s'agit d'une classe qui permet la connexion au serveur,
    l'envoi de requ?te, la lecture des r?sultats et la gestion
    des erreurs. De plus, elle se d?cline facilement pour
    s'adapter ? vos tables.
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/12/4025,0,1,0,0.php3


    [6] Gubed d?bogueur pour PHPHaut ]
    ------------------------------------------------------------
    A cot? de xdebug et apd, voici gubed (buged mais ?
    l'envers?), un d?bogueur pour PHP. Il s'agit d'un client de
    d?bogage plac? sur le serveur, qui prend en charge la
    requ?te Web, et vous permet de faire de l'ex?cution pas ?
    pas, et de voir le contenu des variables.

    Gubed dispose d'une interface avec Quanta, et d'un plug-in
    pour FireFox, pour d?boguer directement depuis le
    navigateur. Voila une bonne id?e.
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/12/4024,0,1,0,0.php3


    [7] Actualit? de d?veloppement PECLHaut ]
    ------------------------------------------------------------
    6 paquets ont ?t? mis ? jour cette semaine :

    PDO : Interface pour les Data Objects de PHP
    PDO_SQLITE : pilote PDO pour SQLite v3
    pecl_http : support ?tendu de HTTP
    maxdb : interface avec la base de donn?es MaxDB
    WinBinder : interface native avec Windows pour PHP
    newt : interface avec la biblioth?que graphique RedHat
    Newt

    PECL est la biblioth?que d'extensions C de PHP.
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/11/4023,0,1,0,0.php3


    [8] SQL vers XMLHaut ]
    ------------------------------------------------------------
    XML_sql2xml est un paquet PEAR qui vous permet de
    transformer une requ?te SQL en un fichier XML.

    Dans la version la plus simple, chaque colonne devient une
    balise, et contient la valeur lue dans le r?sultat SQL. Pour
    les jointures, le paquet est assez habile pour factoriser
    les donn?es communes, et fournir un 2?me niveau de
    hi?rarchie.

    Il serait surement int?ressant d'avoir aussi l'op?ration
    inverse, pour mettre en table un fichier XML ayant un
    formattage assimilable ? celui g?n?r? par XML_sql2xml.
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/10/4022,0,1,0,0.php3


    [9] R?sum? de la semaine de d?veloppement PHPHaut ]
    ------------------------------------------------------------
    Aaron Wormus publie le 36?me r?sum? de la semaine de
    d?veloppement PHP.

    + PEAR a 5 ans
    + PEAR 1.4 supporte la PEARification
    + PHP 5.1 : toujours discret
    + mcrypt dans la distribution officielle?
    + Prise en compte de bogues par PHP
    + Exceptions sur erreurs
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/10/4021,0,1,0,0.php3


    [10] Construire une application de vote en ligneHaut ]
    ------------------------------------------------------------
    Vikram Vaswani continue la s?rie pour les d?butants en PHP,
    et propose cette fois-ci la constitution d'une application
    compl?te : un syst?me de sondage. Le but est de mettre en
    oeuvre les differents concepts de PHP 5 pour une
    application r?elle. Vikram passe donc en revue les bases de
    donn?es, le sondage, l'exploitation des donn?es et la
    protection du double vote.
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/09/4020,0,1,0,0.php3


    [11] Conf?rence Dreamweaver PHPHaut ]
    ------------------------------------------------------------
    Yannick Bouvard, auteur du livre Dreamweaver MX avec
    PHP/MySQL et l'Association Fran?aise des Utilisateurs de
    PHP ont le plaisir de vous inviter ? une rencontre sur le
    sujet.

    L'espace d'une soir?e, notre auteur abordera les
    possibilit?s de d?veloppement rapide d'applications (RAD)
    dynamiques offertes par Dreamweaver. Les avantages et
    inconv?nients de cette solution seront discut?s ? b?tons
    rompus avec le public.

    Date : Le Jeudi 4 Avril 2005 ? partir de 20 heures
    Lieu : Espace FIAP JEAN MONNET - Paris
    ------------------------------------------------------------
    Yannick Bouvard (yeca@ultimteam.com)
    http://www.nexen.net/news/gen.php/2005/03/09/4019,0,1,0,0.php3


    [12] Cr?er facilement un site web multilingue avec GettextHaut ]
    ------------------------------------------------------------
    "Gettext est un programme destin? ? la gestion de
    langues; il n'a pas ?t? sp?cialement con?u pour faire des
    sites web, il peut ?galement ?tre utilis? dans le cas de
    programmes classiques, r?alis?s dans d'autres langages. Il
    s'agit d'un programme GNU et, par cons?quent, gratuit et
    libre. Pour ?tre plus pr?cis, gettext n'est pas vraiment
    "un seul" programme; il s'agit plut?t d'une
    suite d'applications (comme xgettext, msginit, msgmerge,
    etc..); pour plus d'informations je vous renvoie au manuel
    utilisateur officiel.

    Gettext pallie au probl?me de la m?thode ci-dessus en ne
    chargeant pas toutes les cha?nes en m?moire. En fait, nous
    aurons ?galement un fichier de langue. Il sera constitu? de
    paires identifiants/chaine, sous une forme qui sera
    compil?e avant utilisation. Lorsque une r?f?rence ? un
    identifiant sera trouv?e dans le fichier source, gettext
    ira chercher la cha?ne correspondante dans le fichier de
    langue. Ceci est certainement un tout petit peu plus
    gourmand en temps processeur (cependant cela reste tr?s
    rapide), mais permet ainsi de g?rer de tr?s larges sites
    web en plusieurs langues."
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/08/4018,0,1,0,0.php3


    [13] PHP et CloudScapeHaut ]
    ------------------------------------------------------------
    Apr?s les r?cents rapprochements entre IBM et Zend, vous
    vous demandez qu'est-ce que ce CloudScape, et comment
    est-ce que cette base de donn?es pourra vous aider? IBM
    avait anticip? les questions, et Dan Scott vient de publier
    un tutoriel sur PHP et CloudScape.

    L'article vous montre comment installer l'interface PHP
    pour CloudScape et IBM DB2, ainsi que les manipulations de
    bases et les limitations de uodbc pour PHP.
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/08/4017,0,1,0,0.php3


    [14] " ou '? L'optimisation qui ne sert ? rienHaut ]
    ------------------------------------------------------------
    Encore des discussions sur le choix ? faire entre les "
    et les '.

    Les guillemets doubles sont analys?s par PHP, et les
    variables qu'ils contiennent sont remplac?es dynamiquement
    par des valeurs. De son cot?, les guillemets simples sont
    du texte litt?ral, sans aucune variable dynamique.

    Nathan Wong relance le d?bat, et Harry Fueck pointe le
    guide d'optimisation de John Lim : pour une petite
    application, ' est un bon choix, mais pour une grande
    application, " doit ?tre la norme. A vous de juger.
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/08/4016,0,1,0,0.php3


    [15] Actualit? de d?veloppement PHPHaut ]
    ------------------------------------------------------------
    Aaron Wormus publie la 35?me ?dition du PHP Barn Stormer

    + Conf?rence du FOSDEM, en Belgique
    + Partenariat Zend-IBM
    + PEAR 1.4.0 alpha publi?
    + PHP 5.0.4 retard?
    + Probl?me d'arguments en 4.3.6 -> 10
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/07/4015,0,1,0,0.php3


    [16] Mod?le objet de xoopsHaut ]
    ------------------------------------------------------------
    "Le mod?le objet de xoops est bas? sur 2 classes
    XoopsObject et XoopsObjectHandler toutes les deux cod?es
    dans l fichier /kernel/object.php. Ces 2 classes forment la
    couche d'acc?s aux donn?es persistantes tel qu'elle est
    d?crite dans l DAO pattern. C'est en les sp?cialisant que
    l'on impl?mente le mod?le pour une entit? particuli?re
    (souvent associ? ? une seule table de BD) comme le font
    toutes les classes du r?pertoire kernel qui constitue le
    noyau de xoops. J'encourage fortement les programmeurs de
    nouveaux modules xoops s'appuyant sur des tables de BD ?
    utiliser ce mod?le. Le raisons sont multiples :
    uniformiser la mani?re de programmer, augmenter la
    lisibilit? du code et ainsi faciliter la maintenance mais
    aussi b?n?ficier d'un certain nombre de m?canismes g?n?riques
    utilisant ce mod?le."
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/07/4014,0,1,0,0.php3


    [17] G?n?rer du code PHP 5 avec Rational Rose et UMLHaut ]
    ------------------------------------------------------------
    RosePHPTool est un module pour Rational Rose. Avec ce
    module, vous pouvez g?n?rer du code PHP 5 ? partir de votre
    mod?le.

    Dans le cadre de nos d?veloppements, nous utilisons UML pour
    mod?liser nos applications et Rational Rose comme outil de
    mod?lisation. Pour nos besoins, nous avons d?velopp? un
    add-in Rational Rose en VBScriptÊpour g?n?rer
    automatiquementÊdu code PHP5. Nous avons d?pos? cet outil
    en license GPL sur le site sourceforget.net. Cet outil
    permet, ? partir du mod?le UML d?finit sous Rational
    Rose,Êde g?n?rer le code correspondant :

    -aux classes (prise en compte des classes abstraites)
    -aux h?ritages de classe
    -aux attributs de classe
    -aux m?thodes de classe
    -aux attributs traduisant des assocations entre classes
    (prise en compte de la navigabilit?)
    -aux commentaires des ?l?ments (classe, attribut,
    m?thode)Êsupport?s parÊPhpDocumentor
    -aux codes d'inclusion de fichiers contenant les classes
    d'h?ritage et d'association
    ------------------------------------------------------------
    http://www.nexen.net/news/gen.php/2005/03/07/4013,0,1,0,0.php3




    ***************************************************************
    La lettre hebdomadaire est relue par Pascal B?dard
    ***************************************************************
    Pour modifier votre abonnement ou vous d?sincrire :
    http://www.nexen.net/services/login.php?direction=diffusion.php

    Pour retrouver votre acc?s membre sur nexen.net :
    http://www.nexen.net/services/motperdu.php

    Pour devenir membre de nexen.net :
    http://www.nexen.net/services/login.php?direction=diffusion.php

    L'actualit? journali?re sur nexen.net :
    http://www.nexen.net/news/index.php

    Contact de l'?diteur
    damien.seguy@nexen.net
    ***************************************************************
    Cette lettre hebdomadaire est un un service de Nexen.net,
    portail technologique PHP et MySQL ?dit?e par la soci?t?
    Nexen Services SA au capital de 49.536 Euros
    inscrite au registre du commerce de Paris : RCS B 423 995 224