<?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>jpdemory &#187; Web</title>
	<atom:link href="http://blog.jpdemory.com/category/web/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.jpdemory.com</link>
	<description>Ressources informatiques</description>
	<lastBuildDate>Mon, 02 Jan 2012 12:24:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP : préparer une requête avec MySQL</title>
		<link>http://blog.jpdemory.com/231</link>
		<comments>http://blog.jpdemory.com/231#comments</comments>
		<pubDate>Fri, 09 Oct 2009 09:04:06 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/?p=231</guid>
		<description><![CDATA[Sous PHP, l&#8217;utilisation de paramètres dans SQL peut rendre la tâche fastidieuse avec les multiples concaténations. La fonction sprintf peut simplifier les choses&#8230; Création de la requête SQL en utilisant la fonction sprintf. Cela permet d&#8217;éviter des concaténations fastidieuses. $sql = sprintf("SELECT * FROM clients JOIN commandes ON clients.numclient = commandes.numclient WHERE numclient=%s AND date=%s", [...]]]></description>
			<content:encoded><![CDATA[<p>Sous PHP, l&#8217;utilisation de paramètres dans SQL peut rendre la tâche fastidieuse avec les multiples concaténations.<br />
La fonction <code>sprintf</code> peut simplifier les choses&#8230;<br />
<span id="more-231"></span><br />
Création de la requête SQL en utilisant la fonction <code>sprintf</code>. Cela permet d&#8217;éviter des concaténations fastidieuses.</p>
<p><pre class="brush:php">
$sql = sprintf("SELECT *
FROM clients JOIN commandes ON clients.numclient = commandes.numclient
WHERE numclient=%s AND date=%s",
GetSQLValueString($client,"text"),
GetSQLValueString($dateCmd,"date")
);

$rs = mysql_query($sql) or die ("Erreur : <br/><code>" . $sql . "<code><br/>--<br/>"
. "<span class='alert'>" . mysql_error() . "</span>");
</pre>
</p>
<p>Une fonction très pratique dont je ne connais pas l'auteur. Cette fonction permet de protéger les paramètres passés à la requête SQL.</p>
<p><pre class="brush:php">
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/231/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xinha &#124; Un très puissant éditeur Javascript</title>
		<link>http://blog.jpdemory.com/136</link>
		<comments>http://blog.jpdemory.com/136#comments</comments>
		<pubDate>Sat, 21 Feb 2009 09:36:41 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[developper]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/?p=136</guid>
		<description><![CDATA[Le composant &#34;TextArea&#34; en HTML est assez triste : pas moyen de formater le texte ins&#233;r&#233;. Xinha permet non seulement de formater le texte (gras, italique, &#8230;) mais &#233;galement de nettoyer le texte copier/coller &#224; partir de Word. Mais ce n&#8217;est pas tout, il dispose &#233;galement d&#8217;un tas de plugins : Rechercher / remplacer &#201;dition [...]]]></description>
			<content:encoded><![CDATA[<p>Le composant &quot;TextArea&quot; en HTML est assez triste : pas moyen de formater le texte ins&eacute;r&eacute;.  <a href="http://xinha.webfactional.com" title="&Eacute;diteur Javascript Xinha">Xinha </a>permet non seulement de formater le texte (gras, italique, &#8230;) mais &eacute;galement de nettoyer le texte copier/coller &agrave; partir de Word.  Mais ce n&#8217;est pas tout, il dispose &eacute;galement d&#8217;un tas de plugins :</p>
<ul>
<li>Rechercher / remplacer</li>
<li>&Eacute;dition des tags HTML</li>
<li>&Eacute;diteur de formule math&eacute;matique</li>
<li>&#8230;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/136/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Xataface &#124; La manière la plus rapide de créer une interface pour votre base MySQL</title>
		<link>http://blog.jpdemory.com/133</link>
		<comments>http://blog.jpdemory.com/133#comments</comments>
		<pubDate>Sat, 21 Feb 2009 09:22:05 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[developper]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.jpdemory.com/blog/?p=133</guid>
		<description><![CDATA[Xataface est un framework qui permet de cr&#233;er automatiquement &#224; partir d&#8217;une base MySQL une interface qui permet de : Cr&#233;er Editer Supprimer Lister des enregistrements dans une base de donn&#233;es MySQL. La configuration de l&#8217;interface est assez pouss&#233;e m&#234;me si on peut d&#233;plorer le fait qu&#8217;on ne peut pas, &#224; ma connaissance, utiliser des [...]]]></description>
			<content:encoded><![CDATA[<p>Xataface est un framework qui permet de cr&eacute;er automatiquement &agrave; partir d&#8217;une base MySQL une interface qui permet de :</p>
<ul>
<li>Cr&eacute;er</li>
<li>Editer</li>
<li>Supprimer</li>
<li>Lister</li>
</ul>
<p>des enregistrements dans une base de donn&eacute;es MySQL.  La configuration de l&#8217;interface est assez pouss&eacute;e m&ecirc;me si on peut d&eacute;plorer le fait qu&#8217;on ne peut pas, &agrave; ma connaissance, utiliser des gadgets comme <a href="www.dojotoolkit.org/" title="Dojo Toolkit">dojo</a> ou <a href="xinha.webfactional.com" title="&Eacute;diteur javascript xinha">xinha</a>.  Par contre, on peut tr&egrave;s facilement g&eacute;rer les permissions selon l&#8217;utilisateur.  Un v&eacute;ritable bijou &agrave; tester absolument !!!  <a href="http://xataface.com/">Xataface | The fastest way to build a front-end for your MySQL Database</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/133/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Page blanche en installant Moodle sous XAMPP</title>
		<link>http://blog.jpdemory.com/60</link>
		<comments>http://blog.jpdemory.com/60#comments</comments>
		<pubDate>Sat, 29 Mar 2008 22:35:44 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[moodle]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://www.jpdemory.org/blog/?p=60</guid>
		<description><![CDATA[En essayant d&#8217;installer Moodle sous XAMPP, j&#8217;ai une page blanche après avoir saisie les paramètres de configuration de la base de données. En consultant le forum de Moodle j&#8217;ai obtenu la réponse suivante : Il faut remplacer la ligne : } else if (($fh = @fopen($INSTALL['wwwrootform'].'/'. $INSTALL['admindirname'].'/environment.xml', 'r')) !== false) { par } else if [...]]]></description>
			<content:encoded><![CDATA[<p>En essayant d&#8217;installer Moodle sous XAMPP, j&#8217;ai une page blanche après avoir saisie les paramètres de configuration de la base de données.  En consultant le forum de Moodle j&#8217;ai obtenu la réponse suivante :</p>
<p>Il faut remplacer la ligne :</p>
<pre lang="php">} else if (($fh = @fopen($INSTALL['wwwrootform'].'/'.
$INSTALL['admindirname'].'/environment.xml', 'r')) !== false) {</pre>
<p>par</p>
<pre lang="php">} else if (($fh = @fopen($INSTALL["'".'wwwrootform'].'/'.
$INSTALL['admindirname']."/environment.xml'", 'r')) !== false) {</pre>
<p>dans le fichier install.php</p>
<p>A noter le problème de quote&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/60/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS : les propriétés top, right, bottom et left</title>
		<link>http://blog.jpdemory.com/48</link>
		<comments>http://blog.jpdemory.com/48#comments</comments>
		<pubDate>Fri, 06 Jul 2007 18:43:34 +0000</pubDate>
		<dc:creator>Jean-Philippe DEMORY</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://90plan.ovh.net/~jpdemory/blog/?p=48</guid>
		<description><![CDATA[Comment interpréter les propriétés appliqués aux attributs margin, padding, &#8230; Exemple, quelle est la taille de la marge du haut dans les exemples ci-dessous ? margin: 0; margin: 1px 2px 3px 4px; margin: 0 1px; margin: 0 1px 2px; Les valeurs sont indiquées dans le sens des aiguilles d&#8217;une montre en commencant par le haut. [...]]]></description>
			<content:encoded><![CDATA[<p>Comment interpréter les propriétés appliqués aux attributs margin, padding, &#8230;</p>
<p>Exemple, quelle est la taille de la marge du haut dans les exemples ci-dessous ?</p>
<p>
<pre lang="css">margin: 0;
margin: 1px 2px 3px 4px;
margin: 0 1px;
margin: 0 1px 2px;</pre>
</p>
<p><span id="more-48"></span></p>
<p>Les valeurs sont indiquées dans le sens des aiguilles d&#8217;une montre en commencant par le haut.</p>
<p>Dans l&#8217;exemple suivant, la marge du haut fait 1 pixel, la marge de droite 2 pixels, la marge du bas 3 pixels, la marge de gauche 4 pixels.</p>
<pre lang="css">margin: 1px 2px 3px 4px;</pre>
</p>
<p>Ici, toutes les marges sont à 0 pixel</p>
<pre lang="css">margin: 0px;</pre>
</p>
<p>Lorsque seulement deux valeurs sont indiquées, il faut les répéter. Dans ce cas, on a margin: 0px 1px 0px 1px; Sinon, la première valeur correspond à la marge du haut et du bas, et la seconde correspond à la marge de droite et de gauche. La marge du haut et du bas est de 0 pixel, et la marge de gauche et de droite 1 pixel.</p>
<pre lang="css">margin: 0px 1px;</pre>
</p>
<p>Lorsque trois valeurs sont indiquées, il manque la valeur de gauche : elle sera identique à la valeur de droite. Ici, la marge de haut est de 0 pixel, la marge de gauche et de droite 1 pixel et la marge du bas 2 pixels.</p>
<pre lang="css">margin: 0 1px 2px;</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jpdemory.com/48/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

