<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>C-Stan, Solutions web - Blog - Le coin des d&#233;veloppeurs</title>
	<link>http://www.c-stan.fr/</link>
	<description>Sp&#233;cialis&#233;e dans la cr&#233;ation de sites et services web, applications smartphones, C-Stan, situ&#233;e &#224; Nancy, vous apporte conseil et expertise en syst&#232;mes d'information et technologies open source.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>

	<image>
		<title>C-Stan, Solutions web</title>
		<url>http://www.c-stan.fr/local/cache-vignettes/L100xH125/siteon0-38e4a.jpg</url>
		<link>http://www.c-stan.fr/</link>
		<height>125</height>
		<width>100</width>
	</image>




	



<item xml:lang="fr">
		<title>Spip 2.1 : mes articles ont disparu !</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/Spip-2-1-mes-articles-ont-disparu</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/Spip-2-1-mes-articles-ont-disparu</guid>
		<dc:date>2010-09-06T07:42:46Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Depuis le 3 Septembre 2010, les sites tournant sous la version 2.1 de Spip ont vu tous leurs articles disparaitrent du front office. Dans l'absolu rien de gr&#226;ve puisqu'ils sont toujours dans la base de donn&#233;es. Un correctif a &#233;t&#233; rapidement post&#233; sur le site officiel http://www.spip.net Le probl&#232;me n'est pr&#233;sent que sur les serveurs 32 bits. Deux solutions s'offrent &#224; vous pour corriger le probl&#232;mes : 1 - mettre &#224; jour votre version Spip vers la 2.1.2 ou 2 - modifier le fichier (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L100xH79/arton86-ca60a.png&quot; alt=&quot;&quot; align=&quot;right&quot; width='100' height='79' class='spip_logos' style='height:79px;width:100px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Depuis le 3 Septembre 2010, les sites tournant sous la version 2.1 de Spip ont vu tous leurs articles disparaitrent du front office.&lt;/p&gt; &lt;p&gt;Dans l'absolu rien de gr&#226;ve puisqu'ils sont toujours dans la base de donn&#233;es. Un correctif a &#233;t&#233; rapidement post&#233; sur le site officiel &lt;a href='http://www.spip.net/' class='spip_out' rel='nofollow'&gt;http://www.spip.net&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Le probl&#232;me n'est pr&#233;sent que sur les serveurs 32 bits.&lt;/p&gt; &lt;p&gt;Deux solutions s'offrent &#224; vous pour corriger le probl&#232;mes :&lt;/p&gt; &lt;p&gt;1 - mettre &#224; jour votre version Spip vers la 2.1.2&lt;/p&gt; &lt;p&gt;ou&lt;/p&gt; &lt;p&gt;2 - modifier le fichier &quot;ecrire/public/quete.php&quot;, ligne 82&lt;/p&gt; &lt;p&gt;Remplacez :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;(time()+(3600*24*10000))) ; &lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Par :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;(time()+(3600*24*365*2))) ;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Videz votre cache, et le tour est jou&#233;.&lt;/p&gt; &lt;p&gt;L'&#233;quipe de Spip s'excuse de cette &#171; boulette &#187;.&lt;/p&gt; &lt;p&gt;&lt;i&gt;Source :&lt;/i&gt; &lt;a href='http://www.spip.net/fr_article5248.html' class='spip_out' rel='nofollow'&gt;http://www.spip.net/fr_article5248.html&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Red&#233;marrage automatique de Clamav apr&#232;s un plantage</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/Redemarrage-automatique-de-Clamav</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/Redemarrage-automatique-de-Clamav</guid>
		<dc:date>2010-04-22T12:44:19Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Sur les RPS propos&#233;s par OVH, beaucoup de personnes ont des probl&#232;mes avec l'anti-virus Clamav qui plante r&#233;guli&#232;rement et empech&#232;che ainsi les e-mails d'&#234;tre re&#231;us. Je vous propose donc un script qui vous permettra de v&#233;rifier r&#233;guli&#232;rement si Clamd &#224; rencontr&#233; un probl&#232;me auquel cas il sera red&#233;marrer. 1 - Cr&#233;er un fichier &quot;script_redemarrage.sh&quot; contenant les insctructions suivantes : #!/bin/bash #On recherche une erreur recente dans le fichier de log de mail var=`tail -1 /var/log/mail.log | grep (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Sur les RPS propos&#233;s par OVH, beaucoup de personnes ont des probl&#232;mes avec l'anti-virus Clamav qui plante r&#233;guli&#232;rement et empech&#232;che ainsi les e-mails d'&#234;tre re&#231;us. Je vous propose donc un script qui vous permettra de v&#233;rifier r&#233;guli&#232;rement si Clamd &#224; rencontr&#233; un probl&#232;me auquel cas il sera red&#233;marrer.&lt;/p&gt; &lt;p&gt;1 - Cr&#233;er un fichier &quot;script_redemarrage.sh&quot; contenant les insctructions suivantes :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;#!/bin/bash&lt;br /&gt; &lt;br /&gt; #On recherche une erreur recente dans le fichier de log de mail&lt;br /&gt; var=`tail -1 /var/log/mail.log | grep &quot;corrupt or unknown clamd scanner error&quot;`&lt;br /&gt; &lt;br /&gt; #On r&#233;cup&#232;re la date et heure du jour&lt;br /&gt; export datejour=`date +%d/%m/%Y-%X`&lt;br /&gt; &lt;br /&gt; #Si on n'a pas trouv&#233; d'erreur&lt;br /&gt; if [ -z &quot;$var&quot; ]&lt;br /&gt; then&lt;br /&gt; #Tout va bien&lt;br /&gt; echo &quot;$datejour - Clamav fonctionne toujours&quot; &gt;&gt; /home/user/www/log/clamv.log&lt;br /&gt; else&lt;br /&gt; #Sinon on red&#233;marre le deamon clamd&lt;br /&gt; echo &quot;$datejour - ERREUR - Clamav red&#233;marre&quot; &gt;&gt; /home/user/www/log/clamv.log&lt;br /&gt; /etc/init.d/clamd restart&lt;br /&gt; /etc/init.d/spamd restart&lt;br /&gt; fi&lt;br /&gt; &lt;br /&gt; #On controle la taille du fichier afin qu'il ne d&#233;passe pas 5000 lignes&lt;br /&gt; lcnt=$(wc -l /home/user/www/log/clamv.log) &lt;br /&gt; lcnt=${lcnt% *}&lt;br /&gt; if [ $lcnt -gt 5000 ] ; then&lt;br /&gt; ((start=5000))&lt;br /&gt; echo 'downsizing ...'&lt;br /&gt; tail -$start /home/user/www/log/clamv.log &gt; /home/user/www/log/clamv.logTemp&lt;br /&gt; mv /home/user/www/log/clamv.logTemp /home/user/www/log/clamv.log&lt;br /&gt; fi&lt;br /&gt; &lt;br /&gt; exit 0&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;2 - Cr&#233;er le fichier vide &quot;clamv.log&quot; &#224; l'emplacement &quot;/home/user/www/&quot;. Vous pouvez bien s&#251;r indiquer un tout autre emplacement mais pensez bien &#224; modifier le script en cons&#233;quence.&lt;/p&gt; &lt;p&gt;3 - Envoy&#233; le fichier &quot;script_redemarrage.sh&quot; sur votre serveur.&lt;/p&gt; &lt;p&gt;4 - Cr&#233;er une t&#226;che cron qui executera ce script r&#233;guli&#232;rement.&lt;/p&gt; &lt;p&gt;5 - Vous pouvez donc v&#233;rifier dans le fichier de log &#224; quel moment Clamav &#224; rencontr&#233; un probl&#232;me et a d&#251; &#234;tre red&#233;marr&#233;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Mise &#224; jour d'un serveur releases OVH</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/Mise-a-jour-d-un-serveur-releases</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/Mise-a-jour-d-un-serveur-releases</guid>
		<dc:date>2010-04-22T12:33:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Pourquoi mettre &#224; jour votre serveur ? Les patchs : apportent des am&#233;liorations aux logiciels pr&#233;sents sur le serveur comblent des failles de s&#233;curit&#233; plus ou moins importantes am&#233;liorent la stabilit&#233; et la rapidit&#233; du serveur Mettre &#224; jour votre serveur 1 - Se connecter en SSH au serveur concern&#233; en tant que root. Sous unix ssh root@nom_du_serveur 2 - Sauvegarder toutes les configurations personnalis&#233;es : Apache, PHP, MySQL, etc... 3 - Lancer la commande suivante : wget (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2&gt;Pourquoi mettre &#224; jour votre serveur ?&lt;/h2&gt;
