<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>geraudlacheny.fr</title>
	<atom:link href="http://www.geraudlacheny.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geraudlacheny.fr</link>
	<description>developpement web</description>
	<lastBuildDate>Fri, 26 Apr 2013 22:34:21 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Choisir entre MyISAM et InnoDB</title>
		<link>http://www.geraudlacheny.fr/choisir-entre-myisam-et-innodb/</link>
		<comments>http://www.geraudlacheny.fr/choisir-entre-myisam-et-innodb/#comments</comments>
		<pubDate>Fri, 15 Mar 2013 11:05:58 +0000</pubDate>
		<dc:creator>Géraud Lacheny</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[InnoDB]]></category>
		<category><![CDATA[MyISAM]]></category>
		<category><![CDATA[optimisation]]></category>

		<guid isPermaLink="false">http://www.geraudlacheny.fr/?p=741</guid>
		<description><![CDATA[<p>Toujours en recherche d&#8217;optimisation de mon code, je me suis penché sur le choix que l&#8217;on peut faire entre les 2 moteurs de stockage principaux d&#8217;une base de données MySQL : MyISAM et InnoDB. MyISAM vs InnoDB Si vous faites &#8230; <a href="http://www.geraudlacheny.fr/choisir-entre-myisam-et-innodb/">Lire la suite <span class="meta-nav">&#8594;</span></a></p><p>Cet article <a href="http://www.geraudlacheny.fr/choisir-entre-myisam-et-innodb/">Choisir entre MyISAM et InnoDB</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Toujours en recherche d&rsquo;optimisation de mon code, je me suis penché sur le choix que l&rsquo;on peut faire entre les 2 moteurs de stockage principaux d&rsquo;une base de données MySQL : <strong>MyISAM</strong> et <strong>InnoDB</strong>.<span id="more-741"></span></p>
<h1>MyISAM vs InnoDB</h1>
<p>Si vous faites des requêtes d&rsquo;insertion en masse et/ou de lecture sur une table, un choix s&rsquo;impose à vous : <strong>MyISAM</strong>. En effet, ce moteur permet de gagner en rapidité et en ressources. En revanche, celui-ci ne prend pas en compte les clés étrangères ni les transactions&#8230;<br />
<strong>InnoDB</strong>, quant à lui,<strong> </strong> gère parfaitement clés étrangères et transactions (instructions sql BEGIN, COMMIT, ROLLBACK &#8230;). Celui-ci possède également un système de récupération automatique en cas de crash et un modèle (ACID) qui font que les risques d&rsquo;erreurs sont impossibles, même en cas de panne !</p>
<h1>Test in vivo</h1>
<p>Ainsi sur une insertion de 300 entrées utilisant une boucle PHP,  je passe de 80 secondes à moins de 2 secondes en optant pour l&rsquo;utilisation de MyISAM : soit plus de 40 fois plus rapide ! Il n&rsquo;y a pas photo !</p>
<h1>Le changement du moteur de stockage, c&rsquo;est maintenant&#8230;</h1>
<p>Heureusement le choix du moteur n&rsquo;est jamais définitif. Il peut être changé dynamiquement avec la commande ALTER TABLE comme ceci :</p>
<pre class="brush: sql; gutter: true">ALTER TABLE table1 ENGINE=INNODB;
ALTER TABLE table2 ENGINE=MYISAM;</pre>
<p>&nbsp;</p>
<p>En résumé, il faut vraiment choisir le moteur à l&rsquo;utilisation que vous en faites, c&rsquo;est essentiel et incontournable !</p>
<p>&nbsp;</p>
<p>Cet article <a href="http://www.geraudlacheny.fr/choisir-entre-myisam-et-innodb/">Choisir entre MyISAM et InnoDB</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geraudlacheny.fr/choisir-entre-myisam-et-innodb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changer l&#8217;ordre des colonnes d&#8217;une base de données MySQL</title>
		<link>http://www.geraudlacheny.fr/changer-lordre-des-colonnes-dune-base-de-donnees-mysql/</link>
		<comments>http://www.geraudlacheny.fr/changer-lordre-des-colonnes-dune-base-de-donnees-mysql/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 12:59:30 +0000</pubDate>
		<dc:creator>Géraud Lacheny</dc:creator>
				<category><![CDATA[sql]]></category>
		<category><![CDATA[conception]]></category>
		<category><![CDATA[ordre]]></category>

		<guid isPermaLink="false">http://www.geraudlacheny.fr/?p=709</guid>
		<description><![CDATA[<p>Voila une petite astuce qui me permet d&#8217;être en paix avec moi même. N&#8217;étant pas un maniaque du rangement mais quand même, j&#8217;aime que l&#8217;ordre des colonnes de ma base de données soit dans le même ordre que dans ma &#8230; <a href="http://www.geraudlacheny.fr/changer-lordre-des-colonnes-dune-base-de-donnees-mysql/">Lire la suite <span class="meta-nav">&#8594;</span></a></p><p>Cet article <a href="http://www.geraudlacheny.fr/changer-lordre-des-colonnes-dune-base-de-donnees-mysql/">Changer l&rsquo;ordre des colonnes d&rsquo;une base de données MySQL</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Voila une petite astuce qui me permet d&rsquo;être en paix avec moi même. N&rsquo;étant pas un maniaque du rangement mais quand même, j&rsquo;aime que l&rsquo;ordre des colonnes de ma base de données soit dans le même ordre que dans ma Classe.<span id="more-709"></span></p>
<p>Ayant du reprendre une base déjà pré-remplie avec un ajout de colonne, il m&rsquo;était donc inconcevable de la laisser à la fin. Grâce à cette petite commande toute simple, mon esprit a pu être rasséréné :</p>
<pre class="brush: sql; gutter: true">ALTER TABLE `ma_table` MODIFY COLUMN `champ1` typedelacolonne AFTER `champ2`</pre>
<p>, sachant que typedelacolonne, c&rsquo;est par exemple VARCHAR(45) ou TEXT ou bien encore INT(11).</p>
<p>Valider le tout dans votre interface phpMyAdmin, et voilà, le tour est joué !</p>
<p>Cet article <a href="http://www.geraudlacheny.fr/changer-lordre-des-colonnes-dune-base-de-donnees-mysql/">Changer l&rsquo;ordre des colonnes d&rsquo;une base de données MySQL</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geraudlacheny.fr/changer-lordre-des-colonnes-dune-base-de-donnees-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Afficher les statistiques facebook en PHP</title>
		<link>http://www.geraudlacheny.fr/afficher-les-statistiques-facebook-en-php/</link>
		<comments>http://www.geraudlacheny.fr/afficher-les-statistiques-facebook-en-php/#comments</comments>
		<pubDate>Mon, 14 Jan 2013 13:10:49 +0000</pubDate>
		<dc:creator>Géraud Lacheny</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.geraudlacheny.fr/?p=672</guid>
		<description><![CDATA[<p>Je ne présente pas facebook, réseau social par excellence et ses 955 millions d&#8217;utilisateurs actifs. C&#8217;est un outil incontournable pour faire connaitre son activité. Il peut être pertinent pour le bloggeur de connaitre les statistiques de ses articles les plus &#8230; <a href="http://www.geraudlacheny.fr/afficher-les-statistiques-facebook-en-php/">Lire la suite <span class="meta-nav">&#8594;</span></a></p><p>Cet article <a href="http://www.geraudlacheny.fr/afficher-les-statistiques-facebook-en-php/">Afficher les statistiques facebook en PHP</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Je ne présente pas facebook, réseau social par excellence et ses 955 millions d&rsquo;utilisateurs actifs. C&rsquo;est un outil incontournable pour faire connaitre son activité. Il peut être pertinent pour le bloggeur de connaitre les statistiques de ses articles les plus aimé et/ou partagé en dehors de l&rsquo;application facebook elle même.<br />
Il existe un outil proposé par l&rsquo;équipe de développement facebook permettant d&rsquo;obtenir facilement ces données : il suffit pour cela d&rsquo;interroger le serveur en passant une requête de type SQL dans l&rsquo;URL mais avec des spécificités propre à facebook. Ce langage est ainsi nommé FQL (Facebook Query Language).<span id="more-672"></span></p>
<h2>Le langage FQL</h2>
<p>Même si dans ce langage, la construction d&rsquo;une &laquo;&nbsp;phrase&nbsp;&raquo; est assez simple, la documentation mise à disposition reste néanmoins importante pour comprendre les tenants et aboutissants du processus : <a title="https://developers.facebook.com/docs/technical-guides/fql/" href="https://developers.facebook.com/docs/technical-guides/fql/">https://developers.facebook.com/docs/technical-guides/fql/</a>. En effet, il n&rsquo;est pas autorisé de mettre plusieurs tables après le FROM par exemple.<a title="https://developers.facebook.com/docs/technical-guides/fql/" href="https://developers.facebook.com/docs/technical-guides/fql/"><br />
</a>Je me suis intéressé principalement à 2 statistiques : le nombre de j&rsquo;aime et le nombre de partage d&rsquo;une page web. En consultant un peu la liste des tables disponibles, on constate que la table la plus pertinente est la table &laquo;&nbsp;link_stat&nbsp;&raquo;.  Les colonnes intéressantes sont donc respectivement like_count et share_count.</p>
<h2>La requête FQL</h2>
<p>Cette requête est vraiment tout simple à construire. Constatez par vous-même :<br />
https://graph.facebook.com/fql?q={requête a placer ici sans les accolades et encodée de telle sorte qu&rsquo;il n&rsquo;y ait pas d&rsquo;espace ni de caractères spéciaux}</p>
<p>Ainsi, si je veux connaitre les &laquo;&nbsp;like&nbsp;&raquo; et &laquo;&nbsp;share&nbsp;&raquo; de mon site geraudlacheny.fr, je n&rsquo;ai qu&rsquo;à saisir dans la barre URL de mon navigateur :</p>
<p>https://graph.facebook.com/fql?q=SELECT+url,+share_count,+like_count+FROM+link_stat+WHERE+url=&rsquo;http://www.geraudlacheny.fr&rsquo;</p>
<p>N.B. : les &laquo;&nbsp;+&nbsp;&raquo; remplacent les &nbsp;&raquo; &nbsp;&raquo; (espaces) et permet d&rsquo;avoir une url encodée.</p>
<p>En retour, il affiche un objet JSON qu&rsquo;il faudra bien entendu traiter si l&rsquo;on souhaite sauvegarder ces données. Ce qui ouvre un champ des possibles fort interessant que j&rsquo;ai essayé d&rsquo;exploité pour ma part dans la création du plugin wordpress Advanced Blog Metrics disponible ici : <a href="http://wordpress.org/extend/plugins/advanced-blog-metrics/">Advanced Blog Metrics</a></p>
<p>Cet article <a href="http://www.geraudlacheny.fr/afficher-les-statistiques-facebook-en-php/">Afficher les statistiques facebook en PHP</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geraudlacheny.fr/afficher-les-statistiques-facebook-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eviter le spam</title>
		<link>http://www.geraudlacheny.fr/eviter-le-spam/</link>
		<comments>http://www.geraudlacheny.fr/eviter-le-spam/#comments</comments>
		<pubDate>Tue, 11 Dec 2012 19:16:11 +0000</pubDate>
		<dc:creator>Géraud Lacheny</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://www.geraudlacheny.fr/?p=638</guid>
		<description><![CDATA[<p>Impossible d'échapper aux robots néerlandais, lituaniens ou russes polluant votre boite mail. De par mes lectures sur le web, j'ai adopté une astuce que j'ai pu tester et qui fonctionne à merveille <a href="http://www.geraudlacheny.fr/eviter-le-spam/">Lire la suite <span class="meta-nav">&#8594;</span></a></p><p>Cet article <a href="http://www.geraudlacheny.fr/eviter-le-spam/">Eviter le spam</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Impossible d&rsquo;échapper aux robots néerlandais, lituaniens ou russes polluant votre boite mail de spams par milliers. De par mes lectures sur le web, j&rsquo;ai adopté une astuce que j&rsquo;ai pu tester et qui fonctionne à merveille.<span id="more-638"></span></p>
<p>il suffit simplement d&rsquo;ajouter un input de type texte et d&rsquo;appliquer un style afin qu&rsquo;il soit invisible à l’œil de l&rsquo;internaute mais non à l’œil du robot :</p>
<pre class="brush: html; gutter: true">&lt;form name=&quot;form&quot; action=&quot;votrepage.php&quot; method=&quot;post&quot;&gt;
     &lt;input type=&quot;text&quot; name=&quot;host&quot; id=&quot;host&quot; value=&quot;&quot; style=&quot;display:none&quot; /&gt;
     &lt;input type=&quot;submit&quot; name=&quot;sub&quot; value=&quot;Soumettre&quot; /&gt;
&lt;/form&gt;</pre>
<p>Vous l&rsquo;aurez vite compris, Il suffit donc, dans le traitement du formulaire, de tester la valeur que renvoie $_POST['host'] ou $_GET['host'] en fonction du choix que vous avez fait pour la méthode de soumission du formulaire:</p>
<pre class="brush: php; gutter: true">if(isset($_POST[&#039;host&#039;] &amp;&amp; empty($_POST[&#039;host&#039;])) 
   // traitement en cas d&#039;erreur
}</pre>
<p>En effet, si celui-ci n&rsquo;est pas vide, il a obligatoirement été rempli par un vilain robot !</p>
<p>N&rsquo;hésitez pas à tester cette petite astuce qui est facile à implémenter dans vos projets et surtout beaucoup plus beau (puisqu&rsquo;invisible) qu&rsquo;un Captcha et à me faire part de votre expérience !</p>
<p>Cet article <a href="http://www.geraudlacheny.fr/eviter-le-spam/">Eviter le spam</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geraudlacheny.fr/eviter-le-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redimensionner un textarea</title>
		<link>http://www.geraudlacheny.fr/redimensionner-un-textarea/</link>
		<comments>http://www.geraudlacheny.fr/redimensionner-un-textarea/#comments</comments>
		<pubDate>Wed, 31 Oct 2012 01:05:50 +0000</pubDate>
		<dc:creator>Géraud Lacheny</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[dimension]]></category>
		<category><![CDATA[textarea]]></category>

		<guid isPermaLink="false">http://www.geraudlacheny.fr/?p=332</guid>
		<description><![CDATA[<p>Beaucoup de forums de développeurs web débattent de la pertinence du redimensionnement manuel par l&#8217;internaute du champ &#8216;textarea&#8217; qui a tendance à de-structurer le design du site surtout s&#8217;il y a la propriété float qui traine par là. Il est &#8230; <a href="http://www.geraudlacheny.fr/redimensionner-un-textarea/">Lire la suite <span class="meta-nav">&#8594;</span></a></p><p>Cet article <a href="http://www.geraudlacheny.fr/redimensionner-un-textarea/">Redimensionner un textarea</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Beaucoup de forums de développeurs web débattent de la pertinence du redimensionnement manuel par l&rsquo;internaute du champ &lsquo;textarea&rsquo; qui a tendance à de-structurer le design du site surtout s&rsquo;il y a la propriété float qui traine par là. Il est clair que le textarea représentant souvent l&rsquo;espace dédié aux commentaires est souvent très petit pour un texte un tant soit peu développé, même si une fois le texte plus long que la hauteur maximum du textarea affichée, une barre de défilement se met en place&#8230;<span id="more-332"></span></p>
<h2>1e solution : resize</h2>
<p>Pour ceux qui offrent l&rsquo;espace nécessaire pour écrire, une propriété CSS3 peut être pertinente : resize.</p>
<pre class="brush: css; gutter: true">textarea {
   resize: none;
}</pre>
<h2>2e solution : max-height et/ou max-width</h2>
<p>Pour ceux qui désirent laisser libre le redimensionnement par l&rsquo;internaute mais garder tout de même garder un certain contrôle en largeur ou hauteur, il est possible d&rsquo;ajouter les règles CSS suivantes : max-height et/ou max-width.</p>
<pre class="brush: css; gutter: true">textarea {
   height: 135px;
   width: 290px;
   max-height: 435px;
   max-width: 450px;
}</pre>
<p>Les dimensions dans le code ci-dessus sont fictives.</p>
<p>Cela marche sans problème sur tous types de navigateurs comme IE9, Fx14, Opera12, Chrome20, Safari5.</p>
<p><br /><br /></p>
<p>Cet article <a href="http://www.geraudlacheny.fr/redimensionner-un-textarea/">Redimensionner un textarea</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geraudlacheny.fr/redimensionner-un-textarea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dezipper un fichier sur un serveur mutualisé ou dédié OVH</title>
		<link>http://www.geraudlacheny.fr/dezipper-un-fichier-sur-un-serveur-mutualise-ou-dedie-ovh/</link>
		<comments>http://www.geraudlacheny.fr/dezipper-un-fichier-sur-un-serveur-mutualise-ou-dedie-ovh/#comments</comments>
		<pubDate>Sun, 30 Sep 2012 17:47:49 +0000</pubDate>
		<dc:creator>Géraud Lacheny</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[dezipper]]></category>
		<category><![CDATA[unzip]]></category>

		<guid isPermaLink="false">http://www.geraudlacheny.fr/?p=328</guid>
		<description><![CDATA[<p>En tant que développeur web, je suis amené à uploader régulièrement beaucoup de fichiers, à la fois sur des serveurs dédiés et des serveurs mutualisés. Au départ, j&#8217;uploadais l&#8217;ensemble de mes fichiers de mon custom CMS par FTP. L’hébergement de &#8230; <a href="http://www.geraudlacheny.fr/dezipper-un-fichier-sur-un-serveur-mutualise-ou-dedie-ovh/">Lire la suite <span class="meta-nav">&#8594;</span></a></p><p>Cet article <a href="http://www.geraudlacheny.fr/dezipper-un-fichier-sur-un-serveur-mutualise-ou-dedie-ovh/">Dezipper un fichier sur un serveur mutualisé ou dédié OVH</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>En tant que développeur web, je suis amené à uploader régulièrement beaucoup de fichiers, à la fois sur des serveurs dédiés et des serveurs mutualisés. Au départ, j&rsquo;uploadais l&rsquo;ensemble de mes fichiers de mon custom CMS par FTP. L’hébergement de ces 1718 petits fichiers prenait jusqu&rsquo;à 40 minutes&#8230; Une réelle perte de temps puisqu&rsquo;il suffit tout simplement de :<span id="more-328"></span></p>
<ol>
<li>Uploader le fichier ZIP contenant les 1718 fichiers sur le serveur de destination</li>
<li>Lancer un script PHP tout basique qui permet d’exécuter la décompression du fichier
<pre class="brush: php; gutter: true">exec(&#039;unzip mon_fichier_zip.zip&#039;);</pre>
</li>
<li>Vérifier que les fichiers se sont correctement décompressés. S&rsquo;il en manque, il faut relancer le script.</li>
</ol>
<p>Cette manipulation est vraiment simple et très rapide. Pourquoi s&rsquo;en priver ?</p>
<p><br /><br /></p>
<p>Cet article <a href="http://www.geraudlacheny.fr/dezipper-un-fichier-sur-un-serveur-mutualise-ou-dedie-ovh/">Dezipper un fichier sur un serveur mutualisé ou dédié OVH</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geraudlacheny.fr/dezipper-un-fichier-sur-un-serveur-mutualise-ou-dedie-ovh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rediriger automatiquement les utilisateurs mobiles vers une adresse dédiée</title>
		<link>http://www.geraudlacheny.fr/rediriger-automatiquement-les-utilisateurs-mobiles-vers-une-adresse-dediee/</link>
		<comments>http://www.geraudlacheny.fr/rediriger-automatiquement-les-utilisateurs-mobiles-vers-une-adresse-dediee/#comments</comments>
		<pubDate>Sun, 30 Sep 2012 10:41:25 +0000</pubDate>
		<dc:creator>Géraud Lacheny</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutoriel]]></category>
		<category><![CDATA[redirection]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[tablette]]></category>

		<guid isPermaLink="false">http://www.geraudlacheny.fr/?p=302</guid>
		<description><![CDATA[<p>Selon une étude réalisée par la Fevad, en 2014 en France, la moitié du trafic d’Internet devrait passer par les mobiles&#8230; ITRNews A l&#8217;heure actuelle beaucoup de thèmes ne sont pas &#171;&#160;responsives&#160;&#187;. C&#8217;est-à-dire que le contenu ne s&#8217;ajuste pas automatiquement &#8230; <a href="http://www.geraudlacheny.fr/rediriger-automatiquement-les-utilisateurs-mobiles-vers-une-adresse-dediee/">Lire la suite <span class="meta-nav">&#8594;</span></a></p><p>Cet article <a href="http://www.geraudlacheny.fr/rediriger-automatiquement-les-utilisateurs-mobiles-vers-une-adresse-dediee/">Rediriger automatiquement les utilisateurs mobiles vers une adresse dédiée</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></description>
				<content:encoded><![CDATA[<blockquote><p>Selon une étude réalisée par la Fevad, en 2014 en France, la moitié du trafic d’Internet devrait passer par les mobiles&#8230; <a href="http://www.itrnews.com/articles/130093/europe-premier-marche-applications-mobiles-horizon-2015.html" target="_blank">ITRNews</a></p></blockquote>
<p>A l&rsquo;heure actuelle beaucoup de thèmes ne sont pas &laquo;&nbsp;responsives&nbsp;&raquo;. C&rsquo;est-à-dire que le contenu ne s&rsquo;ajuste pas automatiquement à la résolution des écrans sur lequel il est consulté. Afin de créer des sites multiplateformes, il est très pertinent de pouvoir changer la forme tout en adaptant le fond si possible. <span id="more-302"></span>En effet, un simple changement de CSS ne me semble pas suffisant. Sur un smartphone, il me parait évident qu&rsquo;on ne recherche pas les mêmes informations que sur un ordinateur&#8230;</p>
<p>Un système de redirection vers une adresse dédiée de type <strong>http://m.nomdedomaine.com</strong> par exemple pour les utilisateurs mobiles me semble le plus indiqué. Pour ce faire, j&rsquo;ai mis en exergue 2 solutions viables et pas trop intrusives à mon sens.<br />
La 1ère est en javascript et permet de laisser le choix à l&rsquo;iPhonaute entre le site et sa version otpimisée, la 2ième est une redirection automatique en PHP dès l&rsquo;arrivée sur la page d&rsquo;accueil.</p>
<h2>en javascript</h2>
<p>La méthode est personnalisable et permet d’inclure, dans une div un lien vers la version optimisée qui ne s’affichera que pour les iPhones :</p>
<h3>1. script est à insérer entre les balises head</h3>
<pre class="brush: javascript; gutter: true">&lt;script type=&quot;text/javascript&quot;&gt;
   function checkClient(){
      if((navigator.userAgent.match(/iPhone/i))||
           (navigator.userAgent.match(/iPod/i))) {
            document.getElementById(&#039;iphone_alert&#039;).innerHTML=&quot;
            &lt;h1 style=&#039;text-align:center; border: 10px solid #475a85; 
            -webkit-border-radius: 15px;&#039;&gt;
               &lt;a href=&#039;http://m.nomdedomaine.com&#039;&gt;Tapez ici pour 
               naviguer sur le site optimisé pour iPhone.&lt;/a&gt;
            &lt;/h1&gt;&quot;;
      }
      else {
         document.getElementById(&#039;iphone_alert&#039;).innerHTML=&quot;&quot;;
      }
}
&lt;/script&gt;</pre>
<h3>2. div à insérer dans le body de la page web</h3>
<pre class="brush: html; gutter: true">&lt;div id=&quot;iphone_alert&quot;&gt;&lt;/div&gt;</pre>
<h3>3. appeler la fonction avec la balise body</h3>
<pre class="brush: html; gutter: true">&lt;body onload=&quot;checkClient();&quot;&gt;</pre>
<h2>en PHP</h2>
<p>J&rsquo;ai trouvé une fonction qui remplit à merveille ce rôle : <strong>mobile_redirect()</strong>.</p>
<h3>1. téléchargement</h3>
Note: There is a file embedded within this post, please visit this post to download the file.
<h3>2. utilisation</h3>
<p>Vous pouvez inclure cette fonction directement sur votre page d&rsquo;index ou plus &laquo;&nbsp;proprement&nbsp;&raquo; dans un dossier librairie. Ainsi, après avoir inclus cette fonction par :</p>
<pre class="brush: php; gutter: true">require(&#039;./chemin_de_la_librairie/mobile_redirect.php&#039;);</pre>
<p>puis une simple initialisation suffit, le tour est joué :</p>
<pre class="brush: php; gutter: true">mobile_redirect(array(&quot;mobileredirect&quot;=&gt;&quot;http://m.nomdedomaine.com&quot;));</pre>
<p>&nbsp;</p>
<p>Pour info, il est <strong>préférable de ne pas indexer ce sous-domaine</strong> par les moteurs de recherche !</p>
<p><br /><br /></p>
<p>Cet article <a href="http://www.geraudlacheny.fr/rediriger-automatiquement-les-utilisateurs-mobiles-vers-une-adresse-dediee/">Rediriger automatiquement les utilisateurs mobiles vers une adresse dédiée</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geraudlacheny.fr/rediriger-automatiquement-les-utilisateurs-mobiles-vers-une-adresse-dediee/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Faire un dump d&#8217;une base de données en PHP</title>
		<link>http://www.geraudlacheny.fr/faire-un-dump-dune-base-de-donnees-en-php/</link>
		<comments>http://www.geraudlacheny.fr/faire-un-dump-dune-base-de-donnees-en-php/#comments</comments>
		<pubDate>Thu, 30 Aug 2012 10:31:37 +0000</pubDate>
		<dc:creator>Géraud Lacheny</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[dump]]></category>

		<guid isPermaLink="false">http://www.geraudlacheny.fr/?p=295</guid>
		<description><![CDATA[<p>Le système de gestion de base de données (SGBD) MySQL permet de stocker et de manipuler facilement un important volume de données des plus simples aux plus confidentielles : des textes, des identifiants de connexion, etc&#8230; Il est donc crucial &#8230; <a href="http://www.geraudlacheny.fr/faire-un-dump-dune-base-de-donnees-en-php/">Lire la suite <span class="meta-nav">&#8594;</span></a></p><p>Cet article <a href="http://www.geraudlacheny.fr/faire-un-dump-dune-base-de-donnees-en-php/">Faire un dump d&rsquo;une base de données en PHP</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Le système de gestion de base de données (SGBD) MySQL permet de stocker et de manipuler facilement un important volume de données des plus simples aux plus confidentielles : des textes, des identifiants de connexion, etc&#8230; Il est donc crucial de pouvoir assurer une <strong>sauvegarde de l&rsquo;ensemble de ses données</strong> fréquemment en cas de problèmes même mineurs !<span id="more-295"></span><br />
Il existe plusieurs façons de procéder en fonction du nombre et de la fréquence de modifications des bases de données à sauvegarder.</p>
<h1>Avec phpMyAdmin</h1>
<p>Pour sauvegarder vos données sql, vous pouvez passer par <strong>phpmyadmin</strong>, cette solution simple est accessible à tout le monde. Toutefois, si votre base est trop importante, vous devrez exporter/importer groupe de tables par groupe de tables.</p>
<h1>Avec un script PHP</h1>
<p>Cette solution est intéressante, car elle vous permet d&rsquo;importer et exporter des dumps importants et est accessible pour tous les hébergements.</p>
<h3>Solution 1 : en lignes de commande</h3>
<p>Il faut donc éditer un script PHP utilisant la fonction <strong>system()</strong> qui permet d&rsquo;exécuter un programme externe :</p>
<pre class="brush: php; gutter: true">system(&quot;mysqldump --host=mysql5.1.90 --user=user1 --password=mdp1 
--no-create-db --default-character-set=utf8 --lock-tables=FALSE 
--tables database1 &gt; dump.sql&quot;);</pre>
<p>Si vous souhaitez un <strong>dump compressé</strong>, donc de la forme .sql.gz, il suffit de remplacer dans la ligne de commande &laquo;&nbsp;&gt; dump.sql&nbsp;&raquo; par &laquo;&nbsp;| gzip &gt;dump.sql.gz&nbsp;&raquo; ou d&rsquo;une autre manière d&rsquo;ajouter la ligne suivante à la suite du code :</p>
<pre class="brush: php; gutter: true">system(&quot;gzip dump.sql&quot;);</pre>
<p>Note: There is a file embedded within this post, please visit this post to download the file.<br /></p>
<p>J&rsquo;ai pensé qu&rsquo;un module d&rsquo;envoi de mail couplé à un stockage sur le serveur était assez pertinent. Cela permet d&rsquo;avoir une sécurité complémentaire.</p>
<p>Note: There is a file embedded within this post, please visit this post to download the file.<br /></p>
<h3>Solution 2 : en PHP</h3>
<p>Il est toutefois aussi possible de passer en full PHP5 en utilisant une classe spécifique. Dans cette dernière est aussi inclus la gestion de la durée de vie des dumps des bases ainsi que l&rsquo;envoi par mail.</p>
Note: There is a file embedded within this post, please visit this post to download the file.
<p><br /><br /></p>
<p>Cet article <a href="http://www.geraudlacheny.fr/faire-un-dump-dune-base-de-donnees-en-php/">Faire un dump d&rsquo;une base de données en PHP</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geraudlacheny.fr/faire-un-dump-dune-base-de-donnees-en-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Les redirections web</title>
		<link>http://www.geraudlacheny.fr/les-redirections-web/</link>
		<comments>http://www.geraudlacheny.fr/les-redirections-web/#comments</comments>
		<pubDate>Wed, 15 Aug 2012 10:48:41 +0000</pubDate>
		<dc:creator>Géraud Lacheny</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[tutoriel]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[redirection]]></category>

		<guid isPermaLink="false">http://www.geraudlacheny.fr/?p=310</guid>
		<description><![CDATA[<p>La redirection HTTP La redirection HTTP reste la plus propre à partir du moment ou évidemment l&#8217;hébergeur l&#8217;autorise. Voici le contenu du fichier .htaccess à placer par FTP en mode ASCII sur votre serveur web : Redirect permanent /repertoire1/page1.html http://nouvelleURL/repertoire2/page2.html &#8230; <a href="http://www.geraudlacheny.fr/les-redirections-web/">Lire la suite <span class="meta-nav">&#8594;</span></a></p><p>Cet article <a href="http://www.geraudlacheny.fr/les-redirections-web/">Les redirections web</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></description>
				<content:encoded><![CDATA[<h3>La redirection HTTP</h3>
<p>La redirection HTTP reste la plus propre à partir du moment ou évidemment l&rsquo;hébergeur l&rsquo;autorise. Voici le contenu du fichier .htaccess à placer par FTP en mode ASCII sur votre serveur web <span id="more-310"></span>:</p>
<pre class="brush: text; gutter: true">Redirect permanent /repertoire1/page1.html   http://nouvelleURL/repertoire2/page2.html
RedirectMatch permanent /repertoire1/(.*)\.html$   http://nouvelleURL/repertoire2/$1.php
Redirect permanent /repertoire1 http://nouvelleURL/repertoire2
Redirect permanent / http://nouvelleURL/</pre>
<p>&nbsp;</p>
<h3>La redirection PHP</h3>
<p>La redirection PHP est une bonne alternative à la redirection HTTP. Voici le contenu du fichier appelé : page1.php.<br />
L&rsquo;ordre des 3 premières lignes est important pour que cela marche sous un maximum de différentes versions et configurations de PHP et de serveurs (en particulier IIS) mais vous pouvez être amené à devoir utiliser différents ordres de ces trois lignes ou supprimer la ligne 2 ou 3 sur certaines configurations.</p>
<pre class="brush: php; gutter: true">&lt;?php 
header(&#039;Location: http://nouvelleURL/repertoire2/page2.php&#039;); //Adresse de la nouvelle page
header(&#039;HTTP/1.1 301 Moved Permanently&#039;); //Code HTTP de redirection permanente
header(&#039;Status: 301 Moved Permanently&#039;); //Doublon utile à certaines versions de PHP et serveurs
header(&#039;Content-Type: text/html; charset=UTF-8&#039;);
?&gt;
&lt;!DOCTYPE html&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
   &lt;meta charset=&quot;UTF-8&quot; /&gt;
   &lt;!-- Redirection HTML --&gt;
   &lt;meta http-equiv=&quot;refresh&quot; content=&quot;0; url=http://nouvelleURL/repertoire2/page2.php&quot; /&gt;
   &lt;title&gt;Redirection&lt;/title&gt;
   &lt;meta name=&quot;robots&quot; content=&quot;noindex,follow&quot; /&gt;
&lt;/head&gt;
&lt;body&gt;
   &lt;p&gt;&lt;a href=&quot;http://nouvelleURL/repertoire2/page2.php&quot;&gt;Redirection&lt;/a&gt;&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p><br /><br /></p>
<p>Cet article <a href="http://www.geraudlacheny.fr/les-redirections-web/">Les redirections web</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geraudlacheny.fr/les-redirections-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conflit entre tabs de jQuery et IE</title>
		<link>http://www.geraudlacheny.fr/conflit-entre-tabs-de-jquery-et-ie/</link>
		<comments>http://www.geraudlacheny.fr/conflit-entre-tabs-de-jquery-et-ie/#comments</comments>
		<pubDate>Fri, 10 Aug 2012 10:44:18 +0000</pubDate>
		<dc:creator>Géraud Lacheny</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[tutoriel]]></category>
		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://www.geraudlacheny.fr/?p=306</guid>
		<description><![CDATA[<p>Il se peut qu&#8217;il y ait des incompatibilités et conflits entre des fonctionnalités jQuery et d&#8217;autres scripts voire certains navigateurs. tabs() de jQuery J&#8217;ai été confronté notamment à l&#8217;impossibilité de pouvoir choisir l&#8217;onglet que je souhaitais ouvrir lors du chargement &#8230; <a href="http://www.geraudlacheny.fr/conflit-entre-tabs-de-jquery-et-ie/">Lire la suite <span class="meta-nav">&#8594;</span></a></p><p>Cet article <a href="http://www.geraudlacheny.fr/conflit-entre-tabs-de-jquery-et-ie/">Conflit entre tabs de jQuery et IE</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Il se peut qu&rsquo;il y ait des incompatibilités et conflits entre des fonctionnalités jQuery et d&rsquo;autres scripts voire certains navigateurs.<span id="more-306"></span></p>
<h2>tabs() de jQuery</h2>
<p>J&rsquo;ai été confronté notamment à l&rsquo;impossibilité de pouvoir choisir l&rsquo;onglet que je souhaitais ouvrir lors du chargement de la page. Il ouvrait systématiquement le premier quoique je fasse. Après avoir essayé différentes solutions telles l&rsquo;utilisation des cookies, proposées dans les options de la fonctionnalité tabs() de jQuery, j&rsquo;ai constaté que cela ne fonctionnait pas voire encore moins. J&rsquo;en ai déduis tout simplement qu&rsquo;il ne pouvait s&rsquo;agir que d&rsquo;un conflit.</p>
<p>Et dans tout problème de conflit avec jQuery, il faut déjà commencer par remplacer le &laquo;&nbsp;$&nbsp;&raquo; de la déclaration par &laquo;&nbsp;jQuery&nbsp;&raquo;. Ainsi mon appel à cette fonction est passé de :</p>
<pre class="brush: javascript; gutter: true">$(&quot;#tabs&quot;).tabs({selected: 1});</pre>
<p>à :</p>
<pre class="brush: javascript; gutter: true">jQuery(&quot;#tabs&quot;).tabs({selected: 1});</pre>
<p>CQFD !</p>
<p><br /><br /></p>
<p>Cet article <a href="http://www.geraudlacheny.fr/conflit-entre-tabs-de-jquery-et-ie/">Conflit entre tabs de jQuery et IE</a> est apparu en premier sur <a href="http://www.geraudlacheny.fr">geraudlacheny.fr</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.geraudlacheny.fr/conflit-entre-tabs-de-jquery-et-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
