<?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>Kodono &#187; php</title>
	<atom:link href="http://blog.kodono.info/wordpress/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kodono.info/wordpress</link>
	<description>Pour tous les technophiles</description>
	<lastBuildDate>Fri, 03 Feb 2012 08:15:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Stocker un mot de passe en PHP grâce à bcrypt [sécurité]</title>
		<link>http://blog.kodono.info/wordpress/2011/08/08/stocker-un-mot-de-passe-en-php-grace-a-bcrypt-securite/</link>
		<comments>http://blog.kodono.info/wordpress/2011/08/08/stocker-un-mot-de-passe-en-php-grace-a-bcrypt-securite/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 17:53:00 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=657</guid>
		<description><![CDATA[[niveau: intermédiaire] Il a été démontré que le stockage de mot de passe n&#8217;est pas chose aisée, et que l&#8217;utilisation d&#8217;une méthode de hashage (MD5, SHA-1, etc) n&#8217;est pas parfaite, même avec l&#8217;utilisation d&#8217;un salt. D&#8217;après cette constatation plusieurs articles indiquent que la meilleure méthode reste l&#8217;utilisation de bcrypt, comme on peut le lire dans [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<p>Il a été démontré que le stockage de mot de passe n&#8217;est pas chose aisée, et que l&#8217;utilisation d&#8217;une méthode de hashage (MD5, SHA-1, etc) n&#8217;est pas parfaite, même avec l&#8217;utilisation d&#8217;un <em>salt</em>. D&#8217;après cette constatation plusieurs articles indiquent que la meilleure méthode reste l&#8217;utilisation de <code>bcrypt</code>, comme on peut le lire dans <a href="http://codahale.com/how-to-safely-store-a-password/">How to safely store a password</a>.</p>
<p>L&#8217;utilisation de <code>bcrypt</code> est assez simple :<br />
1) Télécharger <a href="http://www.openwall.com/phpass/">phpass</a> (fichier .tgz qui contient un fichier <strong>PasswordHash.php</strong>);<br />
2) Appeler <em>PasswordHash.php</em> dans votre page :</p>
<pre class="brush:php">&lt;?php require('includes/PasswordHash.php'); ?></pre>
<p>3) Maintenant vous pouvez utiliser l&#8217;objet PasswordHash comme cela :</p>
<pre class="brush:php">&lt;?php
$password = $_POST["password"];
$hasher = new PasswordHash(8, FALSE);
$hash = $hasher->HashPassword($password);
?></pre>
<p>Et pour vérifier un mot de passe, vous devez utiliser ce petit bout de code :</p>
<pre class="brush:php">&lt;?php // vérification du mot de passe
$password = $_POST["password"];
$password_correct = "password qui vient de la base de données"; /* Le hash stocké précédemment */
$hasher = new PasswordHash(8, FALSE);
$check = $hasher->CheckPassword($password, $password_correct);