&lt;p&gt;Les patchs :&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; apportent des am&#233;liorations aux logiciels pr&#233;sents sur le serveur
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; comblent des failles de s&#233;curit&#233; plus ou moins importantes
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; am&#233;liorent la stabilit&#233; et la rapidit&#233; du serveur&lt;/p&gt; &lt;h2&gt;Mettre &#224; jour votre serveur&lt;/h2&gt;
&lt;p&gt;1 - Se connecter en SSH au serveur concern&#233; en tant que root. Sous unix&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;ssh root@nom_du_serveur&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;2 - Sauvegarder toutes les configurations personnalis&#233;es : Apache, PHP, MySQL, etc...&lt;/p&gt; &lt;p&gt;3 - Lancer la commande suivante :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;wget ftp://ftp.ovh.net/made-in-ovh/release/patch-all.sh -O patch-all.sh; sh patch-all.sh&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Cette commande permet d'appliquer tous les patchs disponibles pour votre serveur. Le temps d'execution peut &#234;tre plus ou moins long en fonction de la date de la derni&#232;re mise &#224; jour du syst&#232;me.&lt;/p&gt; &lt;p&gt;Cette manipulation &#224; &#233;t&#233; test&#233;e sur un serveur NS Gentoo RC1, un serveur Kimsufi Gentoo RC2 et un serveur RPS sous la m&#234;me distribution.&lt;/p&gt; &lt;p&gt;Pour plus d'information : &lt;a href='http://guides.ovh.com/ReleasePatchSecurite' class='spip_out' rel='nofollow'&gt;http://guides.ovh.com/ReleasePatchS...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Mise &#224; jour d'une table MySQL &#224; partir d'un fichier CSV en PHP</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/Mise-a-jour-d-une-table-MySQL-a</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/Mise-a-jour-d-une-table-MySQL-a</guid>
		<dc:date>2010-03-26T16:45:01Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Cette fonction permet de mettre &#224; jour une table MySQL &#224; partir d'un fichier CSV. Si la valeur n'existe pas dans la table, elle est ajout&#233;e, sinon on la met &#224; jour. Dans un premier temps on parse le fichier CSV, puis on g&#233;n&#232;re les requ&#234;tes n&#233;cessaires &#224; la mise &#224; jour de la table MySQL. &lt;?php /* $fichier : lien relatif vers le fichier CSV $table_mysql : nom de la table MySQL &#224; remplir ou &#224; mettre &#224; jour $id_table : id primaire de la table, si l'id existe, on met &#224; jour, (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L100xH52/arton78-0bc8b.png&quot; alt=&quot;&quot; align=&quot;right&quot; width='100' height='52' class='spip_logos' style='height:52px;width:100px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Cette fonction permet de mettre &#224; jour une table MySQL &#224; partir d'un fichier CSV. Si la valeur n'existe pas dans la table, elle est ajout&#233;e, sinon on la met &#224; jour.&lt;/p&gt; &lt;p&gt;Dans un premier temps on parse le fichier CSV, puis on g&#233;n&#232;re les requ&#234;tes n&#233;cessaires &#224; la mise &#224; jour de la table MySQL.&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?php&lt;br /&gt; /*&lt;br /&gt; $fichier : lien relatif vers le fichier CSV&lt;br /&gt; $table_mysql : nom de la table MySQL &#224; remplir ou &#224; mettre &#224; jour&lt;br /&gt; $id_table : id primaire de la table, si l'id existe, on met &#224; jour, sinon on insert&lt;br /&gt; $champs : tableau contenant les nom des champs MySQL de la table $table_mysql dans l'ordre d'apparition dans le fichier CSV&lt;br /&gt; */&lt;br /&gt; function CSVtoMySQL($fichier, $table_mysql, $id_table, $champs){&lt;br /&gt; &lt;br /&gt; $separateur=&quot;;&quot;;&lt;br /&gt; $delimiteur='&quot;';&lt;br /&gt; $saut_ligne=&quot;\n&quot;;&lt;br /&gt; &lt;br /&gt; //Fonction de connexion &#224; la base de donn&#233;e&lt;br /&gt; getconnection();&lt;br /&gt; &lt;br /&gt; //Si le fichier existe&lt;br /&gt; if(file_exists($fichier)){&lt;br /&gt; if($chaine = @implode(&quot;&quot;,@file($fichier))) {&lt;br /&gt; &lt;br /&gt; $lignes=explode($saut_ligne,$chaine);&lt;br /&gt; &lt;br /&gt; //On parcours toutes les lignes du fichier&lt;br /&gt; foreach($lignes as $ligne){&lt;br /&gt; &lt;br /&gt; //On r&#233;cup&#232;re les valeurs&lt;br /&gt; $champs_valeur=explode($separateur,$ligne);&lt;br /&gt; &lt;br /&gt; //On enl&#232;ve le d&#233;limiteur&lt;br /&gt; foreach($champs_valeur as $key=&gt;$val){&lt;br /&gt; $valeur_temp=trim($val);&lt;br /&gt; &lt;br /&gt; if($valeur_temp!='&quot;&quot;'){&lt;br /&gt; &lt;br /&gt; //On enl&#232;ve les d&#233;limiteurs&lt;br /&gt; if(substr($valeur_temp,0,1)==$delimiteur){&lt;br /&gt; $valeur_temp=substr($valeur_temp,1);&lt;br /&gt; }&lt;br /&gt; if(substr($valeur_temp,-1)==$delimiteur){&lt;br /&gt; $valeur_temp=substr($valeur_temp,0,-1);&lt;br /&gt; }&lt;br /&gt; }else{&lt;br /&gt; $valeur_temp='';&lt;br /&gt; }&lt;br /&gt; $champs_valeur[$key]=$valeur_temp;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; $position_clef=array_search($id_table,$champs);&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; //On regarde si la valeur existe d&#233;j&#224; dans la table&lt;br /&gt; $select=&quot;select * from &quot;.$table_mysql.&quot; where &quot;.$id_table.&quot;=\&quot;&quot;.$champs_valeur[$position_clef].&quot;\&quot;&quot;;&lt;br /&gt; &lt;br /&gt; $res=mysql_query($select);&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; //Si existe deja on met &#224; jour&lt;br /&gt; if(mysql_num_rows($res)&gt;0){&lt;br /&gt; $ligne_existante=mysql_fetch_array($res);&lt;br /&gt; $update=&quot;update &quot;.$table_mysql.&quot; set &quot;;&lt;br /&gt; &lt;br /&gt; foreach($champs as $key=&gt;$champ){&lt;br /&gt; if($champ!=$id_table){&lt;br /&gt; $update.=&quot; &quot;.$champ.&quot;=\&quot;&quot;.$champs_valeur[$key].&quot;\&quot;,&quot;;&lt;br /&gt; }else{&lt;br /&gt; $valeur_id_table=$champs_valeur[$key];&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; $update=substr($update,0,-1);&lt;br /&gt; $update.=&quot; where &quot;.$id_table.&quot;=\&quot;&quot;.$valeur_id_table.&quot;\&quot;&quot;;&lt;br /&gt; mysql_query($update);&lt;br /&gt; }else{&lt;br /&gt; // Sinon on insert&lt;br /&gt; $insert=&quot;insert into &quot;.$table_mysql.&quot; set &quot;;&lt;br /&gt; &lt;br /&gt; foreach($champs as $key=&gt;$champ){&lt;br /&gt; $insert.=&quot; &quot;.$champ.&quot;=\&quot;&quot;.$champs_valeur[$key].&quot;\&quot;,&quot;;&lt;br /&gt; &lt;br /&gt; }&lt;br /&gt; $insert=substr($insert,0,-1);&lt;br /&gt; mysql_query($insert);&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; ?&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;CSV, MySQL, parser, parse CSV, parse MySQL, CSVtoMySQL, PHP, mise &#224; jour, update, update MySQL, mise &#224; jour MySQL&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>QMail : corriger l'erreur &quot;multilog : fatal : unable to lock directory&quot;</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/QMail-corriger-l-erreur-multilog</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/QMail-corriger-l-erreur-multilog</guid>
		<dc:date>2010-03-08T09:42:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Lorsque vous red&#233;marrez QMail ou si vous ne recevez plus d'e-mails et que l'une des erreurs ci-dessous apparait : multilog: fatal: unable to lock directory /var/log/qmail/: temporary failure multilog: fatal: unable to lock directory /var/log/qmailsmtp/: temporary failure Il suffit de suivre les instructions suivantes #On se connecte au serveur en SSH en root ssh root@nom_du_serveur # On arr&#234;te le service QMail /etc/init.d/qmail stop # On recherche les processus li&#233;s &#224; QMail ps -ef (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/IMG/arton76.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; width='150' height='138' class='spip_logos' style='height:138px;width:150px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Lorsque vous red&#233;marrez QMail ou si vous ne recevez plus d'e-mails et que l'une des erreurs ci-dessous apparait :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;multilog: fatal: unable to lock directory /var/log/qmail/: temporary failure&lt;br /&gt; multilog: fatal: unable to lock directory /var/log/qmailsmtp/: temporary failure&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Il suffit de suivre les instructions suivantes&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;#On se connecte au serveur en SSH en root&lt;br /&gt; ssh root@nom_du_serveur&lt;br /&gt; &lt;br /&gt; # On arr&#234;te le service QMail&lt;br /&gt; /etc/init.d/qmail stop &lt;br /&gt; &lt;br /&gt; # On recherche les processus li&#233;s &#224; QMail&lt;br /&gt; ps -ef |grep qmail &lt;br /&gt; &lt;br /&gt; # On tue le processus posant probl&#232;me. XXX est le num&#233;ro du processus&lt;br /&gt; kill XXX&lt;br /&gt; &lt;br /&gt; # On red&#233;marre le service QMail&lt;br /&gt; /etc/init.d/qmail start&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Votre mail sera d&#233;bloqu&#233; et fonctionnera &#224; nouveau sans perte d'e-mails.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>MySQL : cr&#233;er une connexion distante</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/MySQL-creer-une-connexion-distante</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/MySQL-creer-une-connexion-distante</guid>
		<dc:date>2010-02-17T08:41:33Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Voici la marche &#224; suivre pour utiliser une connexion distante MySQL. C'est &#224; dire se connecter &#224; la base de donn&#233;es d'un serveur B depuis un serveur A 1 - Dans le fichier de configuration MySQL &quot;my.cnf&quot; du serveur B commenter les lignes : skip-networking bind-address = 127.0.0.1 Pour commenter ces lignes, il suffit d'ajouter un di&#232;se (#) au d&#233;but de chaque ligne. 2 - Cr&#233;er un utilisateur MySQL sur le serveur B qui &#233;coute (Hosts) vers l'IP du serveur A GRANT ALL PRIVILEGES ON *.* TO (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L100xH52/arton74-73d5d.png&quot; alt=&quot;&quot; align=&quot;right&quot; width='100' height='52' class='spip_logos' style='height:52px;width:100px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Voici la marche &#224; suivre pour utiliser une connexion distante MySQL. C'est &#224; dire se connecter &#224; la base de donn&#233;es d'un serveur B depuis un serveur A&lt;/p&gt; &lt;p&gt;1 - Dans le fichier de configuration MySQL &quot;my.cnf&quot; du serveur B commenter les lignes :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;skip-networking&lt;br /&gt; bind-address = 127.0.0.1&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Pour commenter ces lignes, il suffit d'ajouter un di&#232;se (#) au d&#233;but de chaque ligne.&lt;/p&gt; &lt;p&gt;2 - Cr&#233;er un utilisateur MySQL sur le serveur B qui &#233;coute (Hosts) vers l'IP du serveur A&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;GRANT ALL PRIVILEGES ON *.* TO 'nom_utilisateur'@'ip_serveur_A'&lt;br /&gt; IDENTIFIED BY 'mot_de_passe' WITH GRANT OPTION;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;3 - Dans la fonction mysql_connect de PHP appel&#233;e depuis le serveur A mettre l'adresse IP du serveur B&lt;/p&gt; &lt;h2&gt;Attention, si et seulement si vous utilisez une version de MySQL &gt;= 4.1.1, vous devez suivre les instructions suivantes&lt;/h2&gt;
