Catégorie : Langages informatique

  • Mes débuts avec Codeigniter

    Mes débuts avec Codeigniter

    Bonjour,

    Depuis quelque temps je me suis mis à travailler avec le framework MVC PHP  » CodeIgniter « .

     

    Ce cadre de développement à été choisis car après de nombreux test j’ai réussi à le faire fonctionner sur mon intranet qui présente une particularité au niveau du serveur web (IIS 6.0, php 5.3.x, mySql). j’ai aussi testé le zend FrameWork et à l’arrivée de la version 2.0 j’ai jugé qu’il était urgent d’attendre.

    Je vous propose une suite de petits billets sur son utilisation au quotidien.

    Sans plus attendre son installation :
    À ce stade rien de bien sorcier, il suffit de se rendre sur le site et de télécharger la dernière version en date (la 2.1.3 à l’heure où j’écris ces lignes).
    On dézippe le tout sur son serveur.
    Pour ma part, l’environnement de dev et de prod sont identiques, réduisant le risque d’incompatibilité.

    Mon projet à une spécificité, je doit me connecter à 3 bdd différentes.

    • une mysql
    • deux firebirdSQL

    Nativement codeIgniter est capable de se connecter à toutes ces bdd mais pas simultanément à plusieurs types de bdd :), si vous n’avez pas compris les commentaires sont là pour ça.

    le principe du MVC est le suivant :

    • m = Modèle => relation avec la bdd,
    • v = Vue => ce que vois l’utilisateur final (le html)
    • c = Contrôleur => c’est une sorte de gare de triage entre ce qui viens de la vue et ce qui viens du modèle pour tout organiser.

    Suite au prochain épisode…

  • PHP 5.4 est disponible en Rc2

    C’est toujours Agréable de voir que le langage PHP poursuit son bonhomme de chemin sans prendre de retard.

    En effet le 24 Novembre la devteam à mis à disposition la Rc2 dans un timing prévu il y a maintenant plus de 6 mois (du jamais vu !!!). Au passage, on apprend que nous aurons droit à une Rc3 car de nombreux bugs ont été corrigés.

    Pas de grandes nouveauté comme l’indique Mageekblog à l’exception d’une fonctionnalité ajouté à SOAP.

    @plus Grand Maître L

  • Gerer les dates en php avec la class transDater

    Avec cette petite class je gère les dates plus facilement. Bien sûr on peut toujours l’améliorer pour lui rajouter la prise en charge de timestamp par exemple, je reste ouvert à vos suggestions.

    
    /**
     * transDater
     *
     * @package
     * @author luc
     * @copyright Copyright (c) 2012
     * @version $Id$
     * @access public
     */
    /* la date en entrée doit être valide mais pas de type timestamp */
    class TransDater {
    
        /**
         * TransDater::dateTransform()
         *
         * @param string $dateString
         * @param mixed $newDateFormat
         * @return
         */
        static function dateTransform($dateString = '01-01-1979', $newDateFormat) {
            if ($dateString && ($format = $newDateFormat)) {
                $date = new DateTime($dateString);
                return $date->format($format);
            }
            return (bool) false;
        }
    
        /**
         * *Si on récupère le numéro du mois de l'année on peut le transformer en nom en toutes lettres
         */
        static function monthTransformFr($date) {
            static $mois = array(
                '01' => 'janvier',
                '02' => 'fevrier',
                '03' => 'mars',
                '04' => 'avril',
                '05' => 'mai',
                '06' => 'juin',
                '07' => 'juillet',
                '08' => 'aout',
                '09' => 'septembre',
                '10' => 'octobre',
                '11' => 'novembre',
                '12' => 'decembre'
            );
            $m           = self::dateTransform($date, 'm');
    
            if (!empty($mois[$m])) {
                return (string) $mois[$m];
            }
        }
    
        /**
         * TransDater::dayWord()
         * @abstract Si on récupère le numéro du jour de l'année on peut le transformer en nom en toutes lettres (0->français,1->Anglais,2->Allemand)
         * @param mixed $date
         * @param mixed $int
         * @return
         */
        static function dayWord($date, $int) {
            $french  = array('dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi');
            $english = array('Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Monday');
            $german  = array('Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag', 'Montag');
            switch ($int) {
                case 0 : $day = $french;
                    break;
                case 1: $day = $english;
                    break;
                case 2: $day = $german;
                    break;
                default:
                    false;
            } // switch
            $d = self::dateTransform($date, 'w');
            if (!empty($day[$d])) {
                return (string) $day[$d];
            }
            return (bool) false;
        }
    
        /* fonction : bissextile */
    
        static function leapYear($date) {
            $date = self::dateTransform($date, 'y-m-d');
    
            if ((is_int($date / 4) && !is_int($date / 100)) || is_int($date / 400)) {
                return (bool) true;
            } else {
                return (bool) false;
            }
        }
    
        /**
         * TransDater::datePlusUnMois()
         *
         * @abstract fonction rajoutant un mois a une date
         * @param mixed $date
         * @return string date plus 1 mois
         */
        static function datePlusUnMois($date) {
            $newDate = new DateTime($date);
            $newDate->modify('+1 month');
    
            return (string) $newDate->format('Y-m-d');
        }
    
        /**
         * TransDater::dateMoinsUnJour(()
         *
         * @abstract fonction enlevant 1 jour à une date
         * @param mixed $date
         * @return string date moins 1 jour
         */
        static function dateMoinsUnJour($date) {
            $newDate = new DateTime($date);
    
            return $newDate->modify('-1 day');
        }
    
        /**
         * TransDater::age()
         *
         * @abstract Fonction pour calculer l'age
         * @param string  date de naissance type 'd/m/Y'
         * @param string  date à laquelle on veux calculer l'age
         * @return age /integer
         */
        static function age($date_naissance, $currentDate = NULL) {
            if ($date_naissance != NULL) {
                if ($currentDate == NULL) {
                    $currentDate = date('d/m/Y');
                }
            }
            $arr1 = explode('/', $date_naissance);
            $arr2 = explode('/', $currentDate);
            if (($arr1[1] < $arr2[1]) || (($arr1[1] == $arr2[1]) && ($arr1[0] <= $arr2[0]))) {
                return $arr2[2] - $arr1[2];
            }
            return (int) $arr2[2] - $arr1[2] - 1;
        }
    
        /**
         * returns the difference, in days, between two dates.  avoids the daylight's savings issue by using GMT
         */
        static function dateDiff($date1, $date2) {
            $date1 = date_parse($date1);
            $date2 = date_parse($date2);
            return ((gmmktime(0, 0, 0, $date1['month'], $date1['day'], $date1['year']) - gmmktime(0, 0, 0, $date2['month'], $date2['day'], $date2['year'])) / 3600 / 24);
        }
    
        /**
         * @name dateExcelToHuman()
         * @param string $date
         * @return string date
         */
        static function dateExcelToHuman($date) {
            $date = ($date - 25569) * 86400;
            return (string) date('Y-m-d H:i:s', $date);
        }
    
        /**
         * @abstract Returns elapsed time with human format in french
         *
         * @param     int The timestamp of the date
         * @return    string
         */
        public function elapsed_time($date) {
    
            $old_time = $date;
    
            // Current time
            $time = time();
    
            // Little check
            if ($time < $old_time) {
    
                return FALSE;
            }
    
            // Get seconds elapsed
            $seconds = round($time - $old_time);
    
            // Convert into minutes
            $minutes = round($seconds / 60);
    
            // Convert into hours
            $hours = round($minutes / 60);
    
            // Returns
            if ($hours >= 72) {
                return 'Le ' . date('d/m/Y', $old_time);
            } elseif ($hours >= 48 && $hours < 72) {
                return 'Avant Hier';
            } elseif ($hours >= 24 && $hours < 48) {
                return 'Hier';
            } elseif ($hours >= 1) {
                return 'Il y a ' . $hours . ' h';
            } elseif ($minutes >= 1) {
                return 'Il y a ' . $minutes . ' mn';
            } elseif ($seconds == 0) {
                return 'A l\'instant';
            } else {
                return 'Il y a ' . $seconds . ' s';
            }
        }
    
        static public function addSeconde(\DateTime $date, $seconde) {
            return self::addInterval($date, 'PT' . (int) $seconde . 'S');
        }
    
        static public function addMonth(\DateTime $date, $month) {
            return self::addInterval($date, 'P' . (int) $month . 'M');
        }
    
        static public function addDay(\DateTime $date, $day) {
            return self::addInterval($date, 'P' . (int) $day . 'D');
        }
    
        static public function addYear(\DateTime $date, $year) {
            return self::addInterval($date, 'P' . (int) $year . 'Y');
        }
    
        static public function addInterval(\DateTime $date, $value) {
            try {
                $interval = new \DateInterval($value);
                $date->add($interval);
            } catch (Exception $exc) {
                throw new \Exception(__METHOD__ . 'The format of $value is not valid (String) exemple : P55S (add 55 second) ');
            }
            return $date;
        }
    
    }
    
    

    à bientôt Grand maître L

  • Calculer l’apérage nécéssaire à la charge d’un accu lipo

    Grâce à petit code en javaScript Vous pouvez calculer la valeur optimale de charge de vos accus Lipo.

    function calculerValeurDeCharge(){
    var coefDeCharge = parseInt(document.getElementById('coefDeCharge').value, 10);
    var capacite = parseInt(document.getElementById('capacite').value, 10);
    
        var valeurRaisonable = 1.2;
            capacite /= 1000;
    
        if ((coefDeCharge && capacite ) != 0 ){
                var resultatTheorique = coefDeCharge * capacite;
                var resultatReel = (resultatTheorique)/coefDeCharge * valeurRaisonable;
            } 
            else 
            {
                alert('Merci de renseigner les valeurs');
        }
            alert('Voici la valeur de charge maximum thŽéorique : '+ resultatTheorique+' A');
            alert('Voici la valeur de charge recommandŽée : '+ resultatReel+' A');
    }

    Et voici le html :

    < !DOCTYPE html>
    <html lang="fr">
    <head>
     <meta charset="utf-8">
     <title>Charger des accus LiPo</title>
      <!-- meta -->
        <meta name="description" content=""/>
        <meta name="author" content="luc sanchez"/>
        
     </meta></head>    
     <body>       
                    <input type="number" min="1" max="12" id="coefDeCharge" value="2" />
                <input type="number" id="capacite" value="1110"/>
                <input type="submit" onclick="calculerValeurDeCharge();" name="Calculer"/>
                <script src="./js/accus.js"></script>
        </body>
     
    </html>
    

    Pour le voir en fonctionnement cliquez ici, voici la formule utilisée : (valeur de charge théorique / (capacité totale de l’accu/1000)) * 1,2 .

  • Php 5.4 Alpha 1, quand php renait de ces cendres…

    Php 5.4 Alpha 1, quand php renait de ces cendres…

    Une nouvelle mouture de notre langage de prédilection présente le bout de son nez. Malgré les apparences, il s’agit d’une version en réalité majeure. En effet, la mort de PHP6 il y a plus d’un an pour cause de problème d’intégrations de l’Unicode a chamboulé le planning.

    C’est pour cela qu’une version alpha vient d’être mise à disposition sur le SVN de PHP.net.

    Les contributeurs ne se sont pas endormis, car plus de 6 000 points ont été modifiés. De nombreuses idées de PHP6 ont été implémentées. Malheureusement, la bonne idée de l’Unicode a été repoussée sans date.

    Comment fonctionne PHP ?

    PHP est un langage de programmation impérative de type CGI, qui peut être utilisé en procédural ou orienté objet (POO). C’est un langage de haut niveau qui doit être exécuté par une machine spéciale pour fonctionner, généralement un serveur (cette exécution ne peut pas être accomplie par un navigateur, il en est incapable).

    Pour que le PHP soit interprété, il faut qu’on lui dise comment ; c’est le rôle du moteur de PHP, appelé Zend Engine.

    Ce moteur est écrit en C. C’est le cœur du langage ; c’est en fait lui qui évolue à chaque nouvelle version.

    Les nouveautés

    Principaux changement apportés

    safe_mode, register_globals et register_long_array sont définitivement supprimés de PHP. De quoi ravir les développeurs, qui n’aurons plus à réaliser toute une série de vérifications concernant ces directives de configuration.

    Pour le register_globals, on peut dire que c’est une vraie avancée en termes de sécurité, même si depuis de nombreuses versions cette fonction était désactivée par défaut dans le php.ini.

    Avec le register_globlals à « ON », on ne faisait pas de différence entre une variable superglobale et une variable « interne » : un vrai problème de sécurité, car on ne savait pas si une variable venait du site — et donc était fiable — ou de l’extérieur, et par conséquent potentiellement dangereuse.

    Concernant le safe_mode et register_long_array, la documentation de PHP indique en effet :

    Citation : Documentation PHP

    Cette fonctionnalité est OBSOLÈTE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l’utiliser.

    Les ajouts apportés à cette version

    Il est maintenant plus explicite de passer des arguments en références.

    Pour rappel, voici comment on passe un argument en référence avec PHP :

    Code : PHP – Soumission d’argument sous forme de référence

     <?php 
    function foo( & $var){
     $var++; 
    } 
    
    function & bar(){ 
    $a=5; return $a; 
    } 
    
    foo ( bar ()); 
    ?>

    Un passage par référence va modifier la variable inscrite en mémoire par une nouvelle version de cette variable, c’est le & devant $var qui le permet.

    Il est aussi possible de faire ceci, actuellement :

     <?php 
    myFunction(& $toto); 
    ?>

    Un simple avertissement est généré sous PHP 5.3. Désormais, avec PHP 5.4, le code plante et renvoie une erreur.

    Les traits

    Une nouvelle fonctionnalité (un conteneur) apparaît également : les traits. C’est un regroupement de méthodes qui peuvent être partagées entre différentes classes (ce qui est différent de l’héritage et des interfaces).

    Image utilisateur Plus d’informations sur les traits.

    Ajout du support d’Autoconf

    GNU Autoconf, livré avec PHP 5.4 dans sa version 6.59, est un outil permettant de générer des scripts shell qui configurent automatiquement les sources d’un logiciel dans l’optique de l’adapter aux systèmes UNIX (Linux, Mac OS X, etc.).

    Notez que Autoconf ne fait que configurer : il n’est pas nécessaire aux personnes exécutant le script d’avoir Autoconf installé sur leurs machines.

    Image utilisateur Plus d’information sur Autoconf.

    Image utilisateur Image utilisateur Description officielle d’Autoconf.

    La feuille de route

    • Le 28 juin 2011, la version alpha 1 sera publiée.
    • Le 26 juillet, ce sera au tour de l’alpha 2.
    • La version bêta sera livrée le 23 août.
    • Enfin, la version Relase Candidate n° 1 (RC 1) sera publiée le 20 septembre 2011.
    • Après cela, une version RC sera publiée toutes les deux semaines, jusqu’à la version stable.

    Les dates présentées ci-dessus sont cependant susceptible d’être modifiées.

    La communauté de PHP

    Tout comme la communauté de l’anneau, la communauté de PHP était lancée pour fait de grandes choses car elle était unie. Cependant, des divisions apparaissent régulièrement sur la gouvernance et la prise de décisions.

    On peut en gros la diviser en deux groupes : les contributeurs historiques et les nouveaux contributeurs.

    Les contributeurs historiques considèrent que l’évolution doit aller vers une stabilisation du langage, une éradication des bugs et une simplification, alors que les autres aimeraient que les nouveautés soient implémentées plus rapidement pour ne pas se retrouver à attendre trop longtemps des fonctionnalités qu’ils jugent essentielles pour programmer avec des méthodes modernes.

    La dissolution des développeurs de PHP n’est heureusement pas à l’ordre du jour, mais il manque pourtant un leader.

    Rasmus Lerdorf, le créateur de PHP, serait capable de dire où il faut aller, néanmoins, il se contente de prendre le rôle de médiateur. Cette situation a conduit à un drame (la mort de PHP6), de nombreuses leçons doivent donc en être tirées…

    Image utilisateur Vous pouvez trouver la liste complète des nouveautés de cette version en vous rendant ici.

    Sources

    <pre class= »brush:[php] »>
  • Qu’est-ce qu’Internet ? Episode 3

    Bonjour, Voici la dernière conférence comme promis :

    Qu'est-ce qu'Internet ? 3/3 – Conférence… par IUT-CERGY-PONTOISE

    Comment Internet à bouleversé notre vision du monde…

    @plus Grand Maître L

  • Installer Un Serveur web linux Fedora de A à www

    Tout au long de ce tutoriel je vais vous apprendre à installer un serveur web avec la distribution linux Fedora.

    Lorsque les commandes commencent par un $, c’est que je suis un simple utilisateur si non c’est un # et je suis un super utilisateur, dans tous les cas il ne faut pas recopier le $ ou le # pour exécuter la commande.

    Etape 1

    Etape 2

    Le gros avantage c’est que tout est en français, de plus l’installation permet d’utiliser la souris (Qui à dit que linux c’est compliqué ?).

    • Montage de l’image disque dans Virtual box ou installation sur une machine dédiée (dans ce cas il faut démarrer sur le cd).
    • Sélection du type d’installation : (je choisis de n’installer que le noyau et la couche réseau sans l’interface graphique)
    • Je décide d’ajouter « fedora 15 repository i-386 » en dépôt

    Etape 3

    • Redémarrage de la machine suite à l’installation de l’os
    • Redémarrage de l’interface réseau pour l’attribution d’une ip (commande : # service network restart)

    Création d’un utilisateur pour mes besoins personnels avec la commande :

    # adduser luc

    ensuite

    # passwd luc

    • Prise de connaissance de l’IP attribuée avec « ifconfig » en l’occurrence c’est l’ip 192.168.1.106 qui m’a été attribuée
    • Comme le protocole SSH est automatiquement disponible et pour avoir plus de confort notamment le copier collé je me connecte via le logiciel « Putty » (commande : ssh root@192.168.1.106 en tant qu’utilisateur root)
    • Je réalise une commande : « # yum update » pour être sûr d’avoir la dernière version de linux et des ces composants
    • Installation de man (manuel d’utilisation) avec la commande # yum install man
    • Installation de nano comme éditeur de texte # yum install nano
    • Comme la machine que j’utilise va être un serveur web il est judicieux quelle soit avec une IP fixe pour cela je me rend dans le dossier sysconfig avec la commande : $ cd /etc/sysconfig , je vérifie que la directive NETWORKING est à « yes » grâce à la commande $ nano network
    • Je me rends dans le dossier network-scripts puis dans le fichier ifcfg-eth0
    • (celui de la carte réseau) pour appliquer les réglages :

    DEVICE=eth0

    TYPE=Ethernet

    BOOTPROTO=none

    ONBOOT=yes

    USERCTL=yes

    IPADDR=192.168.1.106

    GATEWAY=192.168.1.254

    NETMASK=255.255.255.0

    DNS1= 212.27.40.240

    • Comme je veux que network soit lancé au démarrage de la machine j’utilise la commande : # su -lc ‘chkconfig network on’
    • Je redémarre ma machine pour appliquer les réglages avec la commande $ reboot
    • Apres le redémarrage j’exécute la commande $ ifconfig qui me renvoi :

    Link encap:Ethernet HWaddr 08:00:27:F7:DE:DD

    inet adr:192.168.1.106 Bcast:192.168.1.255 Masque:255.255.255.0

    adr inet6: 2a01:e35:8a50:5350:a00:27ff:fef7:dedd/64 Scope:Global

    adr inet6: fe80::a00:27ff:fef7:dedd/64 Scope:Lien

    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

    RX packets:47 errors:0 dropped:0 overruns:0 frame:0

    TX packets:42 errors:0 dropped:0 overruns:0 carrier:0

    collisions:0 lg file transmission:1000

    RX bytes:5565 (5.4 KiB) TX bytes:5485 (5.3 KiB)

     

    lo Link encap:Boucle locale

    inet adr:127.0.0.1 Masque:255.0.0.0

    adr inet6: ::1/128 Scope:Hôte

    UP LOOPBACK RUNNING MTU:16436 Metric:1

    RX packets:0 errors:0 dropped:0 overruns:0 frame:0

    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

    collisions:0 lg file transmission:0

    RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

    • Je peux ainsi constater que mes réglages IP ont bien été effectués

    Etape 3

    • Installation du serveur web apache avec la commande # yum install httpd
    • Installation du manuel de apache avec la commande # yum install httpd-manual
    • Installation du module ssl de apache avec la commande # yum install mod_ssl
    • Démarrage de apache, commande : # service httpd start
    • Comme je veux que apache soit lancé au démarrage de la machine j’utilise la commande : # su -lc ‘chkconfig httpd on’
    • Redémarrage de apache avec la commande # service httpd restart

    Etape 4

    • Pour que apache soit accessible depuis l’extérieur et opérationnel, il faut ouvrir le port 80. Je me rends dans le fichier iptables avec la commande

    # cd /etc/sysconfig et je rajoute la ligne :

    -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

    Comme mon fournisseur d’accès est free et qu’il gère l’ip v6 je fais de même dans le fichier ip6tables

    • Pour restreindre l’accès aux adresses ip de ma machine je modifie le ficher /etc/httpd/conf/httpd.conf et je modifie la directive par défaut suivante :

    Listen 80

    Par

    Listen 127.0.0.1:80 192.168.1.107:80

    On peut vérifier que le serveur écoute sur les bonnes adresses avec la commande :

    Netstat –an | grep 80 qui renvoie :

    tcp 0 0 192.168.1.107:80 0.0.0.0:* LISTEN

    tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN

     

    Etape 5

    • Dans le dossier /var/www je crée le dossiers suivant en utilisant la commande :

    # mkdir site1

    • comme les dossiers ont été créé par l’utilisateur root, il faut changer le propriétaire pour cela j’utilise la commande suivante :

    # chown luc:luc site1

    Je dois ensuite modifier les droits pour le dossier site1, pour cela je donne au propriétaire tous les droits, aux membres du groupe et aux autres les droits de lecture et d’accès.

    Je fais :

    # chmod 755 site

    • Avec la commande :

    # ll

    Je liste le contenu du répertoire www, je peux ainsi contrôler les droits et permissions de mes dossiers.

    drwxr-xr-x. 2 root root 4096 27 oct. 12:04 cgi-bin

    drwxr-xr-x. 3 root root 4096 22 janv. 19:19 error

    drwxr-xr-x. 2 root root 4096 23 janv. 17:33 html

    drwxr-xr-x. 3 root root 4096 22 janv. 19:19 icons

    drwxr-xr-x. 14 root root 4096 22 janv. 20:02 manual

    drwxr-xr-x. 2 luc luc 4096 27 janv. 21:32 site1

    Etape 6

    • Ajout des hôtes virtuels dans le dossier : /etc/httpd/conf.d

    Je crée le fichier virtualhost.conf avec la commande :

    # nano virtualhost.conf

    Et j’y inscris :

    <VirtualHost 127.0.0.1:80>

    DocumentRoot /var/www/site1

    <Directory /var/www/site1>

    Order allow,deny

    Allow from all

    </Directory>

    </VirtualHost>

    • Il faut maintenant créer les fichiers d’accueil à la racine de ces sites avec la commande :

    # nano site1/index.htm

    Comme c’est l’utilisateur root qui à créé ces fichiers, il faut que change le propriétaire avec les commandes :

    # chown -R luc:luc site1

    • Avec la commande more je m’assure que mes dossiers et les contenus sont conformes :

    # more site*/index.htm

    • En retour j’ai :

    ::::::::::::::

    site1/index.htm

    ::::::::::::::

    Coucou site 1

    ::::::::::::::

    • Je me rends ensuite dans le dossier site1 avec la commande :

    # cd site1

    • Le système de sécurité « SeLinux » à été problématique, il est installé d’origine sur fédora15, la doc n’est pas clair je dois modifier les capacités d’exécution des scriptes dans le dossier cgi-bin avec la commande # chcon –t httpd_sys_script_exec_t *.cgi

    Comme j’ai autorisé le ssh à s’exécuter je peux sans problème proposer à mes utilisateurs d’utiliser un logiciel comme FileZilla pour mettre à jours leur site, ils se connecteront via sftp avec leur compte utilisateur, ce sera beaucoup plus sécurisé et aussi efficace que d’utiliser le protocole ftp.

    Pour vérifier que mon travail est terminé et comme je n’ai pas d’interface graphique j’installe le navigateur en mode texte Lynx avec la commande # yum install lynx

    Je peux ainsi constater que mon travail est terminé.

    @bientot Grand Maître L

  • Qu’est-ce qu’Internet ? Episode 2

    Bonjour, Voici la deuxième conférence comme promis :
    Qu’est-ce qu’Internet ? 2/3 – Conférence…
    par IUT-CERGY-PONTOISE

    On reste sur une conférence très technique mais on commence à voir les enjeux…

    @plus Grand Maître L

  • Internet Explorer 9 est libéré

    C’est le 15 mars 2011 qu’Internet Explorer 9 (ie9 pour les intimes) est disponible en version final.

    logo d’Internet explorer 9
    Vous pourrez retrouver des informations dans cet article publié pour la sortie de la bêta publique. Microsoft nous à gâté avec un meilleur support de Html5 et de css3 ainsi que de nombreux corrections de bugs. Cette version réussi à faire un score de 95% au test acid3 là ou IE8 ne faisait que 17%. Cette version devra donc être plus appréciée des webmasters. Pour le télécharger c’est ici : http://www.microsoft.com/ Grand Maître L

  • Additioner des valeurs d’identifiants avec javascript

    Cette petite fonction est utilisée pour qu’un utilisateur réalise un devis en ligne.

    Je l’ai mise en œuvre sur le site du centre José Sanchez sur cette page d’abonnement.

    var total = 0;
    function addValue(checkBox){
      if(checkBox.checked) {
        total = total + parseInt(checkBox.value); // ajoute 
      }else{
        total = total - parseInt(checkBox.value); //retire   
     }
     document.getElementById("somme").innerHTML = total + "€";
    }
    
    
    
    
    
    
    

    Votre estimation Total 0

    Grand Maître L

  • Une fonction pratique pour vérifier la conformité d’un numero de téléphone en PHP

    En se moment je travail sur de petites fonctions bien pratiques que je pourrais réutiliser un peut partout dans mes projets.

    J’ai créé cette fonction pour répondre à un besoin simple et elle me satisfait

    Cette fonction renvoie true en cas de succès si non false.

    //fonction pour vérifier la conformité d'un numéro de tel Français
    function VerifTelFr($chaine){
    	$regex = "#^0[1-68]([-. ]?[0-9]{2}){4}$#";
    		if (preg_match($regex,$chaine)){
    					return true; 
    			} else {
    					return false;
    		}
    }
    

    @ bientôt Grand Maître L

  • Une fonction pratique pour controler un email en PHP

    Grace à cette petite fonction, vous serez en mesure de vérifier si l’email inscrit par votre visiteur est conforme. Pour cela j’utilise le « REGEX » ou « expressions régulières ».

    Cette fonction renvoie true en cas de succès si non false.

    //fonction pour vérifier l'orthographe d'un email
    function VerifEmail($chaine){
    	$regex = "#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#";
    		if (preg_match($regex,$chaine)) {
    					return true;
    			} else {
    					return false;
    		}
    }

    Grand Maître L

  • Prévalider un bouton radio en html et php

    Grâce à ce code il est possible de précocher dans un formulaire une valeur.

    Dans cet exemple on va utiliser un bouton radio.
    le html :

    <input name="sexe" type="radio" value="femme" /><?php echo $validf; ?> > Femme :
    <input name="sexe" type="radio" value="homme" /><?php echo $validh; ?> > Homme :

    le Php

    <?php 
    //ici on coche homme ou femme dans un bouton radio en récupérant les données de la bdd 
    if ($sexe == "femme"){ 
        $validf = "checked='checked'"; $validh = ""; 
    } elseif ($sexe == "homme"){ 
        $validf = ""; $validh = "checked='checked'"; 
    }

    Grand Maître L

  • Ici on discute de l’avenir de php

    Derrière ce titre pompeux se cache un blog qui à attiré mon attention depuis quelque temps.
    Il s’agit du blog de : Frédéric HARDY.
    Cette personne se charge de faire remonter les avancées de la communauté Php. Ces billets très intéressants permettent à tout un chaqu’un de mieux comprendre dans quelle direction tend à se développer le langage de programmation Php.

    Ces billets sont ponctué de « Mort de PHP6 + xx jours » où il explique comment les contributeurs du langage sont arrivé à cette situation et comment il comptent s’en sortir (très instructif).

    le blog : http://blog.mageekbox.net/

    @ bientôt grand Maître L

  • Une fonction en Php pour déterminer si un nombre et paire ou impaire

    Grâce à cette fonction on peut savoir si un nombre et paire ou impaire facilement.

    <?php 
    $numerotation = 5; 
    
    function PaireOuImpaire($numerotation)
    {
    	$numero = $numerotation%2;
    		   if ($numero == 0) 
    			 {
    			$paire_ou_impaire = true;
    		} else {
    			$paire_ou_impaire = false;
    			}	
    		return $paire_ou_impaire ;
    }
    ?>
    

    Je m’en sert pour colorer une ligne sur deux dans un tableau, par exemple si il renvoie 1 c’est en bleu et si c’est 2 c’est rouge.

    Dans l’exemple ci-dessus, il va me renvoyer : false .

    Grand maître L