<?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>L&#039;actualité high tech &#187; Tutoriel</title>
	<atom:link href="http://www.fr.hightech-area.com/category/tutoriel-astuce/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fr.hightech-area.com</link>
	<description>Hightech Area : L&#039;actualité High-Tech au quotidien</description>
	<lastBuildDate>Tue, 08 Mar 2011 18:18:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Gimp : détourer un objet ou un visage</title>
		<link>http://www.fr.hightech-area.com/gimp-detourer-un-objet-ou-un-visage.html</link>
		<comments>http://www.fr.hightech-area.com/gimp-detourer-un-objet-ou-un-visage.html#comments</comments>
		<pubDate>Thu, 09 Jul 2009 16:25:22 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[gimp]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=493</guid>
		<description><![CDATA[Je suis loin d&#8217;être un pro en graphisme, mais Steven vient de m&#8217;expliquer comment détourer un objet ou un visage sur une image sous Gimp. Trouvant cette information pratique et très utile je pense que ça peut servir à certain d&#8217;entre vous et je vous en fais donc part. Tout d&#8217;abord, le fond de votre [...]]]></description>
			<content:encoded><![CDATA[<p>Je suis loin d&#8217;être un pro en graphisme, mais <a href="http://steven-lerouzic.1s.fr/">Steven</a> vient de m&#8217;expliquer comment détourer un objet ou un visage sur une image sous Gimp. Trouvant cette information pratique et très utile je pense que ça peut servir à certain d&#8217;entre vous et je vous en fais donc part.</p>
<p>Tout d&#8217;abord, le fond de votre image doit être d&#8217;une couleur unie. Si c&#8217;est le cas, suivez la procédure suivante :</p>
<ul>
<li>Ouvrez votre image</li>
<li>Prenez l&#8217;outil de sélection contigüe (baguette magique)</li>
<li>Cliquez sur le background (la zone derrière l&#8217;image à découper)</li>
<li>Cliquez sur tous les endroits où on voit le fond en maintenant la touche <em>shift</em> appuyé afin de pouvoir faire plusieurs sélections. Maintenant, vous devez avoir tout le fond sélectionné</li>
<li>Faites <em>CTRL+i</em> afin d&#8217;inverser la sélection</li>
<li>Retourner sur le calque dans la boîte de dialogue des calques</li>
<li>Faites un clic droit puis : <em>ajouter un masque de calque</em></li>
<li>Cochez <em>sélection</em></li>
<li>Validez</li>
<li>Faites <em>CTRL+shift+a</em> pour enlever la sélection</li>
<li>Vérifiez bien le calque sur lequel vous êtes est bien le masque de calque qui est entouré de blanc</li>
<li>Allez dans <em>filtre &gt; flou &gt; flou gaussien</em></li>
<li>Insérez une valeur de 5 pixels (n&#8217;importe quelle méthode)</li>
<li>Allez dans <em>couleurs &gt; luminosité-contraste</em></li>
<li>Diminuez la luminosité et augmentez le contraste (par exemple : -76 de luminosité et +70 de contraste)</li>
<li>Il est préférable ensuite d&#8217;aller dans <em>couleurs &gt; auto &gt; étendre les contrastes</em></li>
<li>Faites ensuite clic droit sur le calque puis cliquez sur <em>appliquer le masque de calque</em></li>
<li>On s&#8217;occupe maintenant des ombres : dupliquez d&#8217;abord le calque (<em>clique droit &gt; dupliquer</em>)</li>
<li>Sur le calque du bas, faites : <em>couleurs &gt; couleur vers alpha</em></li>
<li>Prenez la même couleur que la couleur de votre arrière plan</li>
<li>Sur le calque du haut, prenez l&#8217;outil gomme</li>
<li>Sélectionnez une brosse douce (par exemple : <em>San titre#1 (17 x 17)</em></li>
<li>Gommez tous les endroits où vous voyez la couleur de l&#8217;arrière plan mal détouré. Faites cela de façon légère : ça va rendre les ombres transparentes (prenez une brosse plus petite si nécessaire)</li>
<li>Sur le calque du haut faites un clic droit puis <em>fusionner vers le bas</em></li>
</ul>
<p>Et voilà <img src='http://www.fr.hightech-area.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Vous obtenez normalement votre image sur un fond transparent.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/gimp-detourer-un-objet-ou-un-visage.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Se connecter à une machine dont on a oublié le mot de passe utilisateur</title>
		<link>http://www.fr.hightech-area.com/se-connecter-a-une-machine-sans-le-mot-de-passe-utilisateur.html</link>
		<comments>http://www.fr.hightech-area.com/se-connecter-a-une-machine-sans-le-mot-de-passe-utilisateur.html#comments</comments>
		<pubDate>Tue, 07 Jul 2009 15:57:38 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[OS/Software]]></category>
		<category><![CDATA[Tutoriel]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=484</guid>
		<description><![CDATA[Vous avez perdu votre mot de passe utilisateur et ne pouvez plus vous connecter à votre machine ? Alors laissez moi vous présenter Kon-Boot. Kon-Boot est un petit programme sous la forme d&#8217;un boot-CD permettant de se connecter à une machine sans connaître le mot de passe utilisateur du système d&#8217;exploitation. Pour ce faire, il [...]]]></description>
			<content:encoded><![CDATA[<p>Vous avez perdu votre <strong>mot de passe</strong> utilisateur et ne pouvez plus vous connecter à votre machine ? Alors laissez moi vous présenter <strong>Kon-Boot</strong>.</p>
<p><strong><a href="http://www.piotrbania.com/all/kon-boot/">Kon-Boot</a></strong> est un petit programme sous la forme d&#8217;un <strong>boot-CD</strong> permettant de <strong>se connecter à une machine sans connaître le mot de passe utilisateur</strong> du système d&#8217;exploitation. Pour ce faire, il suffit de télécharger le fichier image ISO et de le graver. Ensuite, il suffit de démarrer l&#8217;ordinateur en bootant sur le CD : au bout de quelques secondes, le démarrage se fera normalement sur le système d&#8217;exploitation sauf que n&#8217;importe quel mot de passe sera correct. Par contre, sous Linux, il faudra vous connecter avec l&#8217;utilisateur &#8220;<em>kon-usr</em>&#8221; puis restaurer les modifications avec &#8220;<em>kon-fix</em>&#8221; avant de quitter le système. On notera aussi qu&#8217;il existe une version pour disquette.</p>
<p>Voici une liste des systèmes d&#8217;exploitation supportés par l&#8217;application :</p>
<p><img class="aligncenter size-full wp-image-480" title="kon-boot-windows-versions" src="http://www.fr.hightech-area.com/wp-content/uploads/2009/07/kon-boot-windows-versions.png" alt="kon-boot-windows-versions" width="336" height="188" /></p>
<p><img class="aligncenter size-full wp-image-482" title="kon-boot-kernel" src="http://www.fr.hightech-area.com/wp-content/uploads/2009/07/kon-boot-kernel.png" alt="kon-boot-kernel" width="355" height="92" /></p>
<p>Si le logiciel est si rapide, léger et efficace c&#8217;est parce qu&#8217;il fait &#8220;sauter&#8221; l&#8217;étape d&#8217;identification du système d&#8217;exploitation en modifiant le <strong>kernel</strong> lors du démarrage contrairement à ses concurrents qui &#8220;cherchent&#8221; le mot de passe à partir de bases de données.</p>
<p>Je rappelle que ce genre de manipulation se fait avec l&#8217;accord du propriétaire de la machine ! Si cette technique est appliquée en dehors d&#8217;un cadre légal vous risquez des poursuites judiciaires.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/se-connecter-a-une-machine-sans-le-mot-de-passe-utilisateur.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Que faire lorsqu&#8217;on est victime de plagiat ?</title>
		<link>http://www.fr.hightech-area.com/victime-de-plagiat-les-solutions.html</link>
		<comments>http://www.fr.hightech-area.com/victime-de-plagiat-les-solutions.html#comments</comments>
		<pubDate>Fri, 26 Jun 2009 07:00:30 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[duplicate content]]></category>
		<category><![CDATA[plagiat]]></category>
		<category><![CDATA[référencement]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=429</guid>
		<description><![CDATA[Vous êtes victime de vol de contenu ? Que faire ? Lorsque deux pages web sont en duplicate content, Google supprime ces pages de son index ou en indexe &#8216;une des deux. C&#8217;est pourquoi, en ne réagissant pas à un vol de contenu vous risquez d&#8217;être pénalisé. Il serait dommage que le voleur soit indexé [...]]]></description>
			<content:encoded><![CDATA[<p>Vous êtes victime de <strong>vol de contenu</strong> ? Que faire ? Lorsque deux pages web sont en duplicate content, Google supprime ces pages de son index ou en indexe &#8216;une des deux. C&#8217;est pourquoi, en ne réagissant pas à un vol de contenu vous risquez d&#8217;être pénalisé. Il serait dommage que le voleur soit indexé alors que vous, l&#8217;auteur, ne le soyez pas !</p>
<p>Si un site copie votre contenu sans votre autorisation voici les démarches à suivre :</p>
<ul>
<li>Récupérez des preuves en faisant faire des copies d&#8217;écran (screen shot) par vous même mais aussi par d&#8217;autres personnes qui serviront de témoignage.</li>
<li>Contactez l&#8217;auteur du plagia, autrement dit le voleur, via la rubrique contact de son site. S&#8217;il n&#8217;y en a pas et s&#8217;il n&#8217;y a pas de rubrique &#8220;mentions légales&#8221; avec ses coordonnées, essayez de l&#8217;avertir par les commentaires.</li>
<li>Contactez le voleur en récupérant ses coordonnées de contact à l&#8217;aide de l&#8217;outils <a href="http://www.who.is/">whois</a>. Si les données sont correctes vous aurez la chance de pouvoir lui envoyer un courrier en recommandé ou de l&#8217;appeler. Rappelez lui les articles du code de la propriété intellectuelle.</li>
<li>Si à ce stade vous n&#8217;avez pas réussi à trouver un accord à l&#8217;amiable, contactez son hébergeur. L&#8217;hébergeur étant responsable du contenu des sites qu&#8217;il héberge, il se doit d&#8217;intervenir.</li>
<li>Si le problème persiste toujours, il va falloir utiliser les grands moyens et avoir recours à la justice : une solution conseillée par Google est de déposer une plainte <a href="http://www.google.com/dmca.html">DMCA</a>. Si vous décidez d&#8217;aller en justice, contactez un avocat (qui s&#8217;y connait en droits d&#8217;auteur). Ce dernier sera content de travailler pour vous puisque dans ce genre d&#8217;affaire vous êtes toujours gagnant. Les frais de justice devront vous être remboursés par le plagieur. Vous ne perdrez donc pas d&#8217;argent, mieux : vous en gagnerez ! N&#8217;hésitez pas à faire monter la facture, vous ressortirez gagnant.</li>
<li>La plupart des plagieurs (la totalité ?) font un site pour l&#8217;argent. Si votre voleur a un compte chez une régie publicitaire telle que Adsense, dénoncez-le. Il est interdit dans les règles d&#8217;utilisateurs du service Adsense de gagner de l&#8217;argent avec un contenu plagié.</li>
</ul>
<p>Si, suite à un contenu dupliqué, le moteur de recherche Google a supprimé votre site de son index, vous pouvez <a href="http://www.google.com/support/webmasters/bin/answer.py?answer=35843">renvoyer votre site à Google</a> pour qu&#8217;il soit réexaminé après avoir fait les modifications nécessaires en matière de duplicate content bien évidemment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/victime-de-plagiat-les-solutions.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Le duplicate content et le référencement</title>
		<link>http://www.fr.hightech-area.com/le-duplicate-content-et-le-referencement.html</link>
		<comments>http://www.fr.hightech-area.com/le-duplicate-content-et-le-referencement.html#comments</comments>
		<pubDate>Fri, 26 Jun 2009 07:00:10 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[duplicate content]]></category>
		<category><![CDATA[référencement]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=428</guid>
		<description><![CDATA[Le duplicate content (ou contenu dupliqué) peut se définir comme le fait qu&#8217;un même contenu soit accessible via plusieurs urls. Les moteurs de recherche d&#8217;aujourd&#8217;hui basent leur notoriété sur la pertinence de leurs résultats. Si les moteurs proposaient à leurs visiteurs plusieurs résultats identiques, les résultats ne seraient pas pertinents.  Afin de conserver un maximum [...]]]></description>
			<content:encoded><![CDATA[<p>Le <strong>duplicate content</strong> (ou contenu dupliqué) peut se définir comme le fait qu&#8217;un même contenu soit accessible via plusieurs urls.</p>
<p>Les moteurs de recherche d&#8217;aujourd&#8217;hui basent leur notoriété sur la pertinence de leurs résultats. Si les moteurs proposaient à leurs visiteurs plusieurs résultats identiques, les résultats ne seraient pas pertinents.  Afin de conserver un maximum de pertinence, les principaux moteurs de recherche tels que Google ou Yahoo ont mis en place des filtres afin de pénaliser ou supprimer les contenus dupliqués de leur index.</p>
<p>Le duplicate content peut être externe, c&#8217;est à dire qu&#8217;un même contenu peut être dupliqué sur deux sites différents mais peut aussi être interne c&#8217;est à dire à l&#8217;intérieur même de votre site.</p>
<p>Maintenant que la notion de &#8220;duplicate content&#8221; a été éclaircie, passons aux solutions permettant d&#8217;éviter, voire d&#8217;éradiquer, ce problème. Je traiterais dans un premier temps comment éviter le duplicate content sur votre site, ensuite j&#8217;expliquerais que faire si vous êtes <a href="/victime-de-plagiat-les-solutions.html">victime de plagiat</a>.</p>
<h1>Duplicate content à l&#8217;intérieur de votre site</h1>
<h2>L&#8217;url de base du site</h2>
<p>Il n&#8217;est pas rare qu&#8217;un site soit accessible avec ET sans les &#8220;www&#8221;. Rien que ceci fait que toutes vos pages ont déjà deux urls différentes. Les principaux moteurs gèrent assez bien ce problème mais il reste important de corriger ce problème. La solution est très simple, il suffit d&#8217;ajouter ces deux lignes dans votre .htaccess :<br />
<code><br />
RewriteCond %{HTTP_HOST} !^www\.fr\.hightech-area\.com [NC]<br />
RewriteRule (.*) http://www\.fr\.hightech-area\.com/$1 [QSA,R=301,L]</code></p>
<p>Avez-vous déjà compté combien d&#8217;urls mènent à votre page d&#8217;accueil ? Une ? Peut-être plus. Certains webmasters pensent n&#8217;avoir qu&#8217;une seule url pour leur page d&#8217;accueil, et pourtant &#8230; Exemple :</p>
<ul>
<li>http://fr.hightech-area.com/</li>
<li>http://www.fr.hightech-area.com/</li>
<li>http://fr.hightech-area.com/index.php</li>
<li>http://www.fr.hightech-area.com/index.php</li>
</ul>
<p>Rien que dans l&#8217;exemple ci-dessus on peut se rendre compte qu&#8217;une page d&#8217;accueil peut être dupliquée 4 fois. Cette solution très simple à appliquer n&#8217;est donc pas négligeable.</p>
<p>Nous avons donc vu précédemment comment rendre les &#8220;www&#8221; obligatoires. Cependant, il reste ces deux urls :</p>
<ul>
<li>http://www.fr.hightech-area.com/</li>
<li>http://www.fr.hightech-area.com/index.php</li>
</ul>
<p>Encore une fois, la solution pour pallier à ce problème est très simple à l&#8217;aide d&#8217;une petite fonction et d&#8217;une redirection 301 :<br />
<code><br />
function redirection_301($url_attendue) {<br />
if ($_SERVER['REQUEST_URI'] != $url_attendue)<br />
{<br />
header("Status: 301 Moved Permanently", false, 301);<br />
header("Location: http://www.fr.hightech-area.com".$url_attendue."");<br />
exit;<br />
}<br />
}<br />
</code></p>
<p>Faite ensuite appel à cette fonction comme ceci :<br />
<code>redirection_301('/');</code></p>
<p>Désormais, la page d&#8217;accueil est accessible uniquement et seulement via une seule unique (j&#8217;insiste bien <img src='http://www.fr.hightech-area.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) url :</p>
<p>http://www.fr.hightech-area.com/</p>
<h2>Plusieurs noms de domaine pour un même site</h2>
<p>Peut-être avez vous enregistré plusieurs noms de domaine pour le même site afin de vous protéger du <a href="http://fr.wikipedia.org/wiki/Cybersquattage">cyber-squatting</a>. Il est important dans ce cas de désigner un seul nom de domaine pour votre site et de rediriger les autres domaines vers le domaine principal.</p>
<h2>Identifiants de sessions dans l&#8217;url</h2>
<p>Les identifiants de sessions sont très pratiques pour un site avec un espace membre par exemple, mais si le référencement est très important pour votre site, le stockage des identifiants des sessions ne doit pas se faire dans l&#8217;url. En effet, le moteur de recherche aura un nouvel identifiant de session à chaque visite et accédera donc à un même contenu avec une url différente, votre site risquera donc d&#8217;être supprimé ou pénalisé de l&#8217;index. Exemple :</p>
<ul>
<li>http://www.fr.hightech-area.com/index.php?SESSION_ID=1</li>
<li>http://www.fr.hightech-area.com/index.php?SESSION_ID=2</li>
<li>etc &#8230;</li>
</ul>
<h2>Ordre des variables PHP dans l&#8217;url</h2>
<p>Les urls http://www.fr.hightech-area.com/forum.php?forum=1&amp;topic=8 et http://www.fr.hightech-area.com/forum.php?topic=8&amp;forum=1 renvoient le même contenu, pourtant ce sont deux urls différentes et les moteurs de recherche considèreront cela comme du duplicate content.</p>
<h2>Url rewriting</h2>
<p>L&#8217;<a href="http://www.webrankinfo.com/dossiers/debutants/url-rewriting">url rewriting</a> est excellent pour le référencement, il n&#8217;y a aucun doute. Mais parfois il peut y avoir du duplicate content. Prenons l&#8217;exemple d&#8217;un forum où un topic est accessible à cette adresse : forum-4-mon-projet.html</p>
<p>C&#8217;est généralement l&#8217;id (ici 4) qui détermine le forum à afficher et non le titre, donc ce topic est aussi accessible à cette adresse : forum-4-autre-projet.html . Il suffirait qu&#8217;un membre fasse un lien vers cette deuxième url pour que Google détecte du contenu dupliqué.</p>
<p>Autre chose, lorsque vous changez vos urls (lorsque vous installez l&#8217;url rewriting par exemple), mettez des redirections 301, afin d&#8217;éviter, toujours, le duplicate content.</p>
<p>On ne s&#8217;en rend pas toujours compte mais le duplicate content est parfois là où on ne l&#8217;attend pas. Il faut donc être rigoureux lors de la création de son site afin de bien avoir une url pour chaque contenu <img src='http://www.fr.hightech-area.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<h1>Duplicate content à l&#8217;extérieur de votre site</h1>
<p><a href="/victime-de-plagiat-les-solutions.html">Victime de plagiat</a> ? Cet article vous donnera <a href="/victime-de-plagiat-les-solutions.html">les démarches à suivre</a> <img src='http://www.fr.hightech-area.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/le-duplicate-content-et-le-referencement.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Comment bien choisir un nom de domaine ?</title>
		<link>http://www.fr.hightech-area.com/comment-bien-choisir-un-nom-de-domaine.html</link>
		<comments>http://www.fr.hightech-area.com/comment-bien-choisir-un-nom-de-domaine.html#comments</comments>
		<pubDate>Sat, 20 Jun 2009 18:21:20 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[nom de domaine]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=411</guid>
		<description><![CDATA[Lorsqu&#8217;on démarre une activité sur Internet, le choix du nom de domaine est une étape très importante à ne surtout pas négliger. Un nom de domaine mal choisit pourrait pénaliser votre activité. Existe-il des conseils, des techniques pour bien choisir son nom de domaine ? Oui et ce sera le sujet de cet article Tout [...]]]></description>
			<content:encoded><![CDATA[<p>Lorsqu&#8217;on démarre une activité sur Internet, le choix du nom de domaine est une étape très importante à ne surtout pas négliger. <strong>Un nom de domaine mal choisit pourrait pénaliser votre activité</strong>. Existe-il des conseils, des techniques pour bien choisir son nom de domaine ? Oui et ce sera le sujet de cet article <img src='http://www.fr.hightech-area.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-411"></span>Tout d&#8217;abord, une image pour illustrer la composition d&#8217;un nom de domaine afin que vous puissiez tous comprendre les termes que j&#8217;emploierais par la suite :</p>
<p><img class="aligncenter size-full wp-image-418" title="composition-nom-domaine" src="http://www.fr.hightech-area.com/wp-content/uploads/2009/06/composition-nom-domaine.png" alt="composition-nom-domaine" width="444" height="250" />Le référencement de votre futur site Internet ne se fera pas que par Internet mais aussi par le bouche à oreille de tous les jours : c&#8217;est pourquoi il est très important d&#8217;avoir un nom de domaine <strong>facilement mémorisable, qui s&#8217;écrit et se dicte facilement</strong>. Utilisez le <strong>nom de votre entreprise/projet ou insérez des mots-clés</strong> dans votre nom de domaine <strong>sans en mettre trop</strong> et <strong>évitez à tout prix les superlatifs</strong> (meilleur, génial, thebest, etc.) <strong>ainsi que les mots-clés sans relations</strong>. <strong>Si vous ciblez un mot-clé en particulier, mettez le plutôt au début</strong>.</p>
<p>A moins que vous souhaitiez battre le ridicule record du plus long nom de domaine du monde, <strong>évitez les noms de domaine trop long</strong> (pas plus de 20 caractères si possible).</p>
<p><strong>Le choix de l&#8217;extension est important</strong> lui aussi car il joue dans le référencement dans les moteurs de recherche. Préférez le .com ou une extension géographique si votre site s&#8217;adresse à un pays en particulier (un .fr pour un public français par exemple) ou encore un .net pour un site très Internet et un .org pour une organisation. L&#8217;extension .com est très pratique puisqu&#8217;elle est internationale, personnellement c&#8217;est celle-ci que je prend pour tous mes projets. Sachez aussi que la localisation du serveur joue sur le référencement, ainsi, si votre serveur est localisé en Allemagne (comme les machines de 1and1) et que votre site est destiné à un public particulièrement Français il peut être judicieux de choisir une extension .fr afin de contrer la balance.</p>
<p>Autre point ultra important : <strong>testez la validité d&#8217;un nom de domaine sur un site de confiance</strong> (<a href="http://www.ovh.com">OVH</a> et <a href="http://www.gandi.net/">Gandi</a> par exemple) car certains sites enregistrent vos recherches, ainsi, si le nom de domaine recherché est libre ce site le rachètera pour vous le revendre plus chers. C&#8217;est très vicieux, méfiez-vous donc de ce genre de site !</p>
<p>En plus d&#8217;être disponible, <strong>votre nom de domaine doit respecter les aspects juridiques</strong> (c&#8217;est le point le plus dur et flou) : c&#8217;est-à-dire que votre nom de domaine ne doit ni être une marque déposée ni être trop similaire à une marque déposée. Il est important de ne pas prendre cette étape à la légère, il serait dommage de devoir changer votre nom de domaine une fois votre activité lancée, non ? N&#8217;hésitez pas à consulter la <a href="http://bases-marques.inpi.fr/">base de données des marques</a> de l&#8217;<acronym title="Institut National de la Propriété Industrielle">INPI</acronym>.</p>
<p>Je vais résumer tout cela dans une liste pour plus de clarté. Un bon nom de domaine doit :</p>
<ol>
<li>Etre facilement mémorisable</li>
<li>S&#8217;écrire facilement</li>
<li>Se dicter facilement</li>
<li>Se composer du nom de votre entreprise ou de mots clés</li>
<li>Ne pas contenir trop de mots clés</li>
<li>Ne pas contenir de superlatifs (meilleur, génial, thebest, etc.)</li>
<li>Contenir le ou les mots clés cibles au début</li>
<li>Avoir une extension adaptée au site</li>
<li>Ne pas porter atteinte aux marques et droits d&#8217;auteur</li>
</ol>
<p>Et enfin, je le rappelle une fois de plus, testez la validité d&#8217;un nom de domaine uniquement sur un site de confiance.</p>
<p>Bonne chance <img src='http://www.fr.hightech-area.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/comment-bien-choisir-un-nom-de-domaine.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Résoudre le problème des erreurs 500 sous WordPress</title>
		<link>http://www.fr.hightech-area.com/resoudre-le-probleme-des-erreurs-500-sous-wordpress.html</link>
		<comments>http://www.fr.hightech-area.com/resoudre-le-probleme-des-erreurs-500-sous-wordpress.html#comments</comments>
		<pubDate>Sat, 13 Jun 2009 10:17:39 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=391</guid>
		<description><![CDATA[Je viens de trouver comment résoudre le problème des erreurs 500 sous WordPress. Certains d&#8217;entre vous, notamment ceux qui sont chez 1and1 ou OVH, ont pu obtenir des erreurs 500, soit lors de l&#8217;utilisation d&#8217;un plugin soit lors d&#8217;une mise à jour. Le problème vient du fait que certains hébergeurs ne gèrent pas très bien [...]]]></description>
			<content:encoded><![CDATA[<p>Je viens de trouver <strong>comment résoudre le problème des erreurs 500 sous WordPress</strong>. Certains d&#8217;entre vous, notamment ceux qui sont chez 1and1 ou OVH, ont pu obtenir des erreurs 500, soit lors de l&#8217;utilisation d&#8217;un plugin soit lors d&#8217;une mise à jour. Le problème vient du fait que certains hébergeurs ne gèrent pas très bien le PHP, pour pallier à ce problème voici la solution miracle :</p>
<p>Editez le fichier .htaccess situé normalement à la racine de votre site et remplacez ceci :<br />
<code><br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
</code><br />
Par ceci :<br />
<code><br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
<strong>AddType x-mapp-php5 .php<br />
AddHandler x-mapp-php5 .php</strong><br />
</code></p>
<p>Les deux lignes en gras sont les lignes à ajouter.</p>
<p>Enregistrez, uploadez sur votre serveur cette nouvelle version du fichier et normalement tout devrait marcher correctement.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/resoudre-le-probleme-des-erreurs-500-sous-wordpress.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Protection contre le hotlinking</title>
		<link>http://www.fr.hightech-area.com/se-proteger-contre-le-hotlinking.html</link>
		<comments>http://www.fr.hightech-area.com/se-proteger-contre-le-hotlinking.html#comments</comments>
		<pubDate>Tue, 02 Jun 2009 04:53:05 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[direct linking]]></category>
		<category><![CDATA[hotlinking]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=354</guid>
		<description><![CDATA[Le direct linking ou hotlinking consiste à utiliser l&#8217;adresse d&#8217;un fichier publié sur un site web, le plus souvent une image, pour l&#8217;afficher sur son site au lieu de l&#8217;enregistrer sur son propre serveur web. Même lorsqu&#8217;une image est libre de droit un tel lien est illégal sans l&#8217;accord de l&#8217;éditeur du site puisqu&#8217;il s&#8217;agit [...]]]></description>
			<content:encoded><![CDATA[<p>Le <strong>direct linking</strong> ou <a href="http://fr.wikipedia.org/wiki/Hotlinking"><strong>hotlinking</strong></a> consiste à utiliser l&#8217;adresse d&#8217;un fichier publié sur un site web, le plus souvent une image, pour l&#8217;afficher sur son site au lieu de l&#8217;enregistrer sur son propre serveur web.</p>
<p>Même lorsqu&#8217;une image est libre de droit un tel lien est illégal sans l&#8217;accord de l&#8217;éditeur du site puisqu&#8217;il s&#8217;agit de vol.</p>
<p>Le <strong>hotlinking</strong> peut s&#8217;avérer gênant, voire un cauchemar pour le propriétaire d&#8217;un site web. Je vous propose tout de suite une mise en situation dans lequel je serais le méchant webmaster qui abusera de votre site :</p>
<p><span id="more-354"></span>Je me balade sur un article de votre site et j&#8217;y trouve une image qui m&#8217;intéresse. Je  récupère l&#8217;adresse de cette image et l&#8217;insère sauvagement (sans l&#8217;héberger sur mon serveur mais en gardant son lien d&#8217;origine) dans un de mes articles pour enrichir mon site.</p>
<p>A chaque fois que mon article qui contient votre image sera vu, une requête vers votre serveur sera effectuée, ainsi je profiterais de votre bande passante que vous payez chaque mois. Si mon article est beaucoup visité, l&#8217;image sera beaucoup téléchargée ce qui pourrait provoquer un ralentissement de votre site et faire dépasser votre quota mensuel de bande passante, alors, votre hébergeur pourra vous demander de payer le surplus utilisé. Ça devient embêtant non ? <img src='http://www.fr.hightech-area.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Pour palier à ce problème, il existe heureusement une solution qui consiste à écrire quelques règles apache dans un .htaccess à la racine de votre site, (cependant certains hébergeurs n&#8217;acceptent pas les .htaccess dans ce cas cette solution vous est impossible) :<br />
<code>RewriteEngine on<br />
RewriteCond %{HTTP_REFERER} !^$<br />
RewriteCond %{HTTP_REFERER} !^http://(www\.)?monsite.fr(/)?.*$ [NC]<br />
RewriteRule \.(gif|jpe?g?|png)$ - [NC,F]</code></p>
<p>La première ligne active l&#8217;<a href="http://fr.wikipedia.org/wiki/.htaccess#URL_Rewriting">url rewriting</a>. Vous n&#8217;avez pas à la changer, tout comme la seconde.<br />
Dans la troisième, indiquez l&#8217;url du site sur lequel les images s&#8217;afficheront (le votre donc).<br />
Dans la quatrième ligne, indiquez les extensions de fichier que vous souhaitez bloquer.</p>
<p>Cette règle permet de bloquer toutes les images d&#8217;extension .gif, .jpe, .jpg, .jpeg, .png sur tous les sites autres que monsite.fr</p>
<p>Cette règle simple et très performante peut néanmoins causer quelques &#8220;problèmes&#8221;, il vous sera peut-être nécessaire de la modifier pour autoriser plusieurs sites à afficher vos images (google images par exemple) et bloquer plus d&#8217;extensions. Voici les règles de hightech-area :</p>
<p><code>RewriteCond %{HTTP_REFERER} !^$<br />
RewriteCond %{HTTP_REFERER} !^http://[-_a-z0-9.]*hightech-area\.com$ [NC]<br />
RewriteCond %{HTTP_REFERER} !^http://[-_a-z0-9.]*hightech-area\.com/.*$ [NC]<br />
RewriteCond %{HTTP_REFERER} !^http://[-_a-z0-9.]*google\.[a-z]/.*$ [NC]<br />
RewriteCond %{HTTP_REFERER} !^http://209\.85\.229\.132/.*$ [NC]<br />
RewriteRule .*\.(gif|jpe?g?|jp2|png|svgz?|ico|css|pdf|zip|gz|js|mp3|m4a|mp4|mov|divx|avi|wma?v?|wmp|swf|flv|docx?|xlsx?|pptx?|vbs|rtf|asf?x?|odt|ods|odp|odg|odb)$ - [NC,F]<br />
</code></p>
<p>Les fichiers d&#8217;extension .gif, .png, .css, .pdf, &#8230; sont seulement utilisables par hightech-area.com, le cache de google ainsi que google images (209.85.229.132). Sur les autres sites s&#8217;affichera l&#8217;adresse du fichier au lieu du fichier lui-même. Vous pouvez remplacer l&#8217;adresse de l&#8217;image par une image d&#8217;avertissement par exemple, pour cela remplacez :</p>
<p><code>RewriteRule \.(gif|jpe?g?|png)$ - [NC,F]</code><br />
Par :<br />
<code>RewriteRule \.(gif|jpeg?|png)$ /anti-hotlink.jpe [NC,F]</code></p>
<p>L&#8217;image anti-hotlink.jpe sera affichée sur le site du hotlinkeur.</p>
<p>Notons qu&#8217;il existe des sites spécialisés dans l&#8217;hébergement gratuit d&#8217;images bien qu&#8217;il soit la plupart du temps préférable d&#8217;héberger ses images sur son propre serveur afin d&#8217;éviter toutes mauvaises surprises.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/se-proteger-contre-le-hotlinking.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Protocol Buffers : une alternative optimisée à XML</title>
		<link>http://www.fr.hightech-area.com/protocol-buffers-une-alternative-optimisee-a-xml.html</link>
		<comments>http://www.fr.hightech-area.com/protocol-buffers-une-alternative-optimisee-a-xml.html#comments</comments>
		<pubDate>Mon, 11 May 2009 04:35:24 +0000</pubDate>
		<dc:creator>Steven</dc:creator>
				<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[protocol buffers]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=270</guid>
		<description><![CDATA[Vous souhaitez stocker des données de manière rapide et légère sur un serveur web ? Vous trouvez MySQL trop lent et pas assez portable ? Vous avez pensé à XML mais vous le trouvez trop verbeux ? Vous cherchez une solution simple qui ne requiert pas de configuration particulière du serveur ? Alors pour vous, [...]]]></description>
			<content:encoded><![CDATA[<p>Vous souhaitez stocker des données de manière rapide et légère sur un serveur web ?<br />
Vous trouvez MySQL trop lent et pas assez portable ?<br />
Vous avez pensé à XML mais vous le trouvez trop verbeux ?<br />
Vous cherchez une solution simple qui ne requiert pas de configuration particulière du serveur ?</p>
<p>Alors pour vous, il y a <strong>Protocol Buffers</strong> !</p>
<p><span id="more-270"></span></p>
<hr />
<h2>Qu&#8217;est-ce que Protocol Buffers ?</h2>
<p>Protocol Buffers est un système de sérialization de données créé par Google. Aujourd&#8217;hui, Protocol Buffers est en open source et est donc utilisable par tout le monde. Pourquoi avoir inventé Protocol Buffers alors qu&#8217;il existe déjà XML ?  En comparaison avec XML, Protocol Buffers est, selon Google, plus simple, moins ambigü, 3 à 10 fois plus léger, 20 à 100 fois plus rapide et génère des classes d&#8217;accès plus faciles à manipuler en programmation. Prenons tout de suite un exemple : imaginons que nous souhaitions modéliser une person avec un name et un email, voici le code en XML :</p>
<p><strong>Code : XML</strong></p>
<div class="code">
<pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;personne<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;nom<span style="font-weight: bold; color: black;">&gt;</span></span></span>John Doe<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/nom<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;mail<span style="font-weight: bold; color: black;">&gt;</span></span></span>jdoe@example.com<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/mail<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/personne<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre>
</div>
<p>Encodé au format binaire, ce code a une taille de 69 bytes et est parsé entre 5 000 à 10 000 nanosecondes. Voyons dès maintenant ce qu&#8217;il en est pour protocol buffers :</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>personne {
nom: "John Doe"
mail: "jdoe@example.com"
}</pre>
</div>
<p>Encodé au format binaire, ce code a une taille de 28 bytes et est parsé entre 100 et 200 nanosecondes ! Une taille 3 fois moins importante et une vitesse 50 fois plus rapide ce qui n&#8217;est pas négligeable pour la quantité de données qui s&#8217;échange dans les serveurs de Google par exemple.</p>
<h2>Comment ça marche ?</h2>
<p>En PHP, on commence par créer un fichier .proto qui définit un objet, aussi appelé <strong>message</strong>. Puis on le compile avec le parseur, on obtient alors une classe PHP5 et enfin, avec cette classe, vous pouvez créer des instances du message, en charger depuis un fichier ou encore en enregistrer. C&#8217;est d&#8217;ailleurs à peu près le même fonctionnement pour tous les langages dans lequel Protocol Buffers est implémenté (17 si je ne me trompe), encore faut-il générer la classe pour le bon langage mais les fichier .pb (protocol buffers) qui contiennent les données sont utilisables par tous les langages.</p>
<p>Plus d&#8217;informations sur le <a title="site officiel" href="http://code.google.com/p/protobuf/">site officiel</a>.</p>
<p>Je pense que vous savez à peu près tout ce qu&#8217;il faut savoir pour commencer, c&#8217;est parti pour la pratique.</p>
<h3>Installation du script</h3>
<p>Nous allons donc commencer par télécharger Protocol Buffers (que je vais d&#8217;ailleurs abréger PB par la suite) pour PHP. Rendez vous sur le site de PB pour PHP : <a title="http://code.google.com/p/pb4php/" href="http://code.google.com/p/pb4php/">http://code.google.com/p/pb4php/</a></p>
<p>Téléchargez le fichier <strong>protocolbuf.zip</strong>, extractez son contenu. Vous devriez avoir un dossier <em>protocolbuf</em> avec dedans trois dossiers : <em>parser</em>, <em>message</em> et <em>example</em>. Vous n&#8217;avez rien besoin de plus <img src='http://www.fr.hightech-area.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p>Passons maintenant à la création d&#8217;un message.</p>
<h3>Créez vos messages</h3>
<p>Commencez par créer un fichier annuaire.proto. Les fichiers .proto sont les fichiers contenant les messages.</p>
<p>Dans cet exemple, nous allons créer un message Annuaire qui contiendra un tableau de messages Personne qui contiendra des informations sur des personnes et dans lequel il y aura un message Telephone qui contiendra le type de téléphone et son numéro.</p>
<p>Voici comment déclarer un message avec PB :</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>message Nom_du_message {
	// Un commentaire
	// Ici le contenu du message
}</pre>
</div>
<p>Vous pouvez en créer plusieurs dans un fichier, soit à la suite soit imbriqués.</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>message Un_message {
	message Un_message_imbrique {

	}
}
message Un_message_a_la_suite {

}</pre>
</div>
<p>Créons donc un message Annuaire, un autre Personne dans lequel il y en aura un autre appelé Telephone.<br />
Voici à quoi votre fichier devrait ressembler.</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>message Personne {

	message Telephone {

	}
}

message Annuaire {

}</pre>
</div>
<p>Dans ces messages, nous allons créer des champs sous cette forme :</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>type_champs type nom_champs = id;</pre>
</div>
<p>type_champs peut être trois choses :<br />
- optional : le champs n&#8217;est pas obligatoire<br />
- required : le champs est obligatoire<br />
- repeated : ce champs contient plusieurs valeurs, comme un tableau<br />
Pour le type optional, on peut définir une valeur par défaut de cette manière :</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>optional type nom_champs = id [default=valeur_par_defaut];</pre>
</div>
<p>Si cette valeur par défaut est une chaîne de caractère, il faut la mettre entre guillemets.</p>
<p>type est le type de variable. Voici les principaux que vous serez amené à utiliser :<br />
- float : nombre à virgule<br />
- int32 : un chiffre<br />
- string : une chaîne de caractères<br />
Vous pouvez aussi utiliser le nom d&#8217;un autre message.<br />
Exemples :</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>repeated Personne personnes = 1;
optional string pays = 2 [default="France"];</pre>
</div>
<p>nom_champs est tout simplement le nom du champs</p>
<p>id est l&#8217;identifiant unique du champs. Cet id doit être un chiffre et n&#8217;être présent qu&#8217;une seul fois dans le même message.</p>
<p>Mettons cela en pratique.</p>
<p>Dans le message Annuaire, créez un champs du nom de <em>personnes</em> qui contiendra plusieurs messages de type Personne.</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>message Annuaire {
	repeated Personne personnes = 1;
}</pre>
</div>
<p>Attention : vous devez toujours déclarer vos messages avant de vous en servir dans un champs. C&#8217;est pour cela que le message Personne est placé avant Annuaire.</p>
<p>Maintenant, nous allons nous occuper du message Telephone qui est, rappelez-vous, imbriqué dans le message Personne.<br />
Dedans, nous allons stocker le type de numéro de téléphone. Pour cela, je vais vous enseigner un nouvel élément : les énumérations.<br />
Voici leur syntaxe :</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>enum Nom_enum {
	CHAMPS = id;
	CHAMPS2 = id;
}</pre>
</div>
<p>L&#8217;id doit être un chiffre et ne pas apparaître 2 fois dans la même énumération.<br />
Pour définir un champ qui utilise une énumération, voici comment procéder :</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>type_champs Nom_enum nom_champs = id;</pre>
</div>
<p>Rien ne change donc par rapport à un champ normal. Sauf si vous voulez utiliser une valeur par défaut, par exemple :</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>optional Nom_enum nom_champs = 1 [default=CHAMPS2];</pre>
</div>
<p>Créez donc dans le message Personne une énumération appelée TypeTelephone avec les types MAISON, TRAVAIL et PORTABLE.<br />
Correction :</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>message Personne {

	enum TypeTelephone {
		MAISON = 0;
		TRAVAIL = 1;
		PORTABLE = 2;
	}

	message Telephone {

	}
}</pre>
</div>
<p>Occupons nous maintenant du message Telephone. Vous allez créer un champ obligatoire &#8220;numero&#8221; qui contiendra une chaîne avec le numéro de téléphone et un champ optionnel &#8220;type&#8221; qui contiendra le type de numéro de téléphone et dont la valeur par défaut sera MAISON.</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>message Personne {

	enum TypeTelephone {
		MAISON = 0;
		TRAVAIL = 1;
		PORTABLE = 2;
	}

	message Telephone {
		required string numero = 1;
		optional TypeTelephone type = 2 [default=MAISON];
	}
}</pre>
</div>
<p>Et enfin nous allons remplir le message Personne.<br />
Nous allons y créer deux champs obligatoires qui contiendront des chaînes de caractères et qui stockeront, un le nom et l&#8217;autre le prénom de la personne. Nous allons aussi créer un champ qui contiendra plusieurs numéros de téléphone.</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>message Personne {

	required string prenom = 1;
	required string nom = 2;

	enum TypeTelephone {
		MAISON = 0;
		TRAVAIL = 1;
		PORTABLE = 2;
	}

	message Telephone {
		required string numero = 1;
		optional TypeTelephone type = 2 [default=MAISON];
	}

	repeated Telephone telephones = 3;
}

message Annuaire {
	repeated Personne personnes = 1;
}</pre>
</div>
<p>Voilà, nos messages sont terminés, nous allons pouvoir passer à la compilation du fichier annuaire.proto.</p>
<h3>Compiler un fichier proto</h3>
<p>Commencez par créer un fichier protoc.php.<br />
Commençons par y inclure le fichier protocolbuf/parser/pb_parser.php qui contient le parseur pour parser le fichier proto.</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">include</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'protocolbuf/parser/pb_parser.php'</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Nous allons créer une instance de la classe PBParser de cette manière :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">include</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'protocolbuf/parser/pb_parser.php'</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$parser</span> = <span style="color: #000000; font-weight: bold;">new</span> PBParser<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Et enfin, parsons le fichier annuaire.proto :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">include</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'protocolbuf/parser/pb_parser.php'</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$parser</span> = <span style="color: #000000; font-weight: bold;">new</span> PBParser<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$parser</span>-&gt;<span style="color: #006600;">parse</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'annuaire.proto'</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Si vous avez une erreur du type :</p>
<p><strong>Code : AUTRE</strong></p>
<div class="code">
<pre>Fatal error: Uncaught exception 'Exception' with message 'Protofile type Personne unknown!' ...</pre>
</div>
<p>Cela peut venir d&#8217;un problème d&#8217;encodage. Pour ne pas avoir ce problème, encodez vos fichiers .proto en AINSI ou alors, c&#8217;est parce que vous vous êtes servi d&#8217;un message avant de l&#8217;avoir déclaré.</p>
<p>Si tout s&#8217;est bien passé, vous aurez un fichier pb_proto_annuaire.php de créé, c&#8217;est la classe d&#8217;accès aux messages. Rendez-vous dans la prochaine partie pour apprendre à vous en servir.</p>
<h3>Manipuler les messages</h3>
<p>Et bien nous y voilà, nous allons commencer par créer une instance d&#8217;un message. Voici comment procéder :<br />
Il faut commencer par inclure la librairie pb_message.php puis inclure le fichier généré par le parseur à partir du fichier proto.</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">include</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'protocolbuf/message/pb_message.php'</span><span style="color: #66cc66;">)</span>;
<span style="color: #b1b100;">include</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'pb_proto_annuaire.php'</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Ensuite, nous allons créer une instance de Annuaire.<br />
Voici comment créer l&#8217;instance d&#8217;un message :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$instance</span> = <span style="color: #000000; font-weight: bold;">new</span> Message<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>On aura donc :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$annuaire</span> = <span style="color: #000000; font-weight: bold;">new</span> Annuaire<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Nous allons maintenant ajouter une personne dedans. Voici comment faire pour un champ repeated :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$nouvel_objet</span> = <span style="color: #0000ff;">$message</span>-&gt;<span style="color: #006600;">add_nom_champs</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Nous ferons donc :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$personne</span> = <span style="color: #0000ff;">$annuaire</span>-&gt;<span style="color: #006600;">add_personnes</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Comme le champ personnes est de type Personne, nous allons ajouter des informations à l&#8217;instance du message Personne créée dans $personne.<br />
Voici comment modifier un champ :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$instance</span>-&gt;<span style="color: #006600;">set_champs</span><span style="color: #66cc66;">(</span>valeur<span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Mettez donc le nom / prénom que vous voulez à cette personne.<br />
Exemple :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">set_prenom</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'Jean'</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">set_nom</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'Dupont'</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Maintenant nous allons rajouter un numéro de téléphone à cette personne dans le champ telephones de la même manière que nous avons ajouté une personne à l&#8217;annuaire :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$telephone</span> = <span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">add_telephones</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Maintenant, nous allons définir le numéro de téléphone de maison de Jean Dupont. Pour le type de téléphone, nous n&#8217;allons pas le définir car ce champ est optionnel et sa valeur par défaut est déjà MAISON. :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$telephone</span>-&gt;<span style="color: #006600;">set_numero</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'01 23 45 67 89'</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Voilà, maintenant vous allez rajouter une nouvelle personne à l&#8217;annuaire du nom que vous voudrez mais cette personne devra avoir 2 numéros de téléphone : un de maison et un portable.<br />
Je vais maintenant vous montrer comment on va définir le type de téléphone.<br />
L&#8217;énumération TypeTelephone est imbriquée dans le message Personne donc, son nom est Personne_TypeTelephone.<br />
Maintenant voici comment définir le type de téléphone :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$telephone</span>-&gt;<span style="color: #006600;">set_type</span><span style="color: #66cc66;">(</span>Personne_TypeTelephone::<span style="color: #006600;">TRAVAIL</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Correction :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #808080; font-style: italic;">// On la créé et on lui définit son nom et son prénom</span>
<span style="color: #0000ff;">$personne</span> = <span style="color: #0000ff;">$annuaire</span>-&gt;<span style="color: #006600;">add_personnes</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">set_prenom</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'John'</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">set_nom</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'Doe'</span><span style="color: #66cc66;">)</span>;

<span style="color: #808080; font-style: italic;">// On lui ajoute un numéro de maison</span>
<span style="color: #0000ff;">$telephone</span> = <span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">add_telephones</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$telephone</span>-&gt;<span style="color: #006600;">set_numero</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'02 57 16 48 64'</span><span style="color: #66cc66;">)</span>;

<span style="color: #808080; font-style: italic;">// Et le numéro de portable</span>
<span style="color: #0000ff;">$telephone</span> = <span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">add_telephones</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$telephone</span>-&gt;<span style="color: #006600;">set_numero</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'06 57 16 48 64'</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$telephone</span>-&gt;<span style="color: #006600;">set_type</span><span style="color: #66cc66;">(</span>Personne_TypeTelephone::<span style="color: #006600;">PORTABLE</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<h3>Récupérer les informations et les afficher</h3>
<p>Maintenant que notre annuaire est bien garni, nous allons afficher son contenu.<br />
Voici comment nous allons procéder : nous allons commencer par récupérer le nombre de personnes dans l&#8217;annuaire, puis, dans une boucle, nous allons à chaque fois récupérer une personne, afficher son nom, prénom, puis nous allons récupérer le nombre de numéros de téléphone de cette personne et nous allons afficher ses numéros.<br />
C&#8217;est parti !</p>
<p>Tout d&#8217;abord, récupérons le nombre de personnes dans l&#8217;annuaire :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #808080; font-style: italic;">// Récupérer le nombre d'éléments dans un champs repeated :</span>
<span style="color: #808080; font-style: italic;">// $instance-&gt;nomChamps_size();</span>
<span style="color: #0000ff;">$nb_personnes</span> = <span style="color: #0000ff;">$annuaire</span>-&gt;<span style="color: #006600;">size_personnes</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$i</span> = <span style="color: #cc66cc;">0</span>;
<span style="color: #b1b100;">while</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$i</span> &lt; <span style="color: #0000ff;">$nb_personnes</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span>
	<span style="color: #808080; font-style: italic;">// Suite du code ici</span>
	<span style="color: #0000ff;">$i</span>++;
<span style="color: #66cc66;">}</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Ensuite, nous allons récupérer la personne correspondant à l&#8217;offset $i et afficher son nom et son prénom :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
	<span style="color: #808080; font-style: italic;">// Récupérer un élément dans un champs required :</span>
	<span style="color: #808080; font-style: italic;">// $instance-&gt;nomChamps(offset);</span>
	<span style="color: #0000ff;">$personne</span> = <span style="color: #0000ff;">$annuaire</span>-&gt;<span style="color: #006600;">personnes</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$i</span><span style="color: #66cc66;">)</span>;

	<span style="color: #808080; font-style: italic;">// Récupérer la valeur d'un champs : $instance-&gt;nomChamps();</span>
	<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'&lt;h3&gt;'</span>.<span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">prenom</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>.<span style="color: #ff0000;">' '</span>.<span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">nom</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>.<span style="color: #ff0000;">'&lt;/h3&gt;'</span>;
	<span style="color: #808080; font-style: italic;">//Suite du code ici</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Maintenant, vous avez toutes les clés en main pour faire la suite du code :<br />
- Récupérez le nombre de numéros de téléphone<br />
- Faites une boucle pour les explorer<br />
- Récupérez un numéro de téléphone<br />
- Affichez son type et le numéro</p>
<p>Correction :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$nb_personnes</span> = <span style="color: #0000ff;">$annuaire</span>-&gt;<span style="color: #006600;">personnes_size</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$i</span> = <span style="color: #cc66cc;">0</span>;
<span style="color: #b1b100;">while</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$i</span> &lt; <span style="color: #0000ff;">$nb_personnes</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span>
	<span style="color: #0000ff;">$personne</span> = <span style="color: #0000ff;">$annuaire</span>-&gt;<span style="color: #006600;">personnes</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$i</span><span style="color: #66cc66;">)</span>;
	<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'&lt;h3&gt;'</span>.<span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">prenom</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>.<span style="color: #ff0000;">' '</span>.<span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">nom</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>.<span style="color: #ff0000;">'&lt;/h3&gt;'</span>;

	<span style="color: #808080; font-style: italic;">// Début correction</span>
	<span style="color: #0000ff;">$nb_telephones</span> = <span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">telephones_size</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
	<span style="color: #0000ff;">$j</span> = <span style="color: #cc66cc;">0</span>;
	<span style="color: #b1b100;">while</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$j</span> &lt; <span style="color: #0000ff;">$nb_telephones</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span>
		<span style="color: #0000ff;">$telephone</span> = <span style="color: #0000ff;">$personne</span>-&gt;<span style="color: #006600;">telephones</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$j</span><span style="color: #66cc66;">)</span>;
		<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'&lt;strong&gt;'</span>.<span style="color: #0000ff;">$telephone</span>-&gt;<span style="color: #006600;">type</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>.<span style="color: #ff0000;">'&lt;/strong&gt; : '</span>;
		<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #0000ff;">$telephone</span>-&gt;<span style="color: #006600;">numero</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>.<span style="color: #ff0000;">'&lt;br /&gt;'</span>;
		<span style="color: #0000ff;">$j</span>++;
	<span style="color: #66cc66;">}</span>
	<span style="color: #808080; font-style: italic;">// Fin correction</span>
	<span style="color: #0000ff;">$i</span>++;
<span style="color: #66cc66;">}</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Comme vous le voyez, pour le type de téléphone, ça nous affiche l&#8217;id. Comment remédier à cela ?<br />
En créant simplement un tableau qui, à chaque id, associe ce que l&#8217;on doit afficher.<br />
Ici par exemple :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$types</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #cc66cc;">0</span> =&gt; <span style="color: #ff0000;">'Maison'</span>, <span style="color: #cc66cc;">1</span> =&gt; <span style="color: #ff0000;">'Travail'</span>, <span style="color: #cc66cc;">2</span> =&gt; <span style="color: #ff0000;">'Portable'</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Et pour l&#8217;afficher :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'&lt;strong&gt;'</span>. <span style="color: #0000ff;">$types</span><span style="color: #66cc66;">[</span><span style="color: #0000ff;">$telephone</span>-&gt;<span style="color: #006600;">type</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">]</span> .<span style="color: #ff0000;">'&lt;/strong&gt; : '</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<h3>Enregistrer un message</h3>
<p>Voici comment récupérer la chaîne de caractère qui contient les données codées :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$instance</span>-&gt;<span style="color: #006600;">serializeToString</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Voci donc comment enregistrer notre annuaire :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$chaine</span> = <span style="color: #0000ff;">$annuaire</span>-&gt;<span style="color: #006600;">serializeToString</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$fp</span> = <a href="http://www.php.net/fopen"><span style="color: #000066;">fopen</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'fichier.pb'</span>, <span style="color: #ff0000;">'wb'</span><span style="color: #66cc66;">)</span>;
<a href="http://www.php.net/fwrite"><span style="color: #000066;">fwrite</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$fp</span>, <span style="color: #0000ff;">$chaine</span><span style="color: #66cc66;">)</span>;
<a href="http://www.php.net/fclose"><span style="color: #000066;">fclose</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$fp</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<h3>Récupérer un message</h3>
<p>Voici comment récupérer un message :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$instance</span> = <span style="color: #000000; font-weight: bold;">new</span> Votre_message<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$instance</span>-&gt;<span style="color: #006600;">parseFromString</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$chaine</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<p>Voici donc comment récupérer notre annuaire :</p>
<p><strong>Code : PHP</strong></p>
<div class="code">
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #0000ff;">$annuaire</span> = <span style="color: #000000; font-weight: bold;">new</span> Annuaire<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;

<span style="color: #0000ff;">$chaine</span> = <span style="color: #ff0000;">''</span>;
<span style="color: #0000ff;">$fp</span> = <a href="http://www.php.net/fopen"><span style="color: #000066;">fopen</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'fichier.pb'</span>, <span style="color: #ff0000;">'r'</span><span style="color: #66cc66;">)</span>;
<span style="color: #b1b100;">while</span><span style="color: #66cc66;">(</span>!<a href="http://www.php.net/feof"><span style="color: #000066;">feof</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$fp</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span>
	<span style="color: #0000ff;">$chaine</span> .= <a href="http://www.php.net/fgets"><span style="color: #000066;">fgets</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$fp</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<a href="http://www.php.net/fclose"><span style="color: #000066;">fclose</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$fp</span><span style="color: #66cc66;">)</span>;

<span style="color: #0000ff;">$annuaire</span>-&gt;<span style="color: #006600;">parseFromString</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$chaine</span><span style="color: #66cc66;">)</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</div>
<hr />Voilà, cette introduction à Protocol Buffers est terminée, j&#8217;espère que vous trouverez plein de moyens d&#8217;application à ce que vous venez d&#8217;apprendre !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/protocol-buffers-une-alternative-optimisee-a-xml.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retrouvez la police d&#8217;écriture utilisée dans une image avec WhatTheFont</title>
		<link>http://www.fr.hightech-area.com/retrouvez-la-police-ecriture-utilisee-dans-une-image-avec-whatthefont.html</link>
		<comments>http://www.fr.hightech-area.com/retrouvez-la-police-ecriture-utilisee-dans-une-image-avec-whatthefont.html#comments</comments>
		<pubDate>Tue, 05 May 2009 06:26:55 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[police écriture]]></category>
		<category><![CDATA[WhatTheFont]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=255</guid>
		<description><![CDATA[WhatTheFont est un outil en ligne permettant de retrouver la police d&#8217;écriture utilisée dans une image. Il vous suffit d&#8217;indiquer l&#8217;url de l&#8217;image ou de l&#8217;uploader et WhatTheFont se chargera de retrouver la police d&#8217;écriture. WhatTheFont existe aussi en application Iphone du même nom.]]></description>
			<content:encoded><![CDATA[<p><a href="http://new.myfonts.com/WhatTheFont/">WhatTheFont</a> est un outil en ligne permettant de retrouver la police d&#8217;écriture utilisée dans une image. Il vous suffit d&#8217;indiquer l&#8217;url de l&#8217;image ou de l&#8217;uploader et <a href="http://new.myfonts.com/WhatTheFont/">WhatTheFont</a> se chargera de retrouver la police d&#8217;écriture.</p>
<p>WhatTheFont existe aussi en application Iphone du même nom.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/retrouvez-la-police-ecriture-utilisee-dans-une-image-avec-whatthefont.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gérer votre blog sans connexion Internet</title>
		<link>http://www.fr.hightech-area.com/gerer-votre-blog-sans-connexion-internet.html</link>
		<comments>http://www.fr.hightech-area.com/gerer-votre-blog-sans-connexion-internet.html#comments</comments>
		<pubDate>Mon, 04 May 2009 16:06:54 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[OS/Software]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[scribefire]]></category>
		<category><![CDATA[windows live writer]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=334</guid>
		<description><![CDATA[Tiny MCE, intégré dans plusieurs CMS de blog tels que WordPress ou Dotclear est un éditeur WYSIWYG . Bien qu’il soit très pratique,Tiny MCE peut ne pas toujours correspondre à nos besoins car il comporte des bugs par exemple. Si vous souhaitez gérer vos articles depuis votre bureau et non depuis un navigateur et avoir [...]]]></description>
			<content:encoded><![CDATA[<p>Tiny MCE, intégré dans plusieurs CMS de blog tels que WordPress ou Dotclear est un éditeur <acronym title="What You See Is What You Get soit en français : ce que vous voyez est ce que vous obtenez">WYSIWYG</acronym> . Bien qu’il soit très pratique,Tiny MCE peut ne pas toujours correspondre à nos besoins car il comporte des bugs par exemple. <strong>Si vous souhaitez gérer vos articles depuis votre bureau et non depuis un navigateur et avoir une mise en page plus évoluée ou encore pouvoir éditer votre blog sans connexion Internet (lors d’un déplacement par exemple), c’est possible, et c’est ce que nous allons voir dans cet article</strong>. Je traiterais en premier d’une application dédié à Windows uniquement mais je traiterais aussi les cas des utilisateurs de Linux et de Mac bien évidemment <img class="wp-smiley" src="../wp-includes/images/smilies/icon_smile.gif" alt=":)" /> .</p>
<p><span id="more-334"></span></p>
<h2>Activer XML-RPC</h2>
<p>Il va falloir activer le protocole <strong>XML-RPC</strong> sur votre blog, c’est très simple mais pour que cela marche il faut que votre plateforme de blog soit compatible avec ce protocole, ce qui est le cas pour WordPress, Dotclear, Blogger entre autres.</p>
<p>Pour activer cette option sous WordPress rendez-vous dans votre panel d’administration puis dans la section réglages puis écriture, ensuite cocher la case “<em>Activer les protocoles XML-RPC (WordPress, Movable Type, MetaWeblog, Blogger XML-RPC)</em>” tout simplement.</p>
<p><img class="aligncenter size-full wp-image-249" title="activer-xml-rpc-wordpress" src="http://www.fr.hightech-area.com/wp-content/uploads/2009/04/activer-xml-rpc-wordpress.jpg" alt="activer-xml-rpc-wordpress" width="500" height="111" /></p>
<h2>Téléchargement de l’application</h2>
<p>Pour les utilisateurs de windows il y a Windows Live Writer, simple d’installation et d’utilisation vous pouvez le trouver sur le site de windows live : http://www.windowslive.fr/writer/</p>
<p>Une fois le logiciel installé vous aller pouvoir configurer un ou plusieurs blogs. Pour cela il vous suffit simplement de rentrer l’adresse de votre blog, votre nom d’utilisateur et votre mot de passe. Ensuite, le logiciel vous demandera s’il doit récupérer le thème graphique, libre à vous de choisir et c’est fini.</p>
<h2>Ajouter, modifier et supprimer des articles</h2>
<p>Lorsque vous créez ou modifiez un article l’interface de votre blog apparait : vous voici donc dans un véritable WYSIWYG contrairement à Tiny MCE qui n’en est pas totalement un. L’interface est vraiment bien faite je trouve. Les images sont envoyées automatiquement dans le dossier upload habituel de votre blog ou sur un autre FTP si vous le voulez.</p>
<div id="attachment_250" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-250" title="live-writer" src="http://www.fr.hightech-area.com/wp-content/uploads/2009/04/live-writer.jpg" alt="Windows Live Writer" width="500" height="284" /><p class="wp-caption-text">Windows Live Writer</p></div>
<h2>Pour les utilisateurs de Linux et Mac</h2>
<p>Si, comme moi, vous utilisez Linux ou Mac, des programmes similaires existent, et heuresement :</p>
<p>- sous linux : gnome-blog (<a href="apt://gnome-blog">apt-get</a> &#8211; <a href="http://www.gnome.org/%7Eseth/gnome-blog/">site web</a>) simple, même beaucoup trop simple à mon goût ; Blogtk (<a href="apt://blogtk">apt-get</a> &#8211; <a href="http://blogtk.sourceforge.net/">site web</a>) déjà un peu plus complet et Drivel (<a href="apt://drivel">apt-get</a> &#8211; <a href="http://dropline.net/past-projects/drivel-blog-editor/">site web</a>)<br />
- sous mac : <a href="http://illuminex.com/ecto/">ecto</a></p>
<p>Très pratique aussi : <a href="https://addons.mozilla.org/fr/firefox/addon/1730">ScribeFire</a> est un addon (module) pour Firefox. Celui-ci marche donc correctement sous Linux, Mac et Windows. Je l’ai d’ailleurs utilisé dans la rédaction de cet article.</p>
<p>Si vous connaissez d’autres logiciels, n’hésitez pas à les postez en commentaire <img class="wp-smiley" src="../wp-includes/images/smilies/icon_wink.gif" alt=";)" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/gerer-votre-blog-sans-connexion-internet.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Liste des hébergeurs web gratuits</title>
		<link>http://www.fr.hightech-area.com/liste-des-hebergeurs-web-gratuits.html</link>
		<comments>http://www.fr.hightech-area.com/liste-des-hebergeurs-web-gratuits.html#comments</comments>
		<pubDate>Tue, 14 Apr 2009 06:30:06 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[hébergement]]></category>
		<category><![CDATA[hébergeur]]></category>
		<category><![CDATA[site web]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=184</guid>
		<description><![CDATA[Votre site est prêt mais vos pages ne sont pas encore sur Internet car il vous manque un hébergeur ? Ce tutoriel vous accompagnera dans votre choix à travers une grande liste d&#8217;hébergeurs gratuits. Une fois votre hébergeur trouvé il vous faudra envoyer votre site sur le web. Je tiens à remercier Luigi_home pour m&#8217;avoir [...]]]></description>
			<content:encoded><![CDATA[<p>Votre site est prêt mais vos pages ne sont pas encore sur Internet car il vous manque un hébergeur ? Ce tutoriel vous accompagnera dans votre choix à travers une grande liste d&#8217;hébergeurs gratuits.<br />
Une fois votre hébergeur trouvé il vous faudra <a title="envoyer votre site sur le web" href="http://www.siteduzero.com/tutoriel-3-13611-envoyez-votre-site-sur-le-web.html">envoyer votre site sur le web</a>.</p>
<p>Je tiens à remercier <a href="http://hilaryduffstars.com">Luigi_home</a> pour m&#8217;avoir permis de reprendre sa liste.</p>
<h3>Hébergeurs gratuits et sans pub</h3>
<p>Les hébergeurs ci-dessous vous offrent un service totalement gratuit, profitez en.</p>
<p><a href="http://www.000webhost.com/208704.html"><img src="http://www.000webhost.com/images/banners/other/banner6.gif" border="0" alt="Web Hosting" /></a></p>
<table border="0">
<tbody>
<tr>
<th>Hébergeur</th>
<th>Espace disque</th>
<th>Bande Passante</th>
<th>FTP</th>
<th>PHP</th>
<th>MySQL</th>
</tr>
<tr>
<td><a title="000WebHost" href="http://www.000webhost.com/208704.html"><img class="size-full wp-image-570 alignleft" title="star" src="http://www.fr.hightech-area.com/wp-content/uploads/2009/07/star.png" alt="star" width="16" height="16" />000WebHost</a></td>
<td>250 mo</td>
<td>100 Go</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="0fees" href="http://www.0fees.net/">0fees</a></td>
<td>300 mo</td>
<td>10 Go</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="11VM" href="http://www.11vm-serv.net/">11VM</a></td>
<td>50 Mo ou 100 Mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="50Webs" href="http://www.50webs.com/">50Webs</a></td>
<td>60 mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>Non</td>
<td>Non</td>
</tr>
<tr>
<td><a title="Aboveworld" href="http://www.aboveworld.com/">Aboveworld</a></td>
<td>25 Mo</td>
<td>10 Go</td>
<td>FTP</td>
<td>???</td>
<td>???</td>
</tr>
<tr>
<td><a title="Arihost" href="http://www.arishost.com/">Arihost</a></td>
<td>30 Mo</td>
<td>500 Mo</td>
<td>FTP</td>
<td>PHP</td>
<td>Non</td>
</tr>
<tr>
<td><a title="Atspace" href="http://www.atspace.com/">Atspace</a></td>
<td>50 Mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>Non</td>
<td>Non</td>
</tr>
<tr>
<td><a title="Awardspace" href="http://www.awardspace.com/">Awardspace</a></td>
<td>200 Mo</td>
<td>5 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="C-WebHosting" href="http://www.c-webhosting.org/">C-WebHosting</a></td>
<td>100 mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL5</td>
</tr>
<tr>
<td><a title="Chez David" href="http://chezdavid.ath.cx/">Chez David</a></td>
<td>50 Mo ou 500 Mo</td>
<td>Très faible</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Chez Mémé" href="http://www.chezmeme.net/">Chez Mémé</a></td>
<td>Jusqu&#8217;à 1 Go</td>
<td>???</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL5</td>
</tr>
<tr>
<td><a title="Clanfree" href="http://www.clanfree.net/">Clanfree</a></td>
<td>250 mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP5.2</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="DeluXe Host" href="http://dhost.info/">DeluXe Host</a></td>
<td>100 Mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP5.2.5</td>
<td>MySQL5.045</td>
</tr>
<tr>
<td><a title="DomainDLX" href="http://www.domaindlx.com/">DomainDLX</a></td>
<td>100 Mo</td>
<td>1 Go</td>
<td>WebFTP</td>
<td>Non</td>
<td>Non</td>
</tr>
<tr>
<td><a title="E-Ghosting" href="http://www.e-ghosting.com/">E-Ghosting</a></td>
<td>100 Mo</td>
<td>???</td>
<td>FTP</td>
<td>PHP4</td>
<td>MySQL4</td>
</tr>
<tr>
<td><a title="Eccentrix" href="http://eccentrix.com/">Eccentrix</a></td>
<td>50 Mo</td>
<td>900 Mo</td>
<td>???</td>
<td>Non</td>
<td>Non</td>
</tr>
<tr>
<td><a title="Ekzay" href="http://www.ekzay.com/">Ekzay</a></td>
<td>25 Mo</td>
<td>???</td>
<td>WebFTP</td>
<td>Non</td>
<td>Non</td>
</tr>
<tr>
<td><a title="Espace-Gratuit(.org)" href="http://www.espace-gratuit.org/">Espace-Gratuit(.org)</a></td>
<td>200 ou 500 Mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP4.4 &amp; PHP 5</td>
<td>MySQL5</td>
</tr>
<tr>
<td><a title="Espace4You" href="http://espace4you.org/">Espace4You</a></td>
<td>de 50 à 100 Mo</td>
<td>???</td>
<td>???</td>
<td>PHP4</td>
<td>MySQL4</td>
</tr>
<tr>
<td><a title="Exen" href="http://www.exen.fr/">Exen</a></td>
<td>100 Mo</td>
<td>???</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Fourmiz" href="http://fourmiz.org/">Fourmiz</a></td>
<td>Pas de limite</td>
<td>Très faible</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="FranceServ Hébergement" href="http://www.franceserv.fr/">FranceServ Hébergement</a></td>
<td>300 Mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL5</td>
</tr>
<tr>
<td><a title="Freazer" href="http://www.freazer.com/">Freazer</a></td>
<td>25 Mo</td>
<td>???</td>
<td>Non</td>
<td>Non</td>
<td>Non</td>
</tr>
<tr>
<td><a title="Free" href="http://www.free.fr/">Free</a></td>
<td>10 Go</td>
<td>???</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Free Hostia" href="http://www.freehostia.com/">Free Hostia</a></td>
<td>250 Mo</td>
<td>5 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Free ProHosting" href="http://free.prohosting.com/">Free ProHosting</a></td>
<td>100 Mo</td>
<td>1.2 Go</td>
<td>FTP</td>
<td>???</td>
<td>???</td>
</tr>
<tr>
<td><a title="Free-H" href="http://www.free-h.org/">Free-H</a></td>
<td>200 Mo</td>
<td>10 Go</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL5</td>
</tr>
<tr>
<td><a title="FreeManiac" href="http://www.freemaniak.com/">FreeManiac</a></td>
<td>100 à 500 Mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP4.4.2 &amp; PHP5</td>
<td>MySQL5</td>
</tr>
<tr>
<td><a title="Freewebs" href="http://members.freewebs.com/">Freewebs</a></td>
<td>40 Mo</td>
<td>500 Mo</td>
<td>FTP</td>
<td>Non</td>
<td>Non</td>
</tr>
<tr>
<td><a title="Frihost" href="http://www.frihost.com/">Frihost</a></td>
<td>250 Mo</td>
<td>10 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Fullbox" href="http://www.fullbox.org/">Fullbox</a></td>
<td>&gt; 70 Go</td>
<td>???</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL4</td>
</tr>
<tr>
<td><a title="Fur4x-Hebergement" href="http://fur4x-hebergement.net/">Fur4x-Hebergement</a></td>
<td>50 Mo</td>
<td>???</td>
<td>FTP</td>
<td>PHP4</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Hébergement-Gratuit" href="http://www.hebergement-gratuit.com/">Hébergement-Gratuit</a></td>
<td>10 Mo</td>
<td>???</td>
<td>FTP</td>
<td>PHP4</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="i6networks" href="http://www.i6networks.com/">i6networks</a></td>
<td>5 Go</td>
<td>1 To</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="IDoo" href="http://www.idoo.com/">IDoo</a></td>
<td>100 mo</td>
<td>???</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL5</td>
</tr>
<tr>
<td><a title="Jdhost" href="http://jdhosts.net/">Jdhost</a></td>
<td>200 Mo</td>
<td>???</td>
<td>FTP</td>
<td>PHP4</td>
<td>MySQL4</td>
</tr>
<tr>
<td><a title="Jean-Emile" href="http://www.jean-emile.com/">Jean-Emile</a></td>
<td>100 Mo</td>
<td>3 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Kelio" href="http://kelio.org/">Kelio</a></td>
<td>Pas de limite</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP 5.2</td>
<td>MySQL 5.0</td>
</tr>
<tr>
<td><a title="La-cabanne" href="http://www.la-cabane.net/">La-cabanne</a></td>
<td>Pas de limite</td>
<td>???</td>
<td>FTP</td>
<td>PHP 5</td>
<td>MySQL 5</td>
</tr>
<tr>
<td><a title="Les Cigales" href="http://www.lescigales.org/">Les Cigales</a></td>
<td>100 mo</td>
<td>1 Go</td>
<td>FTP</td>
<td>PHP 5</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Libertux" href="http://www.libertux.org/">Libertux</a></td>
<td>Sur mesure</td>
<td>?</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Ncoinfo-Hébergement" href="http://ncoinfo-hebergement.fr.nf/">Ncoinfo-Hébergement</a></td>
<td>75 Mo</td>
<td>10 Go</td>
<td>???</td>
<td>PHP</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Newbiesite" href="http://www.newbiesite.com/">Newbiesite</a></td>
<td>25 Mo</td>
<td>500 Mo</td>
<td>FTP</td>
<td>PHP</td>
<td>???</td>
</tr>
<tr>
<td><a title="Next-Touch" href="http://www.next-touch.com/">Next-Touch</a></td>
<td>Adapté</td>
<td>???</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Olympe-Network" href="http://www.olympe-network.com/">Olympe-Network</a></td>
<td>100 Mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL5</td>
</tr>
<tr>
<td><a title="Redby" href="http://www.redby.info/">Redby</a></td>
<td>25 Mo</td>
<td>300 Mo</td>
<td>FTP</td>
<td>PHP5.2.5</td>
<td>MySQL5.1.23</td>
</tr>
<tr>
<td><a title="Servhome" href="http://servhome.org/">Servhome</a></td>
<td>Pas de limite</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Societeg" href="http://www.societeg.com/">Societeg</a></td>
<td>200 ou 250 Mo</td>
<td>???</td>
<td>FTP</td>
<td>PHP4 ou 5</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Teria" href="http://www.teria.org/">Teria</a></td>
<td>50 Mo</td>
<td>???</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL4</td>
</tr>
<tr>
<td><a title="Tuxfamily" href="http://www.tuxfamily.org/">Tuxfamily</a></td>
<td>100 Mo</td>
<td>???</td>
<td>???</td>
<td>PHP5</td>
<td>MySQL</td>
</tr>
<tr>
<td><a title="Web100" href="http://www.web1000.com/">Web100</a></td>
<td>50 Mo</td>
<td>1200 Mo</td>
<td>FTP</td>
<td>Non</td>
<td>Non</td>
</tr>
<tr>
<td><a title="Webou" href="http://www.webou.net/">Webou</a></td>
<td>50 Mo</td>
<td>3000 Mo</td>
<td>FTP</td>
<td>PHP 5.2.5</td>
<td>MySQL 5.0.27</td>
</tr>
<tr>
<td><a title="Websanslimit" href="http://www.websanslimit.net/">Websanslimit</a></td>
<td>250 Mo</td>
<td>2 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>Non</td>
</tr>
<tr>
<td><a title="Xibit" href="http://xibit.fr/">Xibit</a></td>
<td>250 mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP5.2</td>
<td>MySQL5.0.32</td>
</tr>
<tr>
<td><a title="Xthost" href="http://www.xthost.info/">Xthost</a></td>
<td>30 Mo</td>
<td>???</td>
<td>FTP</td>
<td>Non</td>
<td>Non</td>
</tr>
<tr>
<td><a title="Zouig" href="http://www.zouig.org/">Zouig</a></td>
<td>100 Mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP 5.1.6</td>
<td>MySQL 5.0.26</td>
</tr>
</tbody>
</table>
<h3>Hébergeurs gratuits et avec pub(s)</h3>
<p>Ces hébergeurs proposent eux aussi un service gratuit mais imposent une ou des publicités sur votre site Internet.<br />
Nous remarquerons que la publicité diminue les risques de fermeture de l&#8217;hébergeur.</p>
<table border="0">
<tbody>
<tr>
<th>Hébergeur</th>
<th>Espace disque</th>
<th>Bande Passante</th>
<th>FTP</th>
<th>PHP</th>
<th>MySQL</th>
<th>Commentaire</th>
</tr>
<tr>
<td><a title="007 Sites" href="http://www.007sites.com/">007 Sites</a></td>
<td>700 mo</td>
<td>7 000 mo</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL5</td>
<td>Publicité en bannière dans le haut.<br />
Sites anglais seulement.</td>
</tr>
<tr>
<td><a title="007Gb" href="http://www.007gb.com/">007Gb</a></td>
<td>700 mo</td>
<td>7 000 mo</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL5</td>
<td>Publicité en bannière</td>
</tr>
<tr>
<td><a title="00FreeWeb" href="http://00freeweb.com/">00FreeWeb</a></td>
<td>100 mo</td>
<td>1 200 mo</td>
<td>FTP</td>
<td>Non</td>
<td>Non</td>
<td>Publicité en bannière dans le haut.</td>
</tr>
<tr>
<td><a title="00space" href="http://00space.com/">00space</a></td>
<td>50 mo</td>
<td>1 000 mo</td>
<td>Non</td>
<td>Non</td>
<td>Non</td>
<td>Publicité en bannière en haut.</td>
</tr>
<tr>
<td><a title="0catch" href="http://www.0catch.com/">0catch</a></td>
<td>100 Mo</td>
<td>1200 Mo</td>
<td>FTP</td>
<td>Non</td>
<td>Non</td>
<td>Bannière / popup</td>
</tr>
<tr>
<td><a title="0Moola" href="http://www.0moola.com/">0Moola</a></td>
<td>5 Go</td>
<td>10 Go</td>
<td>FTP</td>
<td>Non</td>
<td>Non</td>
<td>Publicité sous forme de texte</td>
</tr>
<tr>
<td><a title="100webspace" href="http://www.100webspace.com/">100webspace</a></td>
<td>100 Mo</td>
<td>3 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
<td>Petite bannière</td>
</tr>
<tr>
<td><a title="123" href="http://www.123.fr/">123</a></td>
<td>200 Mo</td>
<td>???</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
<td>Publicité installé automatiquement ou manuellement</td>
</tr>
<tr>
<td><a title="125mb" href="http://www.125mb.com/">125mb</a></td>
<td>125 Mo</td>
<td>5 Go</td>
<td>FTP</td>
<td>???</td>
<td>???</td>
<td>Publicité texte</td>
</tr>
<tr>
<td><a title="12GbFree" href="http://www.12gbfree.com/">12GbFree</a></td>
<td>12 Go</td>
<td>25 Go</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
<td>Lien texte, en bas de page</td>
</tr>
<tr>
<td><a title="12mix" href="http://www.12mix.com/">12mix</a></td>
<td>100 Mo</td>
<td>10 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
<td>Bannière Google (accueil seulement)</td>
</tr>
<tr>
<td><a title="1AspHost" href="http://www.1asphost.com/">1AspHost</a></td>
<td>100 Mo</td>
<td>1 Go</td>
<td>Non</td>
<td>Non</td>
<td>Non</td>
<td>Pub ? Serveur sous Windows</td>
</tr>
<tr>
<td><a title="1hwy" href="http://www.1hwy.com/">1hwy</a></td>
<td>12 Mo</td>
<td>512 Mo</td>
<td>Non</td>
<td>???</td>
<td>???</td>
<td>Bannière, popup</td>
</tr>
<tr>
<td><a title="250Free" href="http://www.250free.com/">250Free</a></td>
<td>250 mo</td>
<td>250 mo</td>
<td>FTP</td>
<td>Non</td>
<td>Non</td>
<td>Bannière en haut et en bas du site + popup.</td>
</tr>
<tr>
<td><a title="275MB" href="http://www.275mb.com/">275MB</a></td>
<td>275 Mo</td>
<td>5 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
<td>&#8211;</td>
</tr>
<tr>
<td><a title="297m" href="http://www.297m.com/">297m</a></td>
<td>297 mo</td>
<td>10 Go</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
<td>Publicité sous forme de bannière</td>
</tr>
<tr>
<td><a title="3vindia" href="http://3vindia.info/">3vindia</a></td>
<td>250 mo</td>
<td>6 Go</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
<td>Publicité sous forme de bannière</td>
</tr>
<tr>
<td><a title="43host" href="http://www.43host.info/">43host</a></td>
<td>300 mo</td>
<td>10 Go</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
<td>Publicité sous forme de bannière</td>
</tr>
<tr>
<td><a title="977MB" href="http://www.977mb.com/">977MB</a></td>
<td>977 mo</td>
<td>97 Go</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL5</td>
<td>Publicité sous forme de lien texte</td>
</tr>
<tr>
<td><a title="987mb" href="http://www.987mb.com/">987mb</a></td>
<td>50 987 mo</td>
<td>50 987 mo</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL5</td>
<td>Bannière de 468&#215;60 dans le footer</td>
</tr>
<tr>
<td><a title="ByetHost" href="http://www.byethost.com/">ByetHost</a></td>
<td>100 à 250 Mo</td>
<td>20 à 30 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
<td>&#8211;</td>
</tr>
<tr>
<td><a title="Campus.P2Pforum" href="http://campus.p2pforum.it/">Campus.P2Pforum</a></td>
<td>100 Mo ou 250 Mo</td>
<td>1 Go ou 2 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
<td>&#8211;</td>
</tr>
<tr>
<td><a title="CyberQuébec" href="http://accueil.cyberquebec.ca/">CyberQuébec</a></td>
<td>10 Mo</td>
<td>30 Go</td>
<td>FTP</td>
<td>???</td>
<td>???</td>
<td>&#8211;</td>
</tr>
<tr>
<td><a title="eSmartStart" href="http://www.esmartstart.com/">eSmartStart</a></td>
<td>250 Mo</td>
<td>???</td>
<td>FTP</td>
<td>???</td>
<td>???</td>
<td>&#8211;</td>
</tr>
<tr>
<td><a title="Free Host Pro" href="http://www.freehostpro.com/">Free Host Pro</a></td>
<td>150 Mo</td>
<td>Pas de limite</td>
<td>???</td>
<td>???</td>
<td>???</td>
<td>Publicité texte</td>
</tr>
<tr>
<td><a title="FreeHeberg" href="http://freeheberg.com/">FreeHeberg</a></td>
<td>1 Go</td>
<td>???</td>
<td>FTP</td>
<td>PHP 5.0.5</td>
<td>MySQL 5.0.27</td>
<td>Publicité 468*60 pixels</td>
</tr>
<tr>
<td><a title="Freeservers" href="http://www.freeservers.com/">Freeservers</a></td>
<td>50 Mo</td>
<td>1 Go</td>
<td>Non</td>
<td>Non</td>
<td>Non</td>
<td>Bannière ou Popup</td>
</tr>
<tr>
<td><a title="FunPic" href="http://www.funpic.org/">FunPic</a></td>
<td>2500 Mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP4.4.2</td>
<td>MySQL4.0.26</td>
<td>Popup</td>
</tr>
<tr>
<td><a title="Global Web" href="http://www.globalweb.com.ru/">Global Web</a></td>
<td>50 Mo</td>
<td>1 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
<td>Bannière</td>
</tr>
<tr>
<td><a title="HostArea" href="http://www.hostarea.org/">HostArea</a></td>
<td>300 Mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP5</td>
<td>MySQL</td>
<td>Bannière de 468*60px</td>
</tr>
<tr>
<td><a title="Hostgratos" href="http://www.hostgratos.net/">Hostgratos</a></td>
<td>100 Mo</td>
<td>5 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
<td>&#8211;</td>
</tr>
<tr>
<td><a title="iFrance" href="http://web.ifrance.com/">iFrance</a></td>
<td>100 Mo</td>
<td>???</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL5</td>
<td>Frame</td>
</tr>
<tr>
<td><a title="Kilu" href="http://kilu.de/">Kilu</a></td>
<td>1 Go</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP 5</td>
<td>MySQL 5</td>
<td>&#8211;</td>
</tr>
<tr>
<td><a title="Kokoom" href="http://www.kokoom.com/">Kokoom</a></td>
<td>Pas de limite</td>
<td>???</td>
<td>WebFTP</td>
<td>Non</td>
<td>Non</td>
<td>&#8211;</td>
</tr>
<tr>
<td><a title="Lycos Multimania" href="http://www.multimania.lycos.fr/">Lycos Multimania</a></td>
<td>1024 Mo</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
<td>Frame</td>
</tr>
<tr>
<td><a title="MyFreeWebs" href="http://www.myfreewebs.net/">MyFreeWebs</a></td>
<td>100 Mo</td>
<td>4 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
<td>&#8211;</td>
</tr>
<tr>
<td><a title="Omivu" href="http://omivu.com/">Omivu</a></td>
<td>200 Mo</td>
<td>10 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
<td>Bannière (468&#215;60 px)</td>
</tr>
<tr>
<td><a title="Pursud" href="http://www.pursud.org/">Pursud</a></td>
<td>200 Mo</td>
<td>5 Go</td>
<td>FTP</td>
<td>PHP4.4.1</td>
<td>MySQL4.0.25</td>
<td>&#8211;</td>
</tr>
<tr>
<td><a title="Roxorgamers" href="http://roxorgamers.com/">Roxorgamers</a></td>
<td>???</td>
<td>???</td>
<td>???</td>
<td>???</td>
<td>???</td>
<td>Pour les clans</td>
</tr>
<tr>
<td><a title="Sphosting" href="http://www.sphosting.com/">Sphosting</a></td>
<td>50 Mo</td>
<td>2.5 Go</td>
<td>Non</td>
<td>Non</td>
<td>Non</td>
<td>Bannières / Popups | Pour les sites anglais seulement</td>
</tr>
<tr>
<td><a title="T35 Hosting" href="http://www.t35.com/">T35 Hosting</a></td>
<td>Pas de limite</td>
<td>Pas de limite</td>
<td>FTP</td>
<td>PHP</td>
<td>Non</td>
<td>Popup</td>
</tr>
<tr>
<td><a title="Voila" href="http://monsite.voila.fr/">Voila</a></td>
<td>100 Mo</td>
<td>Pas de limite</td>
<td>Non</td>
<td>Non</td>
<td>Non</td>
<td>Frame</td>
</tr>
<tr>
<td><a title="Xdir" href="http://www.xdir.fr/">Xdir</a></td>
<td>300 Mo</td>
<td>300 Go</td>
<td>FTP</td>
<td>PHP</td>
<td>MySQL</td>
<td>&#8211;</td>
</tr>
</tbody>
</table>
<hr />Vous avez plus qu&#8217;à faire votre choix en fonction des besoins de votre site web. N&#8217;hésitez pas à réagir à poster vos remarques/avis dans les commentaires. Je me ferais un plaisir d&#8217;actualiser la liste.<br />
Si vous proposez un site n&#8217;oubliez pas d&#8217;indiquer un minimum d&#8217;informations (espace disque, FTP, PHP, MySQL &#8230;).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/liste-des-hebergeurs-web-gratuits.html/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Télécharger sans délai d&#8217;attente sur MegaUpload</title>
		<link>http://www.fr.hightech-area.com/telecharger-sans-delai-attente-megaupload-ou-rapidshare.html</link>
		<comments>http://www.fr.hightech-area.com/telecharger-sans-delai-attente-megaupload-ou-rapidshare.html#comments</comments>
		<pubDate>Tue, 07 Apr 2009 18:12:04 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tutoriel]]></category>

		<guid isPermaLink="false">http://www.fr.hightech-area.com/?p=170</guid>
		<description><![CDATA[Si vous téléchargez des fichiers avec des outils en ligne tels que MegaUpload ou RapidShare vous avez surement remarqué ces minuteurs qui vous empêchent de lancer un téléchargement avant quelques secondes (mais parfois quelques minutes). Ces minuteurs ne sont pas là pour rien puisqu&#8217;ils permettent de ne pas surcharger les serveurs sur lesquels les fichiers [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous téléchargez des fichiers avec des outils en ligne tels que MegaUpload ou RapidShare vous avez surement remarqué ces minuteurs qui vous empêchent de lancer un téléchargement avant quelques secondes (mais parfois quelques minutes). Ces minuteurs ne sont pas là pour rien puisqu&#8217;ils permettent de ne pas surcharger les serveurs sur lesquels les fichiers sont hébergés mais <strong>il existe une extension Firefox pour supprimer ce délai d&#8217;attente</strong> si pénible pour certain : <a href="http://skipscreen.com/">Skipscreen </a>(<strong>valable pour les sites suivants : Rapidshare, Megaupload, DepositFiles, Linkbucks et Link-protector</strong>).</p>
<p>L&#8217;abus de cette astuce fera surement réagir les éditeurs des sites qui eux perdent de l&#8217;argent (moins d&#8217;abonnés aux offres payantes,  serveurs à financer etc) ce qui entraînera surement une parade pour bloquer cette astuce. Reste à savoir combien de temps cette astuce fonctionnera.</p>
<p>Source : presse-citron.net</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fr.hightech-area.com/telecharger-sans-delai-attente-megaupload-ou-rapidshare.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