&lt;p&gt;4 - Ajouter la ligne suivante au fichier my.cnf du serveur B&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;set_variable = old_passwords=1&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;5 - Modifier le mot de passe de l'utilisateur sur le serveur B&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;SET PASSWORD FOR 'nom_utilisateur'@'ip_serveur_A' = OLD_PASSWORD('nouveau_password');&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;6 - Red&#233;marer MySQL avec la commande&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;/etc/init.d/mysql restart&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Pour plus d'informations sur la fonctionnalit&#233; &quot;old-passwords&quot; de MySQL : &lt;a href='http://dev.mysql.com/doc/refman/5.0/fr/old-client.html' class='spip_out' rel='nofollow'&gt;http://dev.mysql.com/doc/refman/5.0...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Parser un fichier XML vers un tableau PHP ou une table MySQL</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/Parser-un-fichier-XML-vers-un</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/Parser-un-fichier-XML-vers-un</guid>
		<dc:date>2010-02-12T14:29:18Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>L'utilisation d'un fichier XML en PHP n&#233;cessite souvent des librairies externes ou des algorythmes complexes. Ici nous vous proposons deux fonctions simples pour transformer votre fichier XML en tableau associatif PHP puis en requ&#234;te MySQL. Cette derni&#232;re permet de remplir une table MySQL &#224; partir d'un fichier XML. Vous pouvez choisir les champs &#224; inserer ou non. Code source Pr&#233;-requis Avant toute chose, si vous voulez utiliser la fonction XMLtoSQL, il vous faut une fonction de connexion &#224; une (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/IMG/arton73.png&quot; alt=&quot;&quot; align=&quot;right&quot; width='150' height='98' class='spip_logos' style='height:98px;width:150px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;L'utilisation d'un fichier XML en PHP n&#233;cessite souvent des librairies externes ou des algorythmes complexes. Ici nous vous proposons deux fonctions simples pour transformer votre fichier XML en tableau associatif PHP puis en requ&#234;te MySQL. Cette derni&#232;re permet de remplir une table MySQL &#224; partir d'un fichier XML. Vous pouvez choisir les champs &#224; inserer ou non.&lt;/p&gt; &lt;h2&gt;Code source&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Pr&#233;-requis&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Avant toute chose, si vous voulez utiliser la fonction XMLtoSQL, il vous faut une fonction de connexion &#224; une base de donn&#233;es. Ici la fonction getconnection() est utilis&#233;e. Elle se pr&#233;sente sous la forme :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?php&lt;br /&gt; function getConnection() {&lt;br /&gt; $mysql = &quot;localhost&quot;; // nom du serveur&lt;br /&gt; $login = &quot;XXXXXX&quot;; // identifiant de l'utilisateur&lt;br /&gt; $pwd = &quot;XXXXXX&quot;; // mot de passe de l'utilisateur&lt;br /&gt; $base = &quot;nom_de_la_base&quot;; // nom de la base&lt;br /&gt; $id_connect = mysql_connect($mysql, $login, $pwd)&lt;br /&gt; or die(&quot;Erreur interne : connexion au serveur de BD refus&amp;eacute;e&lt;br&gt;&quot;);&lt;br /&gt; mysql_select_db($base)&lt;br /&gt; or die(&quot;Erreur interne : connexion &amp;agrave; la BD refus&amp;eacute;e&lt;br&gt;&quot;);&lt;br /&gt; }&lt;br /&gt; ?&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Parseur XMLtoARRAY&lt;/strong&gt;&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?php&lt;br /&gt; // FONCTION qui transforme le fichier XML en tableau associatif PHP&lt;br /&gt; // IN&lt;br /&gt; // $fichier : STRING, chemin complet vers le fichier&lt;br /&gt; // $item : STRING, nom de l'objet principal XML&lt;br /&gt; // $champs : ARRAY, tableau des champs que l'on veux r&#233;cup&#233;rer&lt;br /&gt; &lt;br /&gt; // OUT&lt;br /&gt; // Tableau associatif de la forme : &lt;br /&gt; // [0]=&gt;{ &quot;champs1&quot;=&gt;&quot;valeur1&quot;, &quot;champs2&quot;=&gt;&quot;valeur2&quot; }&lt;br /&gt; // [1]=&gt;{ &quot;champs1&quot;=&gt;&quot;valeur3&quot;, &quot;champs2&quot;=&gt;&quot;valeur4&quot; }&lt;br /&gt; &lt;br /&gt; function XMLtoARRAY($fichier,$item,$champs) {&lt;br /&gt; // on lit le fichier&lt;br /&gt; if(file_exists($fichier)){&lt;br /&gt; if($chaine = @implode(&quot;&quot;,@file($fichier))) {&lt;br /&gt; &lt;br /&gt; // on &#233;clate les objets &lt;item&gt;&lt;br /&gt; $tmp = preg_split(&quot;/&lt;\/?&quot;.$item.&quot;&gt;/&quot;,$chaine);&lt;br /&gt; &lt;br /&gt; // on parcours les &lt;item&gt;&lt;br /&gt; for($i=0;$i&lt;sizeof($tmp)-1;$i+=1){&lt;br /&gt; // on recherche les champs demand&#233;s&lt;br /&gt; foreach($champs as $champ) {&lt;br /&gt; $tmp2 = preg_split(&quot;/&lt;\/?&quot;.$champ.&quot;&gt;/&quot;,$tmp[$i]);&lt;br /&gt; // on ajoute l'&#233;l&#233;ment au tableau&lt;br /&gt; $tmp3[$i][$champ] = @$tmp2[1];&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; // retourne le tableau associatif&lt;br /&gt; return $tmp3;&lt;br /&gt; }&lt;br /&gt; }else{&lt;br /&gt; return &quot;Le fichier n'existe pas&quot;;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; ?&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Parseur XMLtoSQL&lt;/strong&gt;&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?php&lt;br /&gt; // FONCTION qui remplit une table MySQL &#224; partir d'un fichier XML&lt;br /&gt; // IN&lt;br /&gt; // $fichier : STRING, chemin complet vers le fichier&lt;br /&gt; // $item : STRING, nom de l'objet principal XML, sert aussi de nom pour la table MySQL&lt;br /&gt; // $champs : ARRAY, tableau des champs que l'on veux r&#233;cup&#233;rer, equivalent des champs pour MySQL&lt;br /&gt; // $test : INT, vaut 1 si vous en voulez pas executer les requ&#234;tes&lt;br /&gt; &lt;br /&gt; // OUT&lt;br /&gt; // Phrase de notification&lt;br /&gt; &lt;br /&gt; function XMLtoSQL($fichier,$item,$champs,$test=0){&lt;br /&gt; &lt;br /&gt; //On recup&#232;re le tableau PHP correspondant au fichier XML&lt;br /&gt; $xml = XMLtoARRAY($fichier,$item,$champs);&lt;br /&gt; if(is_array($xml)){&lt;br /&gt; getconnection();&lt;br /&gt; $nom_table=$item;&lt;br /&gt; $requetes_insert=array();&lt;br /&gt; $requete=&quot;&quot;;&lt;br /&gt; foreach($xml as $un_enregistrement){&lt;br /&gt; $requete=&quot;INSERT INTO &quot;.$nom_table.&quot; &quot;;&lt;br /&gt; $col_name=&quot;(&quot;;&lt;br /&gt; $value=&quot;(&quot;;&lt;br /&gt; foreach($un_enregistrement as $champs=&gt;$valeur){&lt;br /&gt; $col_name.=$champs.&quot;,&quot;;&lt;br /&gt; $value.=&quot;\&quot;&quot;.$valeur.&quot;\&quot;,&quot;;&lt;br /&gt; }&lt;br /&gt; $col_name=substr($col_name,0,-1);&lt;br /&gt; $value=substr($value,0,-1);&lt;br /&gt; $requete.=$col_name.&quot;) VALUES &quot;.$value.&quot;)&quot;;&lt;br /&gt; $requetes_insert[]=$requete;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; //Si tout est ok on vide la table&lt;br /&gt; $vidange_table=&quot;TRUNCATE TABLE &quot;.$nom_table;&lt;br /&gt; if($test==0){&lt;br /&gt; $res_vidange=mysql_query($vidange_table);&lt;br /&gt; if(!$res_vidange){&lt;br /&gt; return &quot;Erreur lors de la vidange de la table : &quot;.$nom_table;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; //Puis on execute les requ&#234;tes une par une&lt;br /&gt; foreach($requetes_insert as $key=&gt;$une_requete){&lt;br /&gt; if($test==0){&lt;br /&gt; $res_requete=mysql_query($une_requete);&lt;br /&gt; if(!$res_requete){&lt;br /&gt; return &quot;Erreur lors de l'execution de la requete num &quot;.$key.&quot; : &quot;.$une_requete;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; return &quot;Importation des &quot;.sizeof($requetes_insert).&quot; requetes reussie&quot;;&lt;br /&gt; }else{&lt;br /&gt; return &quot;L'erreur suivante a ete detectee : &quot;.$xml;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; ?&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h2&gt;Exemple d'utilisation&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Notre fichier XML : test.xml&lt;/strong&gt;&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;br /&gt; &lt;personne&gt;&lt;br /&gt; &lt;nom&gt;MARTIN&lt;/nom&gt;&lt;br /&gt; &lt;prenom&gt;Julien&lt;/prenom&gt;&lt;br /&gt; &lt;date_naissance&gt;1996-10-06&lt;/date_naissance&gt;&lt;br /&gt; &lt;num_tel&gt;764704140&lt;/num_tel&gt;&lt;br /&gt; &lt;/personne&gt;&lt;br /&gt; &lt;br /&gt; &lt;personne&gt;&lt;br /&gt; &lt;nom&gt;ROBERT&lt;/nom&gt;&lt;br /&gt; &lt;prenom&gt;Marcial&lt;/prenom&gt;&lt;br /&gt; &lt;date_naissance&gt;1996-10-06&lt;/date_naissance&gt;&lt;br /&gt; &lt;num_tel&gt;764704140&lt;/num_tel&gt;&lt;br /&gt; &lt;/personne&gt;&lt;br /&gt; &lt;br /&gt; &lt;personne&gt;&lt;br /&gt; &lt;nom&gt;GRANDJEAN&lt;/nom&gt;&lt;br /&gt; &lt;prenom&gt;Pierre&lt;/prenom&gt;&lt;br /&gt; &lt;date_naissance&gt;1996-10-06&lt;/date_naissance&gt;&lt;br /&gt; &lt;num_tel&gt;764704140&lt;/num_tel&gt;&lt;br /&gt; &lt;/personne&gt; &lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Notre code PHP&lt;/strong&gt;&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?php&lt;br /&gt; &lt;br /&gt; echo XMLtoSQL(&quot;test.xml&quot;,&quot;personne&quot;,array(&quot;nom&quot;,&quot;prenom&quot;));&lt;br /&gt; &lt;br /&gt; ?&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;R&#233;sultats&lt;/strong&gt;
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; La table &quot;personne&quot; sera vid&#233;e
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Elle ne sera remplie qu'avec les champs nom et prenom du fichier XML. Les autres champs sont ignor&#233;s.
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; La fonction affichera le nombre d'insertions dans la table&lt;/p&gt; &lt;p&gt;Code inspir&#233; de la source : &lt;a href='http://www.phpsources.org/scripts172-PHP.htm' class='spip_out' rel='nofollow'&gt;http://www.phpsources.org/scripts17...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;xml, php, mysql, parseur, parser, fonction, fichier xml&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Les expressions r&#233;guli&#232;res utiles</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/Les-expressions-regulieres-utiles</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/Les-expressions-regulieres-utiles</guid>
		<dc:date>2010-02-05T14:57:18Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>V&#233;rifier une URL V&#233;rifie les URLs http ou https, avec ou sans les www. Les sous-domaines et les r&#233;pertoires sont accept&#233;s. ^(https?://)?([-a-zA-Z0-9]3,\.)?[-a-zA-Z0-9]3,63\.[a-z]2,(/[-./_?&amp;=a-zA-Z0-9]*)?$ V&#233;rifier une adresse e-mail Accepte les tous les caract&#232;res possibles dans une adresse e-mail. ^[a-z0-9!#$%&amp;'*+/=?^_`|~-]+(?:\.[a-z0-9!#$%&amp;'*+/=?^_`|~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]2,)$ V&#233;rifier un code postal Fran&#231;ais Accepte les motifs suivants : 54460 ou 54 (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2&gt;V&#233;rifier une URL&lt;/h2&gt;