if ($check) {
 echo "Password correct!";
}
else {
 echo "Password incorrect...";
}
?></pre>
<p>A noter que si vous souhaitez le rendre compatible avec d&#8217;autres systèmes équivalents (comme <a href="http://www.mindrot.org/projects/jBCrypt/">BCrypt pour Java</a> par exemple), alors il faudra vous assurer que votre machine a bien CRYPT_BLOWFISH d&#8217;installé (on peut le voir avec <code>&lt;?php echo CRYPT_BLOWFISH; ?&gt;</code>) afin d&#8217;avoir une bonne compatibilité des deux systèmes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2011/08/08/stocker-un-mot-de-passe-en-php-grace-a-bcrypt-securite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les widgets de la sidebar WordPress ne se sauvegardent pas [WordPress]</title>
		<link>http://blog.kodono.info/wordpress/2011/02/19/probleme-widgets-sidebar-wordpress-non-sauvegardes/</link>
		<comments>http://blog.kodono.info/wordpress/2011/02/19/probleme-widgets-sidebar-wordpress-non-sauvegardes/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 11:20:16 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=520</guid>
		<description><![CDATA[[niveau: intermédiaire] Vous utilisez WordPress et avez choisi un des nombreux thèmes gratuits qu&#8217;on trouve sur le Net. Et puis vous souhaitez utiliser la barre latérale (&#171;&#160;sidebar&#160;&#187;) pour afficher dynamiquement des widgets comme WordPress le permet ? Cependant vous remarquez que même en cliquant sur &#171;&#160;Save&#160;&#187;, les widgets ajoutés ne se sauvegardent jamais&#8230; Tout d&#8217;abord [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: intermédiaire]</p>
<p>Vous utilisez WordPress et avez choisi un des nombreux thèmes gratuits qu&#8217;on trouve sur le Net. Et puis vous souhaitez utiliser la barre latérale (&laquo;&nbsp;sidebar&nbsp;&raquo;) pour afficher dynamiquement des widgets comme WordPress le permet ? Cependant vous remarquez que même en cliquant sur &laquo;&nbsp;Save&nbsp;&raquo;, les widgets ajoutés ne se sauvegardent jamais&#8230;</p>
<p>Tout d&#8217;abord vous devez aller vérifier le fichier sidebar.php (&laquo;&nbsp;Barre latérale&nbsp;&raquo;) dans l&#8217;éditeur de votre thème.<br />
Voici un exemple de ce que vous devriez avoir:</p>
<pre class="brush:php">&lt;ul id="sidebar"&gt;
&lt;?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?&gt;
 &lt;li id="about"&gt;
  &lt;h2&gt;About&lt;/h2&gt;
  &lt;p&gt;This is my blog.&lt;/p&gt;
 &lt;/li&gt;
 &lt;li id="links"&gt;
  &lt;h2&gt;Links&lt;/h2&gt;
  &lt;ul&gt;
   &lt;li&gt;&lt;a href="http://example.com"&gt;Example&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
 &lt;/li&gt;
&lt;?php endif; ?&gt;
&lt;/ul&gt;</pre>
<p>C&#8217;est le code par défaut <strong>qui fonctionne</strong> pour que la sidebar s&#8217;affiche correctement. Vous devriez donc d&#8217;abord tester en insérant ce code là. On notera que s&#8217;il n&#8217;y a pas de widgets, alors la barre affichera les deux éléments définis par défaut (ici &laquo;&nbsp;About&nbsp;&raquo; et &laquo;&nbsp;Links&nbsp;&raquo;).</p>
<p>Maintenant, il suffit d&#8217;activer la sidebar dans le fichier &laquo;&nbsp;functions.php&nbsp;&raquo; de votre thème. Pour cela, voici le code que vous devriez avoir dans ce fichier :</p>
<pre class="brush:php">&lt;?php
if ( function_exists('register_sidebar') )
    register_sidebar();
?&gt;</pre>
<p>C&#8217;est tout, seulement ces quatre lignes. Il dit à WordPress qu&#8217;il doit activer une sidebar. Maintenant, les widgets doivent pouvoir s&#8217;ajouter et se sauvegarder sans problème.</p>
<p>Supposons maintenant que vous ne voulez pas utiliser le code par défaut, mais que vous voulez une barre latérale un peu plus personnalisée.<br />
Voici un exemple avec des <em>div</em> :</p>
<pre class="brush:php">&lt;div id="sidebar"&gt;
&lt;?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?&gt;
 &lt;div class="mywidget"&gt;
  &lt;h2 class="title"&gt;About&lt;/h2&gt;
  &lt;p&gt;This is my blog.&lt;/p&gt;
 &lt;/div&gt;
 &lt;div class="mywidget"&gt;
  &lt;h2 class="title"&gt;Links&lt;/h2&gt;
  &lt;ul&gt;
   &lt;li&gt;&lt;a href="http://example.com"&gt;Example&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
 &lt;/div&gt;
&lt;?php endif; ?&gt;
&lt;/div&gt;</pre>
<p>Et le code associé à mettre dans le fichier functions.php :</p>
<pre class="brush:php">&lt;?php
if ( function_exists('register_sidebar') )
    register_sidebar(array(
        'before_widget' =&gt; '&lt;div class="monwidget"&gt;',
        'after_widget' =&gt; '&lt;/div&gt;',
        'before_title' =&gt; '&lt;h2 class="title"&gt;',
        'after_title' =&gt; '&lt;/h2&gt;',
    ));
?&gt;</pre>
<p>Maintenant vos widgets devraient s&#8217;enregistrer sans problème !</p>
<p>(Source: <a href="http://automattic.com/code/widgets/themes/">http://automattic.com/code/widgets/themes/</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2011/02/19/probleme-widgets-sidebar-wordpress-non-sauvegardes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Utiliser la fonction mail() de PHP avec exim4 [Linux]</title>
		<link>http://blog.kodono.info/wordpress/2009/12/10/utiliser-la-fonction-mail-de-php-avec-exim4-linux/</link>
		<comments>http://blog.kodono.info/wordpress/2009/12/10/utiliser-la-fonction-mail-de-php-avec-exim4-linux/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 10:51:20 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Niveau intermédiaire]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=383</guid>
		<description><![CDATA[[niveau intermédiaire] Si vous utilisez une Debian ainsi que PHP, vous voulez certainement pouvoir envoyer des emails grâce à la fonction mail() qu&#8217;offre le langage. Pour cela, on va utiliser exim4 qui est en général déjà installé sur votre Debian toute fraiche (normalement vous avez également /usr/sbin/sendmail qui redirige sur /usr/sbin/exim4). Si vous n&#8217;avez pas [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau intermédiaire]</p>
<p>Si vous utilisez une Debian ainsi que PHP, vous voulez certainement pouvoir envoyer des emails grâce à la fonction <em>mail()</em> qu&#8217;offre le langage. Pour cela, on va utiliser <b>exim4</b> qui est en général déjà installé sur votre Debian toute fraiche (normalement vous avez également /usr/sbin/sendmail qui redirige sur /usr/sbin/exim4). Si vous n&#8217;avez pas <b>exim</b> d&#8217;installé, je vous invite à aller lire <a href="http://www.paperblog.fr/576185/installer-l-envoi-de-mails-depuis-son-site-la-fonction-php-mail/">ce billet de Paperblog</a>.</p>
<p>Par défaut <b>exim4</b> est configuré pour n&#8217;envoyer les emails qu&#8217;aux utilisateurs locaux. Pour modifier ce comportement, vous devez modifier le fichier <b>/etc/exim4/update-exim4.conf.conf</b> en mettant :</p>
<div class="code">dc_eximconfig_configtype=&#8217;internet&#8217;</div>
<p>Redémarrer <b>exim4</b> et vous devriez maintenant pouvoir envoyer des emails au monde entier. Attention cependant de bien bloquer le port 25 de votre machine au monde extérieur (mais pas en local) afin d&#8217;éviter que quiconque puisse utiliser votre serveur SMTP.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/12/10/utiliser-la-fonction-mail-de-php-avec-exim4-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tester des expressions régulières (RegExp) en ligne [Programmation]</title>
		<link>http://blog.kodono.info/wordpress/2009/05/06/tester-des-expressions-regulieres-regexp-en-ligne-programmation/</link>
		<comments>http://blog.kodono.info/wordpress/2009/05/06/tester-des-expressions-regulieres-regexp-en-ligne-programmation/#comments</comments>
		<pubDate>Wed, 06 May 2009 11:40:35 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Niveau expert]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[regexp]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=123</guid>
		<description><![CDATA[[niveau: expert] Vous connaissez certainement les RegExp. Lumadis.be propose de tester nos expressions régulières en utilisant les fonctions PHP preg_match, preg_match_all et ereg. Un outil en ligne bien pratique pour ces expressions parfois difficiles à formater ! EDIT: on notera aussi l&#8217;existence de cet autre outils en ligne très complet : http://gskinner.com/RegExr/]]></description>
			<content:encoded><![CDATA[<p>[niveau: expert]</p>
<p>Vous connaissez certainement les <a href="http://www.expreg.com/">RegExp</a>. Lumadis.be propose de <a href="http://lumadis.be/regex/test_regex.php?lang=fr">tester nos expressions régulières</a> en utilisant les fonctions PHP <em>preg_match</em>, <em>preg_match_all</em> et <em>ereg</em>.</p>
<p>Un outil en ligne bien pratique pour ces expressions parfois difficiles à formater !</p>
<p><b>EDIT</b>: on notera aussi l&#8217;existence de cet autre outils en ligne très complet : <a href="http://gskinner.com/RegExr/">http://gskinner.com/RegExr/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/05/06/tester-des-expressions-regulieres-regexp-en-ligne-programmation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Débogage Javascript et PHP dans Firebug [Programmation]</title>
		<link>http://blog.kodono.info/wordpress/2009/04/16/debogage-javascript-et-php-dans-firebug-programmation/</link>
		<comments>http://blog.kodono.info/wordpress/2009/04/16/debogage-javascript-et-php-dans-firebug-programmation/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 06:28:47 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
				<category><![CDATA[Debug]]></category>
		<category><![CDATA[Navigateur]]></category>
		<category><![CDATA[Niveau expert]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=55</guid>
		<description><![CDATA[[niveau: expert] Sur l&#8217;excellent blog Ajaxian je viens de découvrir qu&#8217;il existe un plugin au module Firebug (dont je parlais justement hier) qui permet de déboguer du PHP en console ! Cette petite merveille se nomme FirePHP et m&#8217;a l&#8217;air prometteur au vue des images: Je ne code actuellement pas en PHP, mais je dois [...]]]></description>
			<content:encoded><![CDATA[<p>[niveau: expert]</p>
<p>Sur l&#8217;excellent blog <a href="http://ajaxian.com/archives/firephp-tying-together-firebug-and-php">Ajaxian</a> je viens de découvrir qu&#8217;il existe un plugin au module Firebug (<a href="http://blog.kodono.info/wordpress/2009/04/15/les-extensions-a-avoir-firefox/">dont je parlais justement hier</a>) qui permet de déboguer du PHP en console ! Cette petite merveille se nomme <a href="http://www.christophdorn.com/Blog/2009/04/03/how-to-integrate-firephp-for-ajax-development/">FirePHP</a> et m&#8217;a l&#8217;air prometteur au vue des images:<br />
<img src="http://blog.kodono.info/wordpress/wp-content/uploads/2009/04/20090416_firephp.png" alt="firephp" title="firephp" width="422" height="457" class="aligncenter size-full wp-image-56" /></p>
<p>Je ne code actuellement pas en PHP, mais je dois bientôt retravailler sur un projet avec ce langage, je pourrai alors vous en dire un peu plus !</p>
<p>A noter qu&#8217;il existe d&#8217;autres moyens de débugguer, comme <a href="http://particletree.com/features/php-quick-profiler/">PHP Quick Profiler (en)</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kodono.info/wordpress/2009/04/16/debogage-javascript-et-php-dans-firebug-programmation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