&lt;p&gt;V&#233;rifie les URLs http ou https, avec ou sans les www. Les sous-domaines et les r&#233;pertoires sont accept&#233;s.&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;^(https?://)?([-a-zA-Z0-9]{3,}\.)?[-a-zA-Z0-9]{3,63}\.[a-z]{2,}(/[-./_?&amp;=a-zA-Z0-9]*)?$&lt;/code&gt;&lt;/div&gt;
&lt;h2&gt;V&#233;rifier une adresse e-mail&lt;/h2&gt;
&lt;p&gt;Accepte les tous les caract&#232;res possibles dans une adresse e-mail.&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;^[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2,})$&lt;/code&gt;&lt;/div&gt;
&lt;h2&gt;V&#233;rifier un code postal Fran&#231;ais&lt;/h2&gt;
&lt;p&gt;Accepte les motifs suivants : 54460 ou 54 460&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;^[0-9]{2} *[0-9]{3}$&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Plusieurs noms de domaine (DNS) pour un m&#234;me site</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/Plusieurs-noms-de-domaine-DNS-pour</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/Plusieurs-noms-de-domaine-DNS-pour</guid>
		<dc:date>2010-02-04T17:07:48Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Vous avez plusieurs noms de domaine (DNS) pour un m&#234;me site et voudriez en avoir un principal ? Il vous suffit pour &#231;a de faire pointer tous vos noms de domaines vers le r&#233;pertoire du site web. Puis dans le .htaccess copier-coller ce code : RewriteCond %HTTP_HOST ^(www\.) ?adresse-secondaire\.com RewriteRule ^(.*)$ http://www.adresse-principale.com/ [R=301,L] Assurez-vous que la r&#233;&#233;criture d'URL est bien active sur votre serveur et que votre fichier .htaccess comporte bien les lignes (en d&#233;but (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/IMG/arton69.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; width='150' height='150' class='spip_logos' style='height:150px;width:150px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Vous avez plusieurs noms de domaine (DNS) pour un m&#234;me site et voudriez en avoir un principal ?
Il vous suffit pour &#231;a de faire pointer tous vos noms de domaines vers le r&#233;pertoire du site web. Puis dans le .htaccess copier-coller ce code :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;RewriteCond %HTTP_HOST ^(www\.) ?adresse-secondaire\.com &lt;br /&gt; RewriteRule ^(.*)$ http://www.adresse-principale.com/ [R=301,L]&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Assurez-vous que la r&#233;&#233;criture d'URL est bien active sur votre serveur et que votre fichier .htaccess comporte bien les lignes (en d&#233;but de fichier) :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;RewriteEngine On&lt;br /&gt; &lt;br /&gt; # Indiquez ici arborescence pour arriver &#224; la racine de votre site &#224; partir de &lt;br /&gt; # l'url principale. En g&#233;n&#233;ral /&lt;br /&gt; &lt;br /&gt; RewriteBase /&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez ainsi rediriger autant de noms de domaines d&#233;sir&#233;s vers le DNS principal simplement en recopiant le code ci-dessus.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>G&#233;olocalisation en PHP, PERL et autres langages</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/Geolocalisation-en-PHP</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/Geolocalisation-en-PHP</guid>
		<dc:date>2010-02-04T17:02:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Voici comment faire de la g&#233;olocalisation en PHP et d'autres langages. Utilisation en PERL - PHP Pour utiliser la g&#233;olocalisation en PHP &#224; partir de l'adresse IP de l'internaute, un script PERL nomm&#233; Net Geo IP existe. Installer le packet PERL Pour installer le packet PERL sur votre serveur veuillez utiliser le code suivant pear install http://download.pear.php.net/package/Net_GeoIP-1.0.0RC1.tgz T&#233;l&#233;charger la base de donn&#233;es Les bases de donn&#233;es des zones g&#233;ographiques d'IP se trouvent aux (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L114xH115/arton70-66c8a.gif&quot; alt=&quot;&quot; align=&quot;right&quot; width='114' height='115' class='spip_logos' style='height:115px;width:114px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Voici comment faire de la g&#233;olocalisation en PHP et d'autres langages.&lt;/p&gt; &lt;h2&gt;Utilisation en PERL - PHP&lt;/h2&gt;
&lt;p&gt;Pour utiliser la g&#233;olocalisation en PHP &#224; partir de l'adresse IP de l'internaute, un script PERL nomm&#233; Net Geo IP existe.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Installer le packet PERL&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Pour installer le packet PERL sur votre serveur veuillez utiliser le code suivant&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;pear install http://download.pear.php.net/package/Net_GeoIP-1.0.0RC1.tgz&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;T&#233;l&#233;charger la base de donn&#233;es&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Les bases de donn&#233;es des zones g&#233;ographiques d'IP se trouvent aux adresses suivantes : &lt;br /&gt;Par pays : &lt;a href='http://www.maxmind.com/app/geoip_country' class='spip_out' rel='nofollow'&gt;http://www.maxmind.com/app/geoip_country&lt;/a&gt;
&lt;br /&gt;Par villes : &lt;a href='http://www.maxmind.com/app/geolitecity' class='spip_out' rel='nofollow'&gt;http://www.maxmind.com/app/geolitecity&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Il existe deux types de base :&lt;/p&gt; &lt;p&gt;Version gratuite : &lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; 99.5% de pr&#233;cision
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Les utilisateurs AOL sont automatiquement reconnus comme venant des USA
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Mise &#224; jour mensuelle&lt;/p&gt; &lt;p&gt;Version payante (50$ + 12$ par mois de mise &#224; jour) :
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; 99.8% de pr&#233;cision
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Reconnaissance des utilisateurs AOL &lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Mise &#224; jour quotidienne&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Code PHP&lt;/strong&gt;&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?php&lt;br /&gt; &lt;br /&gt; require_once('Net/GeoIP.php');&lt;br /&gt; &lt;br /&gt; $geoip = Net_GeoIP::getInstance('./GeoIP.dat');&lt;br /&gt; &lt;br /&gt; $ip = getenv('REMOTE_ADDR');&lt;br /&gt; &lt;br /&gt; $country = $geoip-&gt;lookupCountryName($ip);&lt;br /&gt; &lt;br /&gt; echo &quot;Salut je viens de &quot;.$country;&lt;br /&gt; &lt;br /&gt; ?&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h2&gt;Utilisation en PHP pur&lt;/h2&gt;
&lt;p&gt;il est possible d'utiliser la g&#233;olocalisation uniquement en PHP.&lt;/p&gt; &lt;p&gt;Pour cela il n'est pas utile de transferer les fichiers t&#233;l&#233;charg&#233;s vers votre base de donn&#233;es. Ce serait un travail long pour des temps de r&#233;ponses m&#233;diocres.&lt;/p&gt; &lt;p&gt;Pour avoir une recherche optimale, il suffit de t&#233;l&#233;charger les sources en binaire :
&lt;br /&gt;Par pays : &lt;a href='http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz' class='spip_out' rel='nofollow'&gt;http://geolite.maxmind.com/download...&lt;/a&gt;
&lt;br /&gt;Par ville : &lt;a href='http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz' class='spip_out' rel='nofollow'&gt;http://geolite.maxmind.com/download...&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Puis d'utiliser le code PHP suivant :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;?php&lt;br /&gt; &lt;br /&gt; include(&quot;geoipcity.inc&quot;);&lt;br /&gt; include(&quot;geoipregionvars.php&quot;);&lt;br /&gt; &lt;br /&gt; //Mettre le chemin vers le fichier binaire&lt;br /&gt; $gi = geoip_open(&quot;GeoLiteCity.dat&quot;,GEOIP_STANDARD);&lt;br /&gt; &lt;br /&gt; $record = geoip_record_by_addr($gi,&quot;88.174.5.20&quot;);&lt;br /&gt; &lt;br /&gt; echo '{&quot;lat&quot;:&quot;'.$record-&gt;latitude.'&quot;,&quot;long&quot;:&quot;'.$record-&gt;longitude.'&quot;}';&lt;br /&gt; &lt;br /&gt; geoip_close($gi);&lt;br /&gt; &lt;br /&gt; ?&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h2&gt;Utilisation dans d'autres langage&lt;/h2&gt;
&lt;p&gt;Si vous souhaitez utiliser la g&#233;olocalisation dans d'autres langages de programmation, le site met &#224; disposition une API compl&#232;te &#224; l'adresse : &lt;a href='http://www.maxmind.com/app/api' class='spip_out' rel='nofollow'&gt;http://www.maxmind.com/app/api&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Les langages propos&#233;s sont les suivants :
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; C
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Perl
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; PHP
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Apache (mod_geoip)
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Java &lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Python &lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; C# &lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Ruby &lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; MS COM Object (avec des exemple en ASP, ColdFusion, Pascal, PHP, Perl, Python et Visual Basic code)
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; VB.NET (Seulement par pays)
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Pascal
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Javascript&lt;/p&gt; &lt;p&gt;&lt;i&gt;Source : &lt;a href='http://htmlblog.net/geolocate-your-visitors-with-php-part-1' class='spip_out' rel='nofollow'&gt;http://htmlblog.net/geolocate-your-...&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;g&#233;olocalisation, g&#233;o localisation, geolocalisation, geo localisation, php, perl, ip, pays, villes,&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>PHP : Faire un ping vers une adresse IP</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/PHP-Faire-un-ping-vers-une-adresse</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/PHP-Faire-un-ping-vers-une-adresse</guid>
		<dc:date>2010-01-29T09:19:38Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Voici le code PHP permettant de faire un ping sur une adresse IP. Tr&#232;s utile pour savoir si une machine est connect&#233;e. Nous utilisons la fonction exec qui ex&#233;cute une commande directement sur le serveur. // Adresse IP &#224; tester $ip_a_tester=&quot;127.0.0.1&quot;; // Timeout : Nombre de secondes sans r&#233;ponse positive avant arr&#234;t du test $nb_seconde_a_attendre=1; if(exec(&quot;ping &quot;.$ip_a_tester.&quot; -w &quot;.$nb_seconde_a_attendre)) //si ping renvoie un r&#233;ponse positive (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/IMG/arton67.png&quot; alt=&quot;&quot; align=&quot;right&quot; width='150' height='98' class='spip_logos' style='height:98px;width:150px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Voici le code PHP permettant de faire un ping sur une adresse IP. Tr&#232;s utile pour savoir si une machine est connect&#233;e. Nous utilisons la fonction exec qui ex&#233;cute une commande directement sur le serveur.&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;// Adresse IP &#224; tester&lt;br /&gt; $ip_a_tester=&quot;127.0.0.1&quot;;&lt;br /&gt; &lt;br /&gt; // Timeout : Nombre de secondes sans r&#233;ponse positive avant arr&#234;t du test&lt;br /&gt; $nb_seconde_a_attendre=1;&lt;br /&gt; &lt;br /&gt; if(exec(&quot;ping &quot;.$ip_a_tester.&quot; -w &quot;.$nb_seconde_a_attendre)){&lt;br /&gt; &lt;br /&gt; //si ping renvoie un r&#233;ponse positive&lt;br /&gt; echo &quot;connect&#233;&quot;;&lt;br /&gt; &lt;br /&gt; }else{&lt;br /&gt; &lt;br /&gt; echo &quot;d&#233;connect&#233;&quot;;&lt;br /&gt; &lt;br /&gt; }&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>MySQL : effectuer un recherche et remplace</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/MySQL-effectuer-un-recherche-et</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/MySQL-effectuer-un-recherche-et</guid>
		<dc:date>2010-01-22T08:25:53Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Voici un morceaux de code MySQL qu'il est tr&#232;s utile de connaitre. Il permet de faire un recherche et remplace dans un champ donn&#233; d'une table. UPDATE `nom_de_la_table` SET `nom_du_champ` = REPLACE (`nom_du_champ`,'ancien_mot','nouveau_mot') Attention : les apostrophes sont diff&#233;rentes selon si on parle d'un champs de la table (nom_du_champ) ou d'un chaine de caract&#232;re (ancien_mot)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L100xH52/arton64-d1e62.png&quot; alt=&quot;&quot; align=&quot;right&quot; width='100' height='52' class='spip_logos' style='height:52px;width:100px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Voici un morceaux de code MySQL qu'il est tr&#232;s utile de connaitre. Il permet de faire un recherche et remplace dans un champ donn&#233; d'une table.&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;UPDATE `nom_de_la_table` SET `nom_du_champ` = REPLACE (`nom_du_champ`,'ancien_mot','nouveau_mot')&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Attention : les apostrophes sont diff&#233;rentes selon si on parle d'un champs de la table (nom_du_champ) ou d'un chaine de caract&#232;re (ancien_mot)&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>PhpMyAdmin : Probl&#232;me de cookies</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/PhpMyAdmin-Probleme-de-cookies</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/PhpMyAdmin-Probleme-de-cookies</guid>
		<dc:date>2010-01-19T08:31:08Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Pour une raison inconnue PhpMyAdmin s'est mis &#224; retourner l'erreur :&quot;Vous devez accepter les cookies pour continuer&quot; sur un serveur Gentoo d'OVH. Il est inutile de chercher &#224; r&#233;soudre ce probl&#232;me dans les param&#232;tres de votre navigateur. Pour ma part, il a suffit de red&#233;marrer Apache totalement. Cette manipulation peut se faire facilement sous Webmin de la mani&#232;re suivante : &quot;Serveurs&quot; -&gt; &quot;Serveur Web Apache&quot; -&gt; &quot;Arr&#234;ter Apache&quot; -&gt; &quot;D&#233;marrer Apache&quot; (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/IMG/arton63.png&quot; alt=&quot;&quot; align=&quot;right&quot; width='150' height='88' class='spip_logos' style='height:88px;width:150px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Pour une raison inconnue PhpMyAdmin s'est mis &#224; retourner l'erreur :&quot;Vous devez accepter les cookies pour continuer&quot; sur un serveur Gentoo d'OVH.&lt;/p&gt; &lt;p&gt;Il est inutile de chercher &#224; r&#233;soudre ce probl&#232;me dans les param&#232;tres de votre navigateur. Pour ma part, il a suffit de red&#233;marrer Apache totalement. Cette manipulation peut se faire facilement sous Webmin de la mani&#232;re suivante :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&quot;Serveurs&quot; -&gt; &quot;Serveur Web Apache&quot; -&gt; &quot;Arr&#234;ter Apache&quot; -&gt; &quot;D&#233;marrer Apache&quot;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez aussi le faire en SSH :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;/etc/rc.d/init.d/httpd stop&lt;br /&gt; &lt;br /&gt; /etc/rc.d/init.d/httpd start&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Base de donn&#233;es Villes et D&#233;partements de France</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/Base-de-donnees-Villes-et</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/Base-de-donnees-Villes-et</guid>
		<dc:date>2010-01-19T07:58:09Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Voici une base de donn&#233;es des d&#233;partements et des villes Fran&#231;aises. Une application AJAX / Flash est fournie pour mieux comprendre son utilisation. La base de donn&#233;es se pr&#233;sente sous la forme : region (id_region, nom_region) departement (id_departement, #id_region, code, nom_departement) maps_ville (id_ville, #id_departement, nom, cp, lat, lon) Villes et D&#233;partements de France Source : (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L114xH115/arton62-ba979.gif&quot; alt=&quot;&quot; align=&quot;right&quot; width='114' height='115' class='spip_logos' style='height:115px;width:114px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Voici une base de donn&#233;es des d&#233;partements et des villes Fran&#231;aises. Une application AJAX / Flash est fournie pour mieux comprendre son utilisation.&lt;/p&gt; &lt;p&gt;La base de donn&#233;es se pr&#233;sente sous la forme :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;region (id_region, nom_region)&lt;br /&gt; &lt;br /&gt; departement (id_departement, #id_region, code, nom_departement)&lt;br /&gt; &lt;br /&gt; maps_ville (id_ville, #id_departement, nom, cp, lat, lon)&lt;/code&gt;&lt;/div&gt;
&lt;dl class='spip_document_10 spip_documents spip_documents_center'&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.c-stan.fr/IMG/zip/ville_de_france_v3.zip&quot; title='Zip - 1 Mo' type=&quot;application/zip&quot;&gt;&lt;img src='http://www.c-stan.fr/local/cache-vignettes/L52xH52/zip-2bcd4.png' width='52' height='52' alt='Zip - 1 Mo' style='height:52px;width:52px;' /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:120px;'&gt;&lt;strong&gt;Villes et D&#233;partements de France&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;p&gt;Source : &lt;a href='http://www.jarodxxx.com/index.php?post/2008/12/04/Liste-des-villes-de-france-avec-coordon%C3%A9es-GPS-et-les-departements-et-carte-dynamique-en-flash-V3' class='spip_out' rel='nofollow'&gt;http://www.jarodxxx.com/index.php?p...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>SPIP : Jointure entre plusieurs tables dans une boucle</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/Jointure-entre-plusieurs-tables</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/Jointure-entre-plusieurs-tables</guid>
		<dc:date>2009-09-07T08:23:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Lo&#239;c Baumont</dc:creator>



		<description>Spip fait les jointures automatiquement entre les diff&#233;rentes tables renseign&#233;es. Par exemple pour sortir les documents que des articles publi&#233;s : &lt;BOUCLE_document (documents documents_articles articles)par pointsinversepagination 5statut='publie'&gt; &lt;/BOUCLE_document&gt; Spip g&#232;re tout seul les liens crit&#232;re-table et table-table (=jointures). Dans la boucle les balises utilis&#233;es seront celles de la premi&#232;re table renseign&#233;e, ici (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L100xH79/arton50-c8555.png&quot; alt=&quot;&quot; align=&quot;right&quot; width='100' height='79' class='spip_logos' style='height:79px;width:100px;' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Spip fait les jointures automatiquement entre les diff&#233;rentes tables renseign&#233;es.&lt;/p&gt; &lt;p&gt;Par exemple pour sortir les documents que des articles publi&#233;s :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&lt;BOUCLE_document (documents documents_articles articles){par points}{inverse}{pagination 5}{statut='publie'}&gt;&lt;br /&gt; &lt;br /&gt; &lt;/BOUCLE_document&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Spip g&#232;re tout seul les liens crit&#232;re-table et table-table (=jointures).&lt;/p&gt; &lt;p&gt;Dans la boucle les balises utilis&#233;es seront celles de la premi&#232;re table renseign&#233;e, ici &quot;documents&quot;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Redirection chez Amen</title>
		<link>http://blog.c-stan.fr/Le-coin-des-developpeurs/Redirection-chez-Amen</link>
		<guid isPermaLink="true">http://blog.c-stan.fr/Le-coin-des-developpeurs/Redirection-chez-Amen</guid>
		<dc:date>2007-08-06T08:06:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Claude Stan</dc:creator>



		<description>Pour param&#233;trer la redirection web, dans espace client Amen http://client.amen.fr Cliquez sur &quot;Mes Packs&quot;, puis s&#233;lectionner le pack concern&#233; Cliquez sur l'onglet sup&#233;rieur &quot;DOMAINE&quot;, dans la rubrique &quot;Param&#232;tres techniques&quot;, cliquez sur le bouton &quot;Configuration de votre zone DNS&quot;. Dans la nouvelle fen&#234;tre,cliquez sur le bouton &quot;Mode Expert&quot; =&gt; cocher la case &#224; droite de l'entr&#233;e www =&gt; dans la liste d&#233;roulante en haut, choisissez &quot;Modifier une entr&#233;e&quot; Dans la nouvelle fen&#234;tre : =&gt; TYPE : (...)

-
&lt;a href="http://blog.c-stan.fr/categorie,25" rel="directory"&gt;Le coin des d&#233;veloppeurs&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Pour param&#233;trer la redirection web, dans espace client Amen &lt;a href='http://client.amen.fr/' class='spip_out'&gt;http://client.amen.fr&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Cliquez sur &quot;Mes Packs&quot;, puis s&#233;lectionner le pack concern&#233;
&lt;br /&gt;&lt;img src=&quot;http://www.c-stan.fr/local/cache-vignettes/L6xH6/puce-cebf5.gif&quot; width='6' height='6' class='puce' alt=&quot;-&quot; style='height:6px;width:6px;' /&gt; Cliquez sur l'onglet sup&#233;rieur &quot;DOMAINE&quot;,
&lt;br /&gt;dans la rubrique &quot;Param&#232;tres techniques&quot;, cliquez sur le bouton &quot;Configuration de votre zone DNS&quot;.&lt;/p&gt; &lt;p&gt;Dans la nouvelle fen&#234;tre,cliquez sur le bouton &quot;Mode Expert&quot;
&lt;br /&gt;=&gt; cocher la case &#224; droite de l'entr&#233;e www
&lt;br /&gt;=&gt; dans la liste d&#233;roulante en haut, choisissez &quot;Modifier une entr&#233;e&quot;&lt;/p&gt; &lt;p&gt;Dans la nouvelle fen&#234;tre :
&lt;br /&gt;=&gt; TYPE : Redirection web
&lt;br /&gt;=&gt; REDIRECTION : l'adresse de redirection (Exemple : http://www.nomdevotreFAI/votredossier/votrepage.html)&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
































</channel>

</rss>

