<?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>Le MEMO du Web Développeur</title>
	<atom:link href="https://memo-web.fr/feed/" rel="self" type="application/rss+xml" />
	<link>https://memo-web.fr</link>
	<description></description>
	<lastBuildDate>Thu, 25 Sep 2025 14:36:50 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
	<item>
		<title>Importer une base MySQL trop lourde pour PhpMyAdmin</title>
		<link>https://memo-web.fr/importer-une-grosse-base-de-donnees/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=importer-une-grosse-base-de-donnees</link>
					<comments>https://memo-web.fr/importer-une-grosse-base-de-donnees/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Sat, 23 Aug 2025 14:01:14 +0000</pubDate>
				<category><![CDATA[Divers]]></category>
		<guid isPermaLink="false">https://memo-web.fr/?p=1305</guid>

					<description><![CDATA[<p>Lorsque vous essayez d’importer une grosse base MySQL via PhpMyAdmin, vous obtenez souvent ce message : You probably tried to upload a file that is too large. Cela se produit à cause des limitations de PHP (upload_max_filesize, post_max_size, max_execution_time). La solution : utiliser la ligne de commande MySQL. 1. Ouvrez votre terminal macOS / Linux [&#8230;]</p>
The post <a href="https://memo-web.fr/importer-une-grosse-base-de-donnees/">Importer une base MySQL trop lourde pour PhpMyAdmin</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p data-start="211" data-end="316">Lorsque vous essayez d’importer une grosse base MySQL via PhpMyAdmin, vous obtenez souvent ce message :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre!">You probably tried <span class="hljs-keyword">to</span> upload a file that <span class="hljs-keyword">is</span> too <span class="hljs-keyword">large</span>.<br />
</code></div>
</div>
<p data-start="382" data-end="488">Cela se produit à cause des limitations de PHP (upload_max_filesize, post_max_size, max_execution_time).</p>
<p data-start="490" data-end="549"><strong data-start="493" data-end="508">La solution</strong> : utiliser la ligne de commande MySQL.</p>
<hr data-start="551" data-end="554" />
<h2 data-start="556" data-end="585">1. Ouvrez votre terminal</h2>
<ul data-start="586" data-end="710">
<li data-start="586" data-end="629">
<p data-start="588" data-end="629"><strong data-start="588" data-end="605">macOS / Linux</strong> : ouvrez <strong data-start="615" data-end="627">Terminal</strong></p>
</li>
<li data-start="630" data-end="710">
<p data-start="632" data-end="710"><strong data-start="632" data-end="656">Windows (MAMP/XAMPP)</strong> : utilisez <strong data-start="668" data-end="675">CMD</strong>, <strong data-start="677" data-end="691">PowerShell</strong>, ou <strong data-start="696" data-end="708">Git Bash</strong></p>
</li>
</ul>
<hr data-start="712" data-end="715" />
<h2 data-start="717" data-end="780">2. Allez dans le dossier où se trouve votre fichier <code data-start="774" data-end="780">.sql</code></h2>
<p data-start="781" data-end="792">Exemple :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash"><span class="hljs-built_in">cd</span> ~/Documents<br />
</code></div>
</div>
<p data-start="822" data-end="864">Vérifiez que votre fichier est présent :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash"><span class="hljs-built_in">ls</span><br />
</code></div>
</div>
<p data-start="882" data-end="942">Vous devriez voir votre fichier, par exemple <code data-start="927" data-end="939">ma-bdd.sql</code>.</p>
<hr data-start="944" data-end="947" />
<h2 data-start="949" data-end="990">3. Identifier la configuration MySQL</h2>
<p data-start="991" data-end="1012">Tapez la commande :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">ps aux | grep mysql<br />
</code></div>
</div>
<p data-start="1047" data-end="1082">Vous verrez quelque chose comme :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre!">tara <span class="hljs-number">19354</span> <span class="hljs-number">0.0</span> mysqld <span class="hljs-operator">--</span>basedir<span class="hljs-operator">=/</span><span class="hljs-type">Applications</span><span class="hljs-regexp">/MAMP/</span><span class="hljs-type">Library</span><span class="hljs-regexp">/bin/</span>mysql57 <span class="hljs-operator">...</span><br />
<span class="hljs-operator">--</span>socket<span class="hljs-operator">=/</span><span class="hljs-type">Applications</span><span class="hljs-regexp">/MAMP/</span>tmp<span class="hljs-regexp">/mysql/</span>mysql.sock <span class="hljs-operator">--</span>port<span class="hljs-operator">=</span><span class="hljs-number">8889</span><br />
</code></div>
</div>
<p data-start="1229" data-end="1262">? <strong data-start="1232" data-end="1260">Retenez ces deux infos :</strong></p>
<ul data-start="1263" data-end="1376">
<li data-start="1263" data-end="1321">
<p data-start="1265" data-end="1321"><strong data-start="1265" data-end="1275">Socket</strong> : <code data-start="1278" data-end="1319">/Applications/MAMP/tmp/mysql/mysql.sock</code></p>
</li>
<li data-start="1322" data-end="1376">
<p data-start="1324" data-end="1376"><strong data-start="1324" data-end="1332">Port</strong> : <code data-start="1335" data-end="1341">8889</code> (si MAMP, sinon par défaut 3306)</p>
</li>
</ul>
<hr data-start="1378" data-end="1381" />
<h2 data-start="1383" data-end="1421">4. Vérifier que MySQL est démarré</h2>
<p data-start="1422" data-end="1476">Si vous ne voyez pas <code data-start="1443" data-end="1451">mysqld</code>, démarrez le serveur :</p>
<ul data-start="1478" data-end="1541">
<li data-start="1478" data-end="1522">
<p data-start="1480" data-end="1522">Via MAMP : cliquez sur <strong data-start="1503" data-end="1520">Start Servers</strong></p>
</li>
<li data-start="1523" data-end="1541">
<p data-start="1525" data-end="1541">Via Homebrew :</p>
</li>
</ul>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">brew services start mysql<br />
</code></div>
</div>
<hr data-start="1582" data-end="1585" />
<h2 data-start="1587" data-end="1620">5. Tester la connexion MySQL</h2>
<p data-start="1621" data-end="1652">Deux façons de se connecter :</p>
<h3 data-start="1654" data-end="1677">Avec le socket :</h3>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">mysql -u root -p --socket=/Applications/MAMP/tmp/mysql/mysql.sock<br />
</code></div>
</div>
<h3 data-start="1757" data-end="1794">Avec l’adresse IP et le port :</h3>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">mysql -u root -p -h 127.0.0.1 -P 8889<br />
</code></div>
</div>
<p data-start="1846" data-end="1900">Entrez le mot de passe (par défaut <code data-start="1881" data-end="1887">root</code> sur MAMP).</p>
<hr data-start="1902" data-end="1905" />
<h2 data-start="1907" data-end="1962">6. Créez la base de données (si elle n’existe pas)</h2>
<p data-start="1963" data-end="1983">Avant d’importer :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">mysql -u root -p -h 127.0.0.1 -P 8889 -e <span class="hljs-string">"CREATE DATABASE IF NOT EXISTS ma-bdd CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"</span><br />
</code></div>
</div>
<hr data-start="2128" data-end="2131" />
<h2 data-start="2133" data-end="2168">7. Importer la base de données</h2>
<p data-start="2169" data-end="2232">Placez-vous dans le dossier où se trouve <code data-start="2210" data-end="2222">ma-bdd.sql</code>, puis :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">mysql -u root -p -h 127.0.0.1 -P 8889 ma-bdd &lt; ma-bdd.sql<br />
</code></div>
</div>
<p data-start="2305" data-end="2328"><strong data-start="2308" data-end="2326">Explications :</strong></p>
<ul data-start="2329" data-end="2548">
<li data-start="2329" data-end="2359">
<p data-start="2331" data-end="2359"><code data-start="2331" data-end="2337">root</code> ? utilisateur MySQL</p>
</li>
<li data-start="2360" data-end="2394">
<p data-start="2362" data-end="2394"><code data-start="2362" data-end="2366">-p</code> ? demande le mot de passe</p>
</li>
<li data-start="2395" data-end="2433">
<p data-start="2397" data-end="2433"><code data-start="2397" data-end="2411">-h 127.0.0.1</code> ? connexion via TCP</p>
</li>
<li data-start="2434" data-end="2480">
<p data-start="2436" data-end="2480"><code data-start="2436" data-end="2445">-P 8889</code> ? port (MAMP = 8889, sinon 3306)</p>
</li>
<li data-start="2481" data-end="2510">
<p data-start="2483" data-end="2510"><code data-start="2483" data-end="2491">ma-bdd</code> ? nom de la base</p>
</li>
<li data-start="2511" data-end="2548">
<p data-start="2513" data-end="2548"><code data-start="2513" data-end="2525">ma-bdd.sql</code> ? fichier à importer</p>
</li>
</ul>
<hr data-start="2550" data-end="2553" />
<h2 data-start="2555" data-end="2580">8. Vérifier l’import</h2>
<p data-start="2581" data-end="2607">Connectez-vous ensuite :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">mysql -u root -p -h 127.0.0.1 -P 8889<br />
</code></div>
</div>
<p data-start="2660" data-end="2668">Puis :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-sql">USE ma<span class="hljs-operator">-</span>bdd;<br />
<span class="hljs-keyword">SHOW</span> TABLES;<br />
</code></div>
</div>
<hr data-start="2707" data-end="2710" />
<h3 data-start="2712" data-end="2768"><strong data-start="2718" data-end="2768">Astuce bonus : suivre la progression avec <code data-start="2762" data-end="2766">pv</code></strong></h3>
<p data-start="2769" data-end="2830">Pour les très gros fichiers, installez <code data-start="2808" data-end="2812">pv</code> (pipe viewer) :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">brew install pv    <span class="hljs-comment"># macOS</span><br />
sudo apt install pv   <span class="hljs-comment"># Linux</span><br />
</code></div>
</div>
<p data-start="2902" data-end="2910">Puis :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-bash">pv ma-bdd.sql | mysql -u root -p -h 127.0.0.1 -P 8889 ma-bdd<br />
</code></div>
</div>
<hr data-start="2986" data-end="2989" />
<h2 data-start="2991" data-end="3029"><strong data-start="2994" data-end="3029">Section Windows (MAMP ou XAMPP)</strong></h2>
<h3 data-start="3031" data-end="3073">1. Ouvrir l’invite de commande MySQL</h3>
<p data-start="3074" data-end="3167">Avec <strong data-start="3079" data-end="3087">MAMP</strong> ou <strong data-start="3091" data-end="3100">XAMPP</strong>, les exécutables MySQL se trouvent dans leur dossier respectif :</p>
<ul data-start="3168" data-end="3245">
<li data-start="3168" data-end="3207">
<p data-start="3170" data-end="3207"><strong data-start="3170" data-end="3178">MAMP</strong> : <code data-start="3181" data-end="3205">C:\MAMP\bin\mysql\bin\</code></p>
</li>
<li data-start="3208" data-end="3245">
<p data-start="3210" data-end="3245"><strong data-start="3210" data-end="3219">XAMPP</strong> : <code data-start="3222" data-end="3243">C:\xampp\mysql\bin\</code></p>
</li>
</ul>
<p data-start="3247" data-end="3304">Ouvrez <strong data-start="3254" data-end="3261">CMD</strong>, puis déplacez-vous dans ce répertoire :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-cmd">cd C:\MAMP\bin\mysql\bin\<br />
</code></div>
</div>
<hr data-start="3344" data-end="3347" />
<h3 data-start="3349" data-end="3374">2. Importer la base</h3>
<p data-start="3375" data-end="3399">La commande complète :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-cmd">mysql.exe -u root -p -h 127.0.0.1 -P 8889 ma-bdd &lt; "C:\chemin\vers\ma-bdd.sql"<br />
</code></div>
</div>
<ul data-start="3492" data-end="3567">
<li data-start="3492" data-end="3567">
<p data-start="3494" data-end="3567">Si vous utilisez <strong data-start="3511" data-end="3520">XAMPP</strong>, remplacez le port par <code data-start="3544" data-end="3550">3306</code> (par défaut) :</p>
</li>
</ul>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2">
<div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div>
</div>
</div>
<div class="overflow-y-auto p-4" dir="ltr"><code class="whitespace-pre! language-cmd">mysql.exe -u root -p -h 127.0.0.1 -P 3306 ma-bdd &lt; "C:\chemin\vers\ma-bdd.sql"<br />
</code></div>
</div>
<hr data-start="3660" data-end="3663" />
<p data-start="3825" data-end="3910">
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/importer-une-grosse-base-de-donnees/">Importer une base MySQL trop lourde pour PhpMyAdmin</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/importer-une-grosse-base-de-donnees/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Comment choisir le bon thème WordPress (gratuit ou payant)</title>
		<link>https://memo-web.fr/comment-choisir-le-bon-theme-wordpress-gratuit-ou-payant/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=comment-choisir-le-bon-theme-wordpress-gratuit-ou-payant</link>
					<comments>https://memo-web.fr/comment-choisir-le-bon-theme-wordpress-gratuit-ou-payant/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Tue, 22 Jul 2025 13:25:05 +0000</pubDate>
				<category><![CDATA[Enfold]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://memo-web.fr/?p=1294</guid>

					<description><![CDATA[<p>Choisir un thème WordPress est une étape essentielle dans la création de ton site. C’est ce qui va définir l’apparence du site, mais aussi en partie son fonctionnement. Gratuit ou payant ? Thème gratuit : Inconvénients : fonctionnalités limitées, peu de mises à jour, support technique souvent absent. Avantages : 100 % gratuit, souvent léger, [&#8230;]</p>
The post <a href="https://memo-web.fr/comment-choisir-le-bon-theme-wordpress-gratuit-ou-payant/">Comment choisir le bon thème WordPress (gratuit ou payant)</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>Choisir un thème WordPress est une étape essentielle dans la création de ton site. C’est ce qui va définir l’apparence du site, mais aussi en partie son fonctionnement.</p>
<h3>Gratuit ou payant ?</h3>
<p><strong>Thème gratuit :</strong></p>
<ul>
<li>Inconvénients : fonctionnalités limitées, peu de mises à jour, support technique souvent absent.</li>
<li>Avantages : 100 % gratuit, souvent léger, facile à prendre en main.</li>
</ul>
<p><strong>Thème payant (premium) :</strong></p>
<ul>
<li>Avantages : design professionnel, nombreuses options, support client, mises à jour régulières, compatibilité avec les plugins.</li>
<li>Inconvénient : coût unique ou annuel (généralement entre 30 € et 80 €).</li>
</ul>
<p><strong>Mon conseil :</strong><br />
Si tu veux un site sérieux, stable et évolutif, privilégie un thème premium avec de bonnes évaluations. C’est un petit investissement qui peut t’éviter de gros problèmes plus tard. Le SAV du thème est là pour t&rsquo;aider en cas de problèmes.</p>
<h3 data-start="1025" data-end="1068">Ce qu’il faut regarder avant de choisir</h3>
<ol data-start="1070" data-end="1837">
<li data-start="1070" data-end="1224">
<p data-start="1073" data-end="1224">Les avis et notes des utilisateurs<br data-start="1111" data-end="1114" />Privilégie les thèmes notés 4,5 étoiles ou plus sur ThemeForest, Elegant Themes, ou le catalogue WordPress.</p>
</li>
<li data-start="1226" data-end="1379">
<p data-start="1229" data-end="1379">Fréquence des mises à jour<br data-start="1259" data-end="1262" />Un thème régulièrement mis à jour est un bon signe : il reste compatible avec les dernières versions de WordPress.</p>
</li>
<li data-start="1381" data-end="1559">
<p data-start="1384" data-end="1559">Démo et personnalisation<br data-start="1412" data-end="1415" />Regarde la démo : est-ce que le style correspond à ton projet ? Le thème propose-t-il un constructeur visuel (comme Elementor, WPBakery&#8230;) ?</p>
</li>
<li data-start="1561" data-end="1705">
<p data-start="1564" data-end="1705">Compatibilité avec les plugins courants<br data-start="1607" data-end="1610" />Vérifie s’il fonctionne avec WooCommerce, WPML, Yoast SEO, etc., si tu comptes les utiliser.</p>
</li>
<li data-start="1707" data-end="1837">
<p data-start="1710" data-end="1837">Support technique<br data-start="1731" data-end="1734" />Important si tu débutes : un bon support peut vraiment te faire gagner du temps et éviter le stress.</p>
</li>
</ol>
<h3 data-start="1839" data-end="1880">Exemples de thèmes premium populaires</h3>
<ul data-start="1882" data-end="2040">
<li data-start="1882" data-end="1920">
<p data-start="1884" data-end="1920">Salient (design pro et animations)</p>
</li>
<li data-start="1921" data-end="1954">
<p data-start="1923" data-end="1954">Enfold (polyvalent et stable)</p>
</li>
<li data-start="1955" data-end="1993">
<p data-start="1957" data-end="1993">Astra Pro (rapide, très modulable)</p>
</li>
<li data-start="1994" data-end="2040">
<p data-start="1996" data-end="2040">OceanWP Premium (complet et personnalisable)</p>
</li>
</ul>
<h3 data-start="2042" data-end="2071">Où trouver un bon thème ?</h3>
<ul data-start="2073" data-end="2233">
<li data-start="2073" data-end="2124">
<p data-start="2075" data-end="2124">themeforest.net (le plus gros catalogue payant)</p>
</li>
<li data-start="2125" data-end="2164">
<p data-start="2127" data-end="2164">elegantthemes.com (éditeur de Divi)</p>
</li>
<li data-start="2165" data-end="2233">
<p data-start="2167" data-end="2233">Depuis le tableau de bord WordPress : Apparence &gt; Thèmes &gt; Ajouter</p>
</li>
</ul>
<h3 data-start="2235" data-end="2248">En résumé</h3>
<div>
<div tabindex="-1">
<table data-start="2250" data-end="2782">
<thead data-start="2250" data-end="2326">
<tr data-start="2250" data-end="2326">
<th data-start="2250" data-end="2283" data-col-size="sm">Critère</th>
<th data-start="2283" data-end="2326" data-col-size="sm">Recommandation</th>
</tr>
</thead>
<tbody data-start="2403" data-end="2782">
<tr data-start="2403" data-end="2478">
<td data-start="2403" data-end="2435" data-col-size="sm">Gratuit ou payant ?</td>
<td data-col-size="sm" data-start="2435" data-end="2478">Payant avec bons commentaires</td>
</tr>
<tr data-start="2479" data-end="2554">
<td data-start="2479" data-end="2511" data-col-size="sm">Note minimale</td>
<td data-col-size="sm" data-start="2511" data-end="2554">4,5 étoiles</td>
</tr>
<tr data-start="2555" data-end="2630">
<td data-start="2555" data-end="2587" data-col-size="sm">Mises à jour récentes ?</td>
<td data-col-size="sm" data-start="2587" data-end="2630">Oui</td>
</tr>
<tr data-start="2631" data-end="2706">
<td data-start="2631" data-end="2663" data-col-size="sm">Compatible avec tes plugins ?</td>
<td data-col-size="sm" data-start="2663" data-end="2706">Oui (vérifie la fiche du thème)</td>
</tr>
<tr data-start="2707" data-end="2782">
<td data-start="2707" data-end="2739" data-col-size="sm">Support client disponible ?</td>
<td data-col-size="sm" data-start="2739" data-end="2782">Oui si tu débutes</td>
</tr>
</tbody>
</table>
</div>
</div>
<h2>Note personnelle sur le choix d&rsquo;un thème WordPress</h2>
<p>J’ai longtemps fait confiance à Enfold pour sa stabilité, sa simplicité de personnalisation et son faible taux de bugs. Mais son design, peu mis à jour au fil des années, apparait en 2025 comme clairement daté.</p>
<p>En passant à Salient, j’ai retrouvé :</p>
<ul>
<li>Un design moderne et des animations soignées</li>
<li>Un constructeur enrichi (WPBakery, pas le meilleur certe, on lui préfère souvent Elementor, mais il est facile à prendre en main et « fait le job »)</li>
<li>Une flexibilité et une compatibilité WooCommerce irréprochables</li>
<li>Des mises à jour fréquentes</li>
</ul>
<p>Je n&rsquo;ai trouvé en quelques projets montés avec Salient, que quelques mini- bugs faciles à contourner. Je n&rsquo;ai donc pas encore eu l&rsquo;occasion de tester le support d&rsquo;Enfold</p>
<p><strong>En résumé :</strong></p>
<p>Enfold reste un bon thème pour un projet classique et ultra-stable.</p>
<p>Mais optez pour Salient si vous voulez un rendu plus actuel et personnalisable.</p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/comment-choisir-le-bon-theme-wordpress-gratuit-ou-payant/">Comment choisir le bon thème WordPress (gratuit ou payant)</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/comment-choisir-le-bon-theme-wordpress-gratuit-ou-payant/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Créer mon site WEB &#8211; Le choix de l&#8217;hébergeur</title>
		<link>https://memo-web.fr/creer-mon-site-web-le-choix-de-lhebergeur/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=creer-mon-site-web-le-choix-de-lhebergeur</link>
					<comments>https://memo-web.fr/creer-mon-site-web-le-choix-de-lhebergeur/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Tue, 22 Jul 2025 08:52:40 +0000</pubDate>
				<category><![CDATA[Hébergeur Web]]></category>
		<guid isPermaLink="false">https://memo-web.fr/?p=1278</guid>

					<description><![CDATA[<p>Le choix de l&#8217;hébergeur est crucial pour votre site internet. Il impacte la performance, la sécurité, le référencement et l&#8217;expérience utilisateur. Ce guide vous présente les meilleurs hébergeurs français et européens, en privilégiant la qualité du support client et l&#8217;engagement écologique. Critères de sélection d&#8217;un hébergeur Critères techniques essentiels Performance : Temps de chargement, bande [&#8230;]</p>
The post <a href="https://memo-web.fr/creer-mon-site-web-le-choix-de-lhebergeur/">Créer mon site WEB – Le choix de l’hébergeur</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>Le choix de l&rsquo;hébergeur est crucial pour votre site internet. Il impacte la performance, la sécurité, le référencement et l&rsquo;expérience utilisateur. Ce guide vous présente les meilleurs hébergeurs français et européens, en privilégiant la qualité du support client et l&rsquo;engagement écologique.</p>
<h2>Critères de sélection d&rsquo;un hébergeur</h2>
<h3>Critères techniques essentiels</h3>
<ul>
<li><strong>Performance</strong> : Temps de chargement, bande passante</li>
<li><strong>Fiabilité</strong> : Uptime garanti (minimum 99,9%)</li>
<li><strong>Sécurité</strong> : SSL gratuit, sauvegardes automatiques, protection DDoS</li>
<li><strong>Évolutivité</strong> : Possibilité d&rsquo;upgrade facilement</li>
</ul>
<h3>Critères de service</h3>
<ul>
<li><strong>Support client</strong> : Disponibilité 24h/7j, réactivité, expertise</li>
<li><strong>Interface</strong> : Panneau de contrôle intuitif</li>
<li><strong>Documentation</strong> : Guides et tutoriels complets</li>
</ul>
<h3>Critères environnementaux</h3>
<ul>
<li><strong>Énergie verte</strong> : Utilisation d&rsquo;énergies renouvelables</li>
<li><strong>Compensation carbone</strong> : Programmes de neutralité carbone</li>
<li><strong>Efficacité énergétique</strong> : Datacenters optimisés</li>
<li><strong>Certifications</strong> : ISO 14001, labels environnementaux</li>
</ul>
<h2>Top 10 des hébergeurs recommandés</h2>
<h3>Hébergeurs français &#8211; Premium</h3>
<h4>1. <strong>OVHcloud</strong></h4>
<ul>
<li><strong>Forces</strong> : Leader européen, datacenters français, prix compétitifs</li>
<li><strong>SAV</strong> : Support 24h/7j, communauté active, documentation complète</li>
<li><strong>Écologie</strong> : Datacenters refroidis par air naturel, engagement neutralité carbone 2030</li>
<li><strong>Idéal pour</strong> : Tous profils, de débutant à expert</li>
</ul>
<h4>2. <strong>O2Switch</strong></h4>
<ul>
<li><strong>Forces</strong> : Hébergement illimité, serveurs en France, excellent rapport qualité/prix</li>
<li><strong>SAV</strong> : Support français réactif, assistance personnalisée</li>
<li><strong>Écologie</strong> : Datacenters alimentés en énergie verte, engagement environnemental fort</li>
<li><strong>Idéal pour</strong> : PME et sites moyens/importants</li>
</ul>
<h4>3. <strong>Infomaniak</strong></h4>
<ul>
<li><strong>Forces</strong> : Hébergeur suisse éco-responsable, innovation constante</li>
<li><strong>SAV</strong> : Support multilingue excellent, documentation exemplaire</li>
<li><strong>Écologie</strong> : 100% énergie renouvelable, hébergement neutre en CO2, certifié ISO 14001</li>
<li><strong>Idéal pour</strong> : Projets éco-conscients, WordPress optimisé</li>
</ul>
<h4>4. <strong>LWS (Line Web Services)</strong></h4>
<ul>
<li><strong>Forces</strong> : Français, interface intuitive, bon pour débutants</li>
<li><strong>SAV</strong> : Support en français, guides détaillés</li>
<li><strong>Écologie</strong> : Datacenters eco-friendly, compensation carbone</li>
<li><strong>Idéal pour</strong> : Débutants et petits sites</li>
</ul>
<h3>Hébergeurs français/européens &#8211; Qualité</h3>
<h4>5. <strong>Planethoster</strong></h4>
<ul>
<li><strong>Forces</strong> : Franco-canadien, performance exceptionnelle, sécurité renforcée</li>
<li><strong>SAV</strong> : Support expert 24h/7j, très réactif</li>
<li><strong>Écologie</strong> : Datacenters alimentés en énergie verte</li>
<li><strong>Idéal pour</strong> : Sites professionnels exigeants</li>
</ul>
<h4>6. <strong>Hostinger</strong></h4>
<ul>
<li><strong>Forces</strong> : Prix attractifs, performances correctes, interface moderne</li>
<li><strong>SAV</strong> : Support 24h/7j, chat en direct</li>
<li><strong>Écologie</strong> : Engagement pour la durabilité, projets d&rsquo;énergie verte</li>
<li><strong>Idéal pour</strong> : Budgets serrés, débutants</li>
</ul>
<h4>7. <strong>Ionos (1&amp;1)</strong></h4>
<ul>
<li><strong>Forces</strong> : Groupe allemand, datacenters européens, gamme complète</li>
<li><strong>SAV</strong> : Support multilingue, conseillers dédiés</li>
<li><strong>Écologie</strong> : Datacenters alimentés en énergie verte, objectif neutralité carbone</li>
<li><strong>Idéal pour</strong> : Entreprises, sites multilingues</li>
</ul>
<h3>? Hébergeurs spécialisés écologiques</h3>
<h4>8. <strong>Ex2</strong></h4>
<ul>
<li><strong>Forces</strong> : Hébergeur québécois, datacenters verts, support francophone</li>
<li><strong>SAV</strong> : Support personnalisé, expertise technique</li>
<li><strong>Écologie</strong> : 100% énergie renouvelable, compensation carbone</li>
<li><strong>Idéal pour</strong> : Projets éthiques et durables</li>
</ul>
<h4>9. <strong>PlanetHoster Green</strong></h4>
<ul>
<li><strong>Forces</strong> : Version écologique de PlanetHoster, même qualité</li>
<li><strong>SAV</strong> : Support expert identique</li>
<li><strong>Écologie</strong> : Hébergement 100% vert, compensé carbone</li>
<li><strong>Idéal pour</strong> : Entreprises responsables</li>
</ul>
<h4>10. <strong>Alwaysdata</strong></h4>
<ul>
<li><strong>Forces</strong> : Hébergeur français technique, APIs avancées</li>
<li><strong>SAV</strong> : Support technique expert, communauté de développeurs</li>
<li><strong>Écologie</strong> : Datacenters parisiens optimisés, démarche écologique</li>
<li><strong>Idéal pour</strong> : Développeurs, projets techniques</li>
</ul>
<h2>Qualité du support client</h2>
<h3>Excellent support</h3>
<ul>
<li><strong>Infomaniak</strong> : Réponse &lt; 2h, expertise technique</li>
<li><strong>O2Switch</strong> : Support français personnalisé</li>
<li><strong>PlanetHoster</strong> : Disponible 24h/7j, très réactif</li>
</ul>
<h3>Bon support</h3>
<ul>
<li><strong>OVHcloud</strong> : Documentation complète, communauté active</li>
<li><strong>LWS</strong> : Support en français, pédagogique</li>
<li><strong>Ionos</strong> : Conseillers dédiés selon formules</li>
</ul>
<h3>Support correct</h3>
<ul>
<li><strong>Hostinger</strong> : Chat rapide mais parfois superficiel</li>
<li><strong>Alwaysdata</strong> : Technique mais délais parfois longs</li>
</ul>
<h2>Recommandations par profil</h2>
<h3><strong>Débutant total</strong></h3>
<p><strong>Recommandation</strong> : <strong>LWS</strong> ou <strong>O2Switch</strong></p>
<ul>
<li>Interface simple</li>
<li>Support pédagogique en français</li>
<li>Prix abordable</li>
</ul>
<h3><strong>Professionnel/PME</strong></h3>
<p><strong>Recommandation</strong> : <strong>Infomaniak</strong> ou <strong>O2Switch</strong></p>
<ul>
<li>Performance fiable</li>
<li>Support expert</li>
<li>Engagement écologique</li>
</ul>
<h3><strong>Projet éco-responsable</strong></h3>
<p><strong>Recommandation</strong> : <strong>Infomaniak</strong> ou <strong>Ex2</strong></p>
<ul>
<li>100% énergie verte</li>
<li>Certifications environnementales</li>
<li>Transparence sur l&rsquo;impact carbone</li>
</ul>
<h3><strong>Budget serré</strong></h3>
<p><strong>Recommandation</strong> : <strong>Hostinger</strong> ou <strong>LWS</strong></p>
<ul>
<li>Prix compétitifs</li>
<li>Fonctionnalités essentielles</li>
<li>Support correct</li>
</ul>
<h3><strong>Développeur/Technique</strong></h3>
<p><strong>Recommandation</strong> : <strong>Alwaysdata</strong> ou <strong>PlanetHoster</strong></p>
<ul>
<li>APIs avancées</li>
<li>Flexibilité technique</li>
<li>Support expert</li>
</ul>
<h2>Checklist avant de choisir</h2>
<h3>Questions à se poser :</h3>
<ul>
<li>[ ] Quel est mon budget mensuel ?</li>
<li>[ ] Quel trafic j&rsquo;anticipe ?</li>
<li>[ ] Ai-je besoin d&rsquo;un support en français ?</li>
<li>[ ] L&rsquo;impact écologique est-il important pour moi ?</li>
<li>[ ] Quelles technologies vais-je utiliser ?</li>
</ul>
<h3>Points à vérifier :</h3>
<ul>
<li>[ ] Localisation des serveurs (France/Europe)</li>
<li>[ ] Politique de sauvegarde</li>
<li>[ ] Certificat SSL gratuit inclus</li>
<li>[ ] Migration gratuite proposée</li>
<li>[ ] Période d&rsquo;essai ou garantie satisfait/remboursé</li>
</ul>
<h2>Conclusion</h2>
<p>Le choix de l&rsquo;hébergeur dépend de vos priorités : budget, performance, écologie ou support. Les hébergeurs français comme <strong>O2Switch</strong> et <strong>Infomaniak</strong> offrent le meilleur équilibre entre qualité, support francophone et engagement environnemental.</p>
<p>Pour un premier site, commencez par <strong>LWS</strong> ou <strong>O2Switch</strong>. Pour un projet professionnel éco-responsable, <strong>Infomaniak</strong> est le choix idéal.</p>
<h2>Note personnelle : Mon hébergeur de prédilection</h2>
<p>Pour ma part, en tant que professionnelle, j&rsquo;ai un faible pour <strong>O2Switch </strong>qui avec son outil <strong>WPTiger</strong> propose tout un tas de fonctionnalités intéressantes <strong>pour les sites WORDPRESS</strong> , comme la création de <strong>site de staging (environnement de pre-production)</strong>.<br />
Un <strong data-start="3" data-end="22">site de staging</strong> est une copie de votre site web, utilisée pour tester des modifications avant de les appliquer sur le site en ligne (site « live »).<br data-start="153" data-end="156" />Il permet de faire des essais en toute sécurité (nouveaux plugins, design, contenu, mises à jour, etc.) sans impacter les visiteurs.<br data-start="288" data-end="291" />C’est comme un brouillon privé du site, réservé aux développeurs ou éditeurs, pour éviter les erreurs visibles en production.</p>
<p>Last but not least, leur support est très efficace. Et ils répondent plutôt rapidement au téléphone (même si je connais par coeur leur musique d&rsquo;attente que j&rsquo;ai même fini par apprécier )</p>
<p>&nbsp;</p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/creer-mon-site-web-le-choix-de-lhebergeur/">Créer mon site WEB – Le choix de l’hébergeur</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/creer-mon-site-web-le-choix-de-lhebergeur/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ma newsletter sur WordPress : Premiers pas avec Brevo (anciennement SendinBlue)</title>
		<link>https://memo-web.fr/ma-newsletter-sur-wordpress-premiers-pas-avec-brevo-ancienennement-sendinblue/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ma-newsletter-sur-wordpress-premiers-pas-avec-brevo-ancienennement-sendinblue</link>
					<comments>https://memo-web.fr/ma-newsletter-sur-wordpress-premiers-pas-avec-brevo-ancienennement-sendinblue/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Tue, 22 Jul 2025 08:29:05 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://memo-web.fr/?p=1271</guid>

					<description><![CDATA[<p>Introduction à Brevo Brevo (anciennement Sendinblue) est une plateforme complète de marketing digital qui combine email marketing, SMS, chat en direct et CRM. Ce guide vous accompagne dans l&#8217;intégration de Brevo avec votre site WordPress. Prérequis Un site WordPress fonctionnel Accès administrateur à WordPress Un compte Brevo (gratuit jusqu&#8217;à 300 emails/jour) 1. Création et configuration [&#8230;]</p>
The post <a href="https://memo-web.fr/ma-newsletter-sur-wordpress-premiers-pas-avec-brevo-ancienennement-sendinblue/">Ma newsletter sur WordPress : Premiers pas avec Brevo (anciennement SendinBlue)</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<h2>Introduction à Brevo</h2>
<p>Brevo (anciennement Sendinblue) est une plateforme complète de marketing digital qui combine email marketing, SMS, chat en direct et CRM. Ce guide vous accompagne dans l&rsquo;intégration de Brevo avec votre site WordPress.</p>
<h2>Prérequis</h2>
<ul>
<li>Un site WordPress fonctionnel</li>
<li>Accès administrateur à WordPress</li>
<li>Un compte Brevo (gratuit jusqu&rsquo;à 300 emails/jour)</li>
</ul>
<hr />
<h2>1. Création et configuration du compte Brevo</h2>
<h3>Étape 1.1 : Inscription</h3>
<ol>
<li>Rendez-vous sur <a href="https://brevo.com/" class="broken_link">brevo.com</a></li>
<li>Cliquez sur « S&rsquo;inscrire gratuitement »</li>
<li>Remplissez vos informations :
<ul>
<li>Nom et prénom</li>
<li>Email professionnel</li>
<li>Mot de passe sécurisé</li>
<li>Nom de votre entreprise</li>
</ul>
</li>
</ol>
<h3>Étape 1.2 : Validation du compte</h3>
<ol>
<li>Confirmez votre adresse email via le lien reçu</li>
<li>Complétez votre profil :
<ul>
<li>Secteur d&rsquo;activité</li>
<li>Taille de votre entreprise</li>
<li>Objectifs marketing</li>
</ul>
</li>
</ol>
<h3>Étape 1.3 : Configuration de l&rsquo;expéditeur</h3>
<ol>
<li>Allez dans <strong>Paramètres</strong> ? <strong>Expéditeurs et IP</strong></li>
<li>Cliquez sur <strong>Ajouter un expéditeur</strong></li>
<li>Renseignez :
<ul>
<li><strong>Nom</strong> : Le nom qui apparaîtra dans les emails</li>
<li><strong>Email</strong> : Votre adresse email professionnelle</li>
<li><strong>Adresse de réponse</strong> : L&#8217;email de réception des réponses</li>
</ul>
</li>
<li>Validez l&rsquo;adresse email via le lien de confirmation</li>
</ol>
<hr />
<h2>2. Installation du plugin WordPress</h2>
<h3>Méthode 1 : Installation depuis l&rsquo;administration WordPress</h3>
<ol>
<li>Connectez-vous à votre administration WordPress</li>
<li>Allez dans <strong>Extensions</strong> ? <strong>Ajouter</strong></li>
<li>Recherchez « Brevo » ou « Sendinblue »</li>
<li>Cliquez sur <strong>Installer</strong> puis <strong>Activer</strong></li>
</ol>
<h3>Méthode 2 : Installation manuelle</h3>
<ol>
<li>Téléchargez le plugin depuis <a href="https://wordpress.org/plugins/mailin/">wordpress.org/plugins/mailin</a></li>
<li>Décompressez le fichier</li>
<li>Uploadez le dossier via FTP dans <code>/wp-content/plugins/</code></li>
<li>Activez le plugin dans WordPress</li>
</ol>
<hr />
<h2>3. Configuration du plugin</h2>
<h3>Étape 3.1 : Récupération de la clé API</h3>
<ol>
<li>Dans Brevo, allez dans <strong>Paramètres</strong> ? <strong>Clés API</strong></li>
<li>Cliquez sur <strong>Générer une nouvelle clé API</strong></li>
<li>Nommez votre clé (ex: « Site WordPress »)</li>
<li>Copiez la clé générée (elle ne sera plus visible après)</li>
</ol>
<h3>Étape 3.2 : Connection du plugin</h3>
<ol>
<li>Dans WordPress, allez dans <strong>Brevo</strong> ? <strong>Paramètres</strong></li>
<li>Collez votre clé API dans le champ prévu</li>
<li>Cliquez sur <strong>Connexion</strong></li>
<li>Vérifiez que le statut indique « Connecté »</li>
</ol>
<hr />
<h2>4. Création de votre première liste de contacts</h2>
<h3>Étape 4.1 : Dans l&rsquo;interface Brevo</h3>
<ol>
<li>Allez dans <strong>Contacts</strong> ? <strong>Listes</strong></li>
<li>Cliquez sur <strong>Créer une liste</strong></li>
<li>Définissez :
<ul>
<li><strong>Nom</strong> : ex: « Newsletter site web »</li>
<li><strong>Description</strong> : Brève description de la liste</li>
</ul>
</li>
<li>Cliquez sur <strong>Créer la liste</strong></li>
</ol>
<h3>Étape 4.2 : Configuration des attributs</h3>
<ol>
<li>Dans <strong>Contacts</strong> ? <strong>Paramètres</strong> ? <strong>Attributs de contact</strong></li>
<li>Vérifiez que ces champs existent :
<ul>
<li>EMAIL (obligatoire)</li>
<li>PRENOM</li>
<li>NOM</li>
<li>DATE_INSCRIPTION</li>
</ul>
</li>
<li>Créez d&rsquo;autres attributs si nécessaire</li>
</ol>
<hr />
<h2>5. Création de formulaires d&rsquo;inscription</h2>
<h3>Option 1 : Formulaire Brevo intégré</h3>
<h4>Étape 5.1 : Création du formulaire</h4>
<ol>
<li>Dans Brevo : <strong>Contacts</strong> ? <strong>Formulaires</strong></li>
<li>Cliquez sur <strong>Créer un formulaire</strong></li>
<li>Choisissez <strong>Formulaire d&rsquo;inscription</strong></li>
<li>Sélectionnez un template ou créez from scratch</li>
</ol>
<h4>Étape 5.2 : Personnalisation</h4>
<ol>
<li><strong>Design</strong> : Couleurs, polices, style</li>
<li><strong>Champs</strong> : Email, prénom, nom, etc.</li>
<li><strong>Messages</strong> : Confirmation, erreur</li>
<li><strong>Paramètres</strong> :
<ul>
<li>Liste de destination</li>
<li>Email de confirmation</li>
<li>Page de redirection</li>
</ul>
</li>
</ol>
<h4>Étape 5.3 : Intégration WordPress</h4>
<ol>
<li>Copiez le code d&rsquo;intégration fourni</li>
<li>Dans WordPress : <strong>Pages</strong> ? <strong>Ajouter</strong></li>
<li>Utilisez un bloc HTML personnalisé</li>
<li>Collez le code du formulaire</li>
</ol>
<h3>Option 2 : Widget WordPress</h3>
<ol>
<li>Dans WordPress : <strong>Apparence</strong> ? <strong>Widgets</strong></li>
<li>Ajoutez le widget <strong>Brevo Subscription Form</strong></li>
<li>Configurez :
<ul>
<li>Titre du widget</li>
<li>Liste de destination</li>
<li>Champs à afficher</li>
<li>Template de design</li>
</ul>
</li>
</ol>
<hr />
<h2>6. Configuration de l&#8217;email transactionnel</h2>
<h3>Étape 6.1 : Authentification du domaine</h3>
<ol>
<li>Dans Brevo : <strong>Paramètres</strong> ? <strong>Expéditeurs et IP</strong></li>
<li>Cliquez sur <strong>Authentifier votre domaine</strong></li>
<li>Suivez les instructions pour configurer les enregistrements DNS :
<ul>
<li><strong>SPF</strong> : <code>v=spf1 include:spf.sendinblue.com mx ~all</code></li>
<li><strong>DKIM</strong> : Enregistrement fourni par Brevo</li>
<li><strong>DMARC</strong> : <code>v=DMARC1; p=none;</code></li>
</ul>
</li>
</ol>
<h3>Étape 6.2 : Configuration WordPress</h3>
<ol>
<li>Dans WordPress : <strong>Brevo</strong> ? <strong>Email transactionnel</strong></li>
<li>Activez <strong>Utiliser Brevo pour les emails WordPress</strong></li>
<li>Configurez :
<ul>
<li>Nom de l&rsquo;expéditeur</li>
<li>Email de l&rsquo;expéditeur</li>
<li>Template des emails</li>
</ul>
</li>
</ol>
<hr />
<h2>7. Création de votre première campagne email</h2>
<h3>Étape 7.1 : Conception de la campagne</h3>
<ol>
<li>Dans Brevo : <strong>Campagnes</strong> ? <strong>Email</strong></li>
<li>Cliquez sur <strong>Créer une campagne email</strong></li>
<li>Configurez :
<ul>
<li><strong>Nom</strong> : Pour votre organisation interne</li>
<li><strong>Objet</strong> : Ce que verront vos destinataires</li>
<li><strong>Expéditeur</strong> : Nom et email</li>
</ul>
</li>
</ol>
<h3>Étape 7.2 : Design de l&#8217;email</h3>
<ol>
<li>Choisissez un <strong>template</strong> ou partez de zéro</li>
<li>Utilisez l&rsquo;éditeur drag &amp; drop :
<ul>
<li><strong>Texte</strong> : Contenu principal</li>
<li><strong>Image</strong> : Visuels et logos</li>
<li><strong>Bouton</strong> : Call-to-action</li>
<li><strong>Réseaux sociaux</strong> : Liens de partage</li>
</ul>
</li>
<li>Prévisualisez sur desktop et mobile</li>
</ol>
<h3>Étape 7.3 : Ciblage et envoi</h3>
<ol>
<li><strong>Destinataires</strong> : Sélectionnez votre liste</li>
<li><strong>Planification</strong> :
<ul>
<li>Envoi immédiat</li>
<li>Planification différée</li>
<li>Test A/B (versions payantes)</li>
</ul>
</li>
<li><strong>Test</strong> : Envoyez-vous un email de test</li>
<li>Cliquez sur <strong>Programmer l&rsquo;envoi</strong></li>
</ol>
<hr />
<h2>8. Automatisation marketing</h2>
<h3>Scénario 1 : Email de bienvenue</h3>
<ol>
<li><strong>Contacts</strong> ? <strong>Automatisation</strong> ? <strong>Créer un workflow</strong></li>
<li><strong>Déclencheur</strong> : « Contact ajouté à une liste »</li>
<li><strong>Action</strong> : « Envoyer un email »</li>
<li>Configurez votre email de bienvenue</li>
<li>Activez le workflow</li>
</ol>
<h3>Scénario 2 : Séquence d&rsquo;onboarding</h3>
<ol>
<li>Créez une série d&#8217;emails (J+1, J+7, J+14)</li>
<li>Utilisez les délais entre les emails</li>
<li>Segmentez selon l&rsquo;engagement (ouvertures, clics)</li>
</ol>
<hr />
<h2>9. Suivi et analyse des performances</h2>
<h3>Métriques essentielles à surveiller :</h3>
<h4>Campagnes email</h4>
<ul>
<li><strong>Taux de délivrabilité</strong> : % d&#8217;emails arrivés en boîte</li>
<li><strong>Taux d&rsquo;ouverture</strong> : % de destinataires ayant ouvert</li>
<li><strong>Taux de clic</strong> : % ayant cliqué sur un lien</li>
<li><strong>Taux de désabonnement</strong> : % de désinscriptions</li>
<li><strong>Taux de plainte</strong> : Signalements spam</li>
</ul>
<h4>Formulaires</h4>
<ul>
<li><strong>Taux de conversion</strong> : Visiteurs ? Inscrits</li>
<li><strong>Source de trafic</strong> : D&rsquo;où viennent vos inscriptions</li>
<li><strong>Abandons</strong> : Formulaires commencés mais non validés</li>
</ul>
<h3>Dashboard personnalisé</h3>
<ol>
<li><strong>Rapports</strong> ? <strong>Dashboard</strong></li>
<li>Ajoutez les widgets pertinents</li>
<li>Définissez la période d&rsquo;analyse</li>
<li>Exportez les données si nécessaire</li>
</ol>
<hr />
<h2>10. Optimisation et bonnes pratiques</h2>
<h3>Améliorer la délivrabilité</h3>
<ul>
<li>Nettoyez régulièrement vos listes (emails inactifs)</li>
<li>Utilisez la double opt-in pour confirmer les inscriptions</li>
<li>Surveillez votre réputation d&rsquo;expéditeur</li>
<li>Évitez les mots « spam » dans vos objets</li>
</ul>
<h3>Segmentation efficace</h3>
<ul>
<li><strong>Comportementale</strong> : Selon l&rsquo;engagement</li>
<li><strong>Démographique</strong> : Âge, localisation</li>
<li><strong>Acquisition</strong> : Source d&rsquo;inscription</li>
<li><strong>Intérêts</strong> : Préférences déclarées</li>
</ul>
<h3>Design responsive</h3>
<ul>
<li>Testez sur différents clients email</li>
<li>Optimisez pour mobile (60% des ouvertures)</li>
<li>Utilisez des images avec texte alternatif</li>
<li>CTA visibles et cliquables sur mobile</li>
</ul>
<hr />
<h2>11. Intégrations avancées WordPress</h2>
<h3>WooCommerce</h3>
<ol>
<li>Installez le plugin <strong>Brevo for WooCommerce</strong></li>
<li>Synchronisez les données clients</li>
<li>Créez des campagnes selon les achats :
<ul>
<li>Panier abandonné</li>
<li>Recommandations produits</li>
<li>Avis clients</li>
</ul>
</li>
</ol>
<h3>Contact Form 7</h3>
<ol>
<li>Ajoutez l&rsquo;extension Brevo à CF7</li>
<li>Mappez les champs du formulaire</li>
<li>Définissez la liste de destination</li>
<li>Testez la synchronisation</li>
</ol>
<h3>Elementor</h3>
<ol>
<li>Utilisez le widget Brevo dans Elementor</li>
<li>Personnalisez le design avec Elementor</li>
<li>Intégrez dans vos landing pages</li>
</ol>
<hr />
<h2>12. Dépannage des problèmes courants</h2>
<h3>Problème : Emails en spam</h3>
<p><strong>Solutions :</strong></p>
<ul>
<li>Vérifiez l&rsquo;authentification du domaine (SPF, DKIM)</li>
<li>Améliorez le contenu (évitez les mots déclencheurs)</li>
<li>Demandez aux destinataires de vous ajouter en contact</li>
<li>Surveillez votre réputation d&rsquo;expéditeur</li>
</ul>
<h3>Problème : Faible taux d&rsquo;ouverture</h3>
<p><strong>Solutions :</strong></p>
<ul>
<li>Testez différents objets d&#8217;email</li>
<li>Optimisez l&rsquo;heure d&rsquo;envoi</li>
<li>Nettoyez votre liste (supprimez les inactifs)</li>
<li>Personnalisez les emails</li>
</ul>
<h3>Problème : Plugin ne fonctionne pas</h3>
<p><strong>Solutions :</strong></p>
<ul>
<li>Vérifiez la clé API</li>
<li>Désactivez/réactivez le plugin</li>
<li>Vérifiez les conflits avec d&rsquo;autres plugins</li>
<li>Contactez le support Brevo</li>
</ul>
<hr />
<h2>13. Plan de croissance</h2>
<h3>Étape 1 : Foundation (0-1000 contacts)</h3>
<ul>
<li>Configurez les bases (formulaires, emails transactionnels)</li>
<li>Créez une newsletter mensuelle</li>
<li>Mettez en place l&#8217;email de bienvenue</li>
</ul>
<h3>Étape 2 : Expansion (1000-5000 contacts)</h3>
<ul>
<li>Segmentez votre audience</li>
<li>Lancez des campagnes ciblées</li>
<li>Intégrez avec WooCommerce si applicable</li>
<li>Analysez et optimisez les performances</li>
</ul>
<h3>Étape 3 : Optimisation (5000+ contacts)</h3>
<ul>
<li>Automatisations complexes</li>
<li>Tests A/B systématiques</li>
<li>Scoring des leads</li>
<li>Intégration CRM avancée</li>
</ul>
<hr />
<h2>? Support et ressources</h2>
<h3>Documentation officielle</h3>
<ul>
<li><a href="https://help.brevo.com/" class="broken_link">Centre d&rsquo;aide Brevo</a></li>
<li><a href="https://developers.brevo.com/">Documentation API</a></li>
</ul>
<h3>Communauté</h3>
<ul>
<li><a href="https://wordpress.org/support/plugin/mailin/">Forum WordPress</a></li>
<li><a href="https://facebook.com/groups/brevo">Groupe Facebook Brevo</a></li>
</ul>
<h3>Formation</h3>
<ul>
<li>Webinaires gratuits Brevo</li>
<li>Certification email marketing</li>
<li>Tutoriels YouTube officiels</li>
</ul>
<hr />
<h2>? Conclusion</h2>
<p>Brevo offre une solution complète pour débuter en email marketing avec WordPress. En suivant ce guide, vous avez maintenant :</p>
<p>? Un compte Brevo configuré<br />
? Le plugin WordPress connecté<br />
? Vos premiers formulaires actifs<br />
? Une campagne email lancée<br />
? Les bases de l&rsquo;analyse</p>
<p><strong>Prochaines étapes recommandées :</strong></p>
<ol>
<li>Collectez vos premiers 100 abonnés</li>
<li>Analysez les performances de votre première campagne</li>
<li>Mettez en place l&rsquo;automatisation de base</li>
<li>Explorez les fonctionnalités avancées selon vos besoins</li>
</ol>
<p>L&#8217;email marketing est un marathon, pas un sprint. Concentrez-vous sur la qualité de vos contenus et la relation avec vos abonnés plutôt que sur la quantité d&#8217;emails envoyés.</p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/ma-newsletter-sur-wordpress-premiers-pas-avec-brevo-ancienennement-sendinblue/">Ma newsletter sur WordPress : Premiers pas avec Brevo (anciennement SendinBlue)</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/ma-newsletter-sur-wordpress-premiers-pas-avec-brevo-ancienennement-sendinblue/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Les cookies faciles</title>
		<link>https://memo-web.fr/categorie-php-4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-php-4</link>
					<comments>https://memo-web.fr/categorie-php-4/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Mon, 02 Dec 2024 16:31:16 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Cookies]]></category>
		<category><![CDATA[php.ini]]></category>
		<category><![CDATA[Sessions]]></category>
		<guid isPermaLink="false">http://memo-web.fr/?p=186</guid>

					<description><![CDATA[<p>Un cookie, c’est un petit fichier que ton navigateur (Chrome, Firefox, etc.) garde en mémoire quand tu visites un site.Il permet au site de se souvenir de toi : par exemple, si tu es connecté, la langue que tu as choisie, ou les produits dans ton panier. Les cookies ne sont pas des virus, et [&#8230;]</p>
The post <a href="https://memo-web.fr/categorie-php-4/">Les cookies faciles</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p data-start="108" data-end="373">Un <strong data-start="111" data-end="121">cookie</strong>, c’est un petit fichier que ton navigateur (Chrome, Firefox, etc.) garde en mémoire quand tu visites un site.<br data-start="231" data-end="234" />Il permet au site de <strong data-start="255" data-end="277">se souvenir de toi</strong> : par exemple, si tu es connecté, la langue que tu as choisie, ou les produits dans ton panier.</p>
<p data-start="375" data-end="573">Les cookies ne sont <strong data-start="398" data-end="415">pas des virus</strong>, et ils ne donnent pas accès à ton ordinateur.<br data-start="462" data-end="465" />Ils servent juste à <strong data-start="485" data-end="515">mémoriser des infos utiles</strong> pour que ta navigation soit plus fluide et personnalisée.</p>
<p data-start="575" data-end="677">Tu peux les accepter, les refuser, ou les supprimer à tout moment dans les réglages de ton navigateur.</p>
<h3 data-start="170" data-end="195"> 1. Créer un cookie en PHP</h3>
<p data-start="197" data-end="264">Pour créer un cookie en PHP, on utilise la fonction <code data-start="249" data-end="262">setcookie()</code> :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between h-9 bg-token-sidebar-surface-primary select-none rounded-t-2xl">PHP :</div>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">setcookie('nom_du_cookie', $valeur, time() + $duree_en_secondes, '/');</pre>
</div>
<ul data-start="349" data-end="581">
<li data-start="349" data-end="383">
<p data-start="351" data-end="383"><code data-start="351" data-end="366">nom_du_cookie</code> : nom du cookie.</p>
</li>
<li data-start="384" data-end="408">
<p data-start="386" data-end="408"><code data-start="386" data-end="395">$valeur</code> : sa valeur.</p>
</li>
<li data-start="409" data-end="494">
<p data-start="411" data-end="494"><code data-start="411" data-end="423">time() + n</code> : date d’expiration (ici, le cookie sera valide pendant <em data-start="480" data-end="492">n secondes</em>).</p>
</li>
<li data-start="495" data-end="581">
<p data-start="497" data-end="581"><code data-start="497" data-end="502">'/'</code> : le chemin sur lequel le cookie est accessible (par défaut : le site entier).</p>
</li>
</ul>
<p data-start="583" data-end="743"><strong data-start="586" data-end="599">Important</strong> :<br data-start="601" data-end="604" />Si vous ne précisez pas de date d’expiration, le cookie sera <strong data-start="665" data-end="722">supprimé automatiquement à la fermeture du navigateur</strong> (cookie de session).</p>
<p data-start="745" data-end="890"><strong data-start="748" data-end="761">Attention</strong> à l’heure du serveur lors des manipulations de dates. Une heure système incorrecte peut provoquer des comportements inattendus !</p>
<hr data-start="892" data-end="895" />
<h3 data-start="897" data-end="921">2. Lire un cookie</h3>
<p data-start="923" data-end="984">Voici les différentes manières d’accéder à un cookie en PHP :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between h-9 bg-token-sidebar-surface-primary select-none rounded-t-2xl">PHP</div>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">echo $_COOKIE['nom_du_cookie']; // Recommandé depuis PHP 4.1.0<br />echo $HTTP_COOKIE_VARS['nom_du_cookie']; // Ancienne méthode (avant PHP 4.1.0)<br />echo $nom_du_cookie; // Ne fonctionne que si register_globals = on (déconseillé)</pre>
<div class="sticky top-9">
<div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><strong data-start="1238" data-end="1249">Exemple</strong> :</div>
</div>
</div>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between h-9 bg-token-sidebar-surface-primary select-none rounded-t-2xl">PHP</div>
<div>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">$monCookie = 5;<br />setcookie('mon_cookie', $monCookie, time() + 3600, '/'); // Cookie valable 1 heure<br />echo $_COOKIE['mon_cookie']; // Affichera "5"</pre>
</div>
</div>
<hr data-start="1441" data-end="1444" />
<h3 data-start="1446" data-end="1475">3. Supprimer un cookie</h3>
<p data-start="1477" data-end="1529">Supprimer un cookie revient à le faire <strong data-start="1516" data-end="1527">expirer</strong> :</p>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between h-9 bg-token-sidebar-surface-primary select-none rounded-t-2xl">PHP </div>
<div> </div>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">setcookie('mon_cookie', '', time() - 3600, '/'); // Expiration dans le passé</pre>
<div> </div>
<div class="flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between h-9 bg-token-sidebar-surface-primary select-none rounded-t-2xl">La ligne <code data-start="1633" data-end="1659">setcookie('mon_cookie');</code> seule <strong data-start="1666" data-end="1683">ne suffit pas</strong>. Il faut bien lui assigner une date dans le passé.</div>
</div>
<hr data-start="1736" data-end="1739" />
<h3 data-start="1741" data-end="1771">Avertissement important</h3>
<p data-start="1773" data-end="1988">Comme les cookies sont envoyés dans l’en-tête HTTP, <strong data-start="1825" data-end="1888">aucune sortie HTML ne doit précéder l’appel à <code data-start="1873" data-end="1886">setcookie()</code></strong>.<br data-start="1889" data-end="1892" />Cela s&rsquo;applique comme pour <code data-start="1919" data-end="1929">header()</code> : <strong data-start="1932" data-end="1957">n’affichez rien avant</strong> (ni echo, ni espace, ni HTML).</p>
<hr data-start="1990" data-end="1993" />
<h3 data-start="1995" data-end="2021">Limites des cookies</h3>
<ul data-start="2023" data-end="2197">
<li data-start="2023" data-end="2063">
<p data-start="2025" data-end="2063"><strong data-start="2025" data-end="2044">Taille maximale</strong> : 4 Ko par cookie.</p>
</li>
<li data-start="2064" data-end="2117">
<p data-start="2066" data-end="2117"><strong data-start="2066" data-end="2084">Nombre maximum</strong> : 20 cookies par nom de domaine.</p>
</li>
<li data-start="2118" data-end="2197">
<p data-start="2120" data-end="2197"><strong data-start="2120" data-end="2132">Sécurité</strong> : Un cookie ne peut être lu <strong data-start="2161" data-end="2196">que par le domaine qui l’a créé</strong>.</p>
</li>
</ul>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-php-4/">Les cookies faciles</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-php-4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Faire clignoter un élément avec JQuery</title>
		<link>https://memo-web.fr/categorie-jquery-6/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-jquery-6</link>
					<comments>https://memo-web.fr/categorie-jquery-6/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Sun, 01 Dec 2024 23:00:00 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">http://memo-web.fr/faire-clignoter-un-element-avec-jquery/</guid>

					<description><![CDATA[<p>Exemple simple pour faire clignoter un élement html (ici une image) grâce à JQuery.J&#8217;utilise les fonctions natives JQuery fadeIn() et fadeOut() qui permettre de faire un fondu d&#8217;apparition et de disparition d&#8217;un élément, entrecoupées par un intervalle de temps grâce à la fonction delay (temps en ms). Et je répète l&#8217;opération grâce à la fonction [&#8230;]</p>
The post <a href="https://memo-web.fr/categorie-jquery-6/">Faire clignoter un élément avec JQuery</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>Exemple simple pour faire clignoter un élement html (ici une image) grâce à JQuery.<br />J&rsquo;utilise les fonctions natives JQuery<em><strong> fadeIn() </strong></em>et <em><strong>fadeOut()</strong></em> qui permettre de faire un fondu d&rsquo;apparition et de disparition d&rsquo;un élément, entrecoupées par un intervalle de temps grâce à la fonction <em><strong>delay (temps en ms)</strong></em>.</p>
<p>Et je répète l&rsquo;opération grâce à la fonction Javascript <em><strong>setInterval (mafonction, intervalle de répétition en ms)</strong></em></p>
<p> </p>
<p><u>Code HTML</u> :</p>
<pre class="code_php brush: xml ">&lt;img id="image-neon" src="adresse-de-mon-image"/&gt;</pre>
<p><u>Code JQuery</u> :</p>
<pre class="code_php brush: js">$(document).ready(function(){ <br />    function FaireClignoterImage (){ $("#image-neon").fadeOut(200).delay(300).fadeIn(200); } 
    setInterval(FaireClignoterImage,700); 
});</pre>


<p>Il existe d&rsquo;autres techniques, notamment <a href="http://memo-web.fr/faire-clignoter-un-element-en-pur-css/">un effet de clignotement en pur CSS </a></p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-jquery-6/">Faire clignoter un élément avec JQuery</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-jquery-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fonction PHP pour réduire une chaîne à ses n premiers mots</title>
		<link>https://memo-web.fr/categorie-php-157/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-php-157</link>
					<comments>https://memo-web.fr/categorie-php-157/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Wed, 27 Nov 2024 14:41:44 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Chaînes]]></category>
		<guid isPermaLink="false">http://memo-web.fr/?p=123</guid>

					<description><![CDATA[<p>La fonction PHP suivante retourne les $word_limit premiers mots de $string.Dans le cas où le nombre total de mots de $string est supérieur à $word_limit, je rajoute  [lire la suite] en fin de la chaine de retour de fonction, avec un lien passé en dernier paramètre de la fonction. Réduction d&#8217;une chaîne à un nombre de mots [&#8230;]</p>
The post <a href="https://memo-web.fr/categorie-php-157/">Fonction PHP pour réduire une chaîne à ses n premiers mots</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>La fonction PHP suivante retourne les $word_limit premiers mots de $string.<br />Dans le cas où le nombre total de mots de $string est supérieur à $word_limit, je rajoute  <em>[lire la suite]</em> en fin de la chaine de retour de fonction, avec un lien passé en dernier paramètre de la fonction.</p>



<h2 class="wp-block-heading">Réduction d&rsquo;une chaîne à un nombre de mots donné</h2>
<p>exemple 1 avec implode / explode :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">function Reduire_Chaine($string, $word_limit, $lien)
{
  $string=strip_tags($string);
  $words = explode(' ', $string, ($word_limit + 1));
  if(count($words) &gt; $word_limit){
    array_pop($words);$fin=' &lt;a href="'.$lien.'"&gt;[lire la suite]&lt;/a&gt;';
  }else
    $fin='';
  return implode(' ', $words).$fin;
}</pre>

<p>exemple 2 avec preg_split :</p>
<pre class="EnlighterJSRAW" data-enlighter-language="php">
function Reduire_Chaine_2($texte, $nb_mots = 10) {
  $mots = preg_split('/\s+/', trim($texte));
  if (count($mots) &lt;= $nb_mots) {   
   return $texte; }
 return implode(' ', array_slice($mots, 0, $nb_mots)) . '...';
}</pre><div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-php-157/">Fonction PHP pour réduire une chaîne à ses n premiers mots</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-php-157/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Internet Explorer : Commentaire conditionnel</title>
		<link>https://memo-web.fr/categorie-html-18/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-html-18</link>
					<comments>https://memo-web.fr/categorie-html-18/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Thu, 07 Dec 2023 17:33:32 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Navigateur]]></category>
		<guid isPermaLink="false">http://memo-web.fr/?p=49</guid>

					<description><![CDATA[<p>Les commentaires conditionnels sont propres à Internet Explorer. Ils permettent de Masquer ou afficher du code HTML sous IE uniquement. Sélectionner une version du navigateur IE pour afficher du code spécifique à cette version. Cibler une version d&#8217;internet Explorer par commentaire conditionnel se fait avec les syntaxes suivante. Si la version IE est supérieure ou [&#8230;]</p>
The post <a href="https://memo-web.fr/categorie-html-18/">Internet Explorer : Commentaire conditionnel</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>Les commentaires conditionnels sont propres à Internet Explorer.</p>



<p>Ils permettent de</p>



<ul class="wp-block-list"><li>Masquer ou afficher du code HTML sous IE uniquement.</li><li>Sélectionner une version du navigateur IE pour afficher du code spécifique à cette version.</li></ul>



<p>Cibler une version d&rsquo;internet Explorer par commentaire conditionnel se fait avec les syntaxes suivante.</p>



<h2 class="wp-block-heading">Si la version IE est supérieure ou égale à IE9&nbsp;:</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!--[if gte IE 9]>
  Votre code pour cette condition
&lt;![endif]--></pre>



<h2 class="wp-block-heading">Si la version IE est inférieure ou égale à IE7 :</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!--[if lgte IE 7]>
  Votre code pour cette condition
&lt;![endif]--></pre>



<h2 class="wp-block-heading">Si la version de IE est égale à IE10</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!--[if IE 10]>
  Votre code pour cette condition
&lt;![endif]--></pre>



<p>Exemples d&rsquo;utilisation&nbsp;:</p>



<p>Utile pour faire des patchs pour certaines vieilles versions d&rsquo;Internet Explorer</p>



<h2 class="wp-block-heading">Code HTML affiché uniquement sous navigateur&nbsp;IE8</h2>



<p>Afficher du contenu uniquement pour une version d&rsquo;Internet explorer</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!--[if IE 8]>
   &lt;div> Nous sommes sous Internet Explorer 8 &lt;/div>
&lt;![endif]--></pre>



<h2 class="wp-block-heading">Script javascript déclaré uniquement sous navigateurs IE&lt;=8</h2>



<p>Déclarer un script pour les vieilles versions d&rsquo;internet explorer, dans le cas suivant, déclarer un script qui simule les bords arrondis pour les versions d&rsquo;internet Explorer qui ne supportent pas la propriété CSS<strong>&nbsp;border-radius</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!--[if lte IE 8]>
 &lt;script type="text/javascript" src="../../scripts/roundies.js"> &lt;/script>
 &lt;script  type="text/javascript">
  DD_roundies.addRule('.monDivArrondu', '10px 10px 10px 10px ');
&lt;/script>
&lt;![endif]--></pre>



<p>Avertissement&nbsp;:<br>Les commentaires conditionnels IE ne sont plus pris en compte par IE 10 !</p>



<p>source :&nbsp;<a href="http://en.wikipedia.org/wiki/Conditional_comment" target="_blank" rel="noreferrer noopener" class="broken_link">http://en.wikipedia.org/wiki/Conditional_comment</a><br></p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-html-18/">Internet Explorer : Commentaire conditionnel</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-html-18/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Arrondir les bords d&#8217;un élément</title>
		<link>https://memo-web.fr/categorie-css-19/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-css-19</link>
					<comments>https://memo-web.fr/categorie-css-19/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Wed, 06 Dec 2023 23:00:00 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<guid isPermaLink="false">http://memo-web.fr/arrondir-les-bords-dun-element/</guid>

					<description><![CDATA[<p>Arrondir les bords d&#39;un DIV en CSS, c&#39;est maintenant un jeu d&#39;enfant gr&#226;ce &#224; la propri&#233;t&#233; border-radius. Petite exception sous IE&#62;9 qui aura besoin d&#39;un plugin externe : roundies http://www.dillerdesign.com/experiment/DD_roundies/ Donc sous IE &#60; 9 t&#233;l&#233;charger le script roundies.js et le d&#233;clarer dans son ent&#234;te &#60;!--[if lte IE 8]&#62; &#60;script type=&#34;text/javascript&#34; src=&#34;../../scripts/roundies.js&#34;&#62; &#60;/script&#62; &#60;script type=&#34;text/javascript&#34;&#62; [&#8230;]</p>
The post <a href="https://memo-web.fr/categorie-css-19/">Arrondir les bords d’un élément</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>
	Arrondir les bords d&#39;un DIV en CSS, c&#39;est maintenant un jeu d&#39;enfant gr&acirc;ce &agrave; la propri&eacute;t&eacute; border-radius.</p>
<p>
	Petite exception sous IE&gt;9 qui aura besoin d&#39;un plugin externe : roundies</p>
<p>
	<a href="http://www.dillerdesign.com/experiment/DD_roundies/">http://www.dillerdesign.com/experiment/DD_roundies/</a></p>
<p>
	Donc sous IE &lt; 9 t&eacute;l&eacute;charger le script roundies.js et le d&eacute;clarer dans son ent&ecirc;te</p>
<pre class="code_php brush: js">
&lt;!--[if lte IE 8]&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;../../scripts/roundies.js&quot;&gt; &lt;/script&gt;
 &lt;script  type=&quot;text/javascript&quot;&gt;
  DD_roundies.addRule(&#39;.monblocarrondi&#39;, &#39;10px 10px 10px 10px &#39;);
&lt;/script&gt;
 &lt;![endif]--&gt;
</pre>
<p>
	Pour les autres navigateurs,&nbsp; 3 lignes dans la feuille de style suffisent pour arrondir les bords de mes &eacute;l&eacute;ments de classe .monblocarrondi&nbsp; :</p>
<pre class="code_php brush: css ">
.monblocarrondi{
   border-radius: 3px; /* sert pour les derni&egrave;res version des navigateurs &agrave; partir de IE 9*/
   -moz-border-radius: 3px; /* sert pour les anciennes versions de Mozilla */
   -webkit-border-radius: 3px;
}
</pre>
<p>
	A noter, la possibilit&eacute; de personnaliser la courbure de chaque bord : border-radius: 10px 20px 30px 40px 10px :haut gauche &#8211; 20px: haut droit &#8211; 30px bas droit &#8211; 40px bas gauche. on part du haut gauche dans le sens des aiguilles d&#39;une montre.</p>
<p>
	&nbsp;</p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-css-19/">Arrondir les bords d’un élément</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-css-19/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Charger JQuery directement via les librairies google</title>
		<link>https://memo-web.fr/categorie-jquery-10/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-jquery-10</link>
					<comments>https://memo-web.fr/categorie-jquery-10/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Sun, 03 Dec 2023 23:00:00 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">http://memo-web.fr/charger-jquery-directement-via-les-librairies-google/</guid>

					<description><![CDATA[<p>Si vous ne souhaitez pas héberger les scripts JQuery sur votre serveur, vous pouvez les récupérer sur votre site Internet directement depuis les Librairies Google. Les avantages de cette technique : Ce n&#8217;est pas votre serveur qui fournit la bande passante et traite les requêtes mais les serveurs de Google. Comme beaucoup de sites Internet [&#8230;]</p>
The post <a href="https://memo-web.fr/categorie-jquery-10/">Charger JQuery directement via les librairies google</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>Si vous ne souhaitez pas héberger les scripts JQuery sur votre serveur, vous pouvez les récupérer sur votre site Internet directement depuis les Librairies Google.</p>
<p>Les avantages de cette technique :</p>
<ul>
<li>Ce n&rsquo;est pas votre serveur qui fournit la bande passante et traite les requêtes mais les serveurs de Google.</li>
<li>Comme beaucoup de sites Internet utilisent cette technique, il y a des chances qu&rsquo;un internaute qui arrive sur votre site Internet ait déjà le script JQuery dans sa mémoire cache, chargée sur une autre site Internet, d&rsquo;où un chargement optimisé de votre site Internet.</li>
</ul>
<h2>Charger  la dernière version 1.x.x de Jquery depuis Google</h2>
<pre class="code_php brush: js">&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"type="text/javascript"&gt;&lt;/script&gt;</pre>
<h2>Charger la dernière sous-version 1.6.x de Jquery depuis Google</h2>
<pre class="code_php brush: js">&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"type="text/javascript"&gt;&lt;script&gt;</pre>
<h2>Charger la version 1.6.2 de Jquery depuis Google</h2>
<pre class="code_php brush: js">&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"type="text/javascript"&gt;&lt;script&gt;</pre>
<p>LIEN UTILE : <a href="http://www.webjax.eu/p/225-JQuery-manipulation-dom-javascript-framework-ajax-library-jquery-j-query-Framework-Javascript-Library-Ajax-asyncronous-web2.0-ria-dom-control-enhancer">http://www.webjax.eu/p/225-JQuery-manipulation-dom-javascript-framework-ajax-library-jquery-j-query-Framework-Javascript-Library-Ajax-asyncronous-web2.0-ria-dom-control-enhancer</a></p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-jquery-10/">Charger JQuery directement via les librairies google</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-jquery-10/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Les erreurs du  .htaccess</title>
		<link>https://memo-web.fr/categorie-divers-5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-divers-5</link>
					<comments>https://memo-web.fr/categorie-divers-5/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Sat, 02 Dec 2023 23:00:00 +0000</pubDate>
				<category><![CDATA[Divers]]></category>
		<guid isPermaLink="false">http://memo-web.fr/les-erreurs-du-htaccess/</guid>

					<description><![CDATA[<p>Une erreur dans le fichier .htaccess se traduira par une erreur HTTP standard .erreur interne du serveur lors de l&#8217;acc&#232;s &#224; n&#8217;importe quelle adresse situ&#233;e dans le r&#233;pertoire de ce fichier. Pour r&#233;parer l&#39;erreur, rep&#233;rer la ligne fautive et la commenter (un commentaire dans un fichier .htacces se fait avec un di&#232;se &#34;#&#34; en d&#233;but [&#8230;]</p>
The post <a href="https://memo-web.fr/categorie-divers-5/">Les erreurs du  .htaccess</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>
	Une erreur dans le fichier .htaccess se traduira par une erreur HTTP standard .erreur interne du serveur lors de l&rsquo;acc&egrave;s &agrave; n&rsquo;importe quelle adresse situ&eacute;e dans le r&eacute;pertoire de ce fichier.</p>
<p>
	Pour r&eacute;parer l&#39;erreur, rep&eacute;rer la ligne fautive et la commenter (un commentaire dans un fichier .htacces se fait avec un di&egrave;se &quot;#&quot; en d&eacute;but de ligne), ou supprimer carr&eacute;ment le fichier .htacces s&#39;il ne contient pas d&#39;informations essentielles.<br />
	&nbsp;</p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-divers-5/">Les erreurs du  .htaccess</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-divers-5/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Faire appel à un fichier CSS à l&#8217;intérieur d&#8217;un autre fichier CSS</title>
		<link>https://memo-web.fr/categorie-css-8/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-css-8</link>
					<comments>https://memo-web.fr/categorie-css-8/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Sat, 02 Dec 2023 23:00:00 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<guid isPermaLink="false">http://memo-web.fr/faire-appel-a-un-fichier-css-a-linterieur-dun-autre-fichier-css/</guid>

					<description><![CDATA[<p>Il est possible de d&#233;clarer un fichier css depuis un autre fichier css&#160; gr&#226;ce &#224; la commande suivante &#224; placer dans le css appelant : Appel de monCSS2.css depuis&#160;monCSS1.css&#160;: @import &#34;monCSS2.css&#34; /*ou*/ @import url(&#34;monCSS2.css&#34;); &#160;</p>
The post <a href="https://memo-web.fr/categorie-css-8/">Faire appel à un fichier CSS à l’intérieur d’un autre fichier CSS</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>
	Il est possible de d&eacute;clarer un fichier css depuis un autre fichier css&nbsp; gr&acirc;ce &agrave; la commande suivante &agrave; placer dans le css appelant :</p>
<h2>
	Appel de monCSS2.css depuis&nbsp;monCSS1.css&nbsp;:</h2>
<pre class="code_php brush: css ">
@import &quot;monCSS2.css&quot;
/*ou*/
@import url(&quot;monCSS2.css&quot;);
</pre>
<p>
	&nbsp;</p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-css-8/">Faire appel à un fichier CSS à l’intérieur d’un autre fichier CSS</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-css-8/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Requête Ajax simple en utilisant JQuery</title>
		<link>https://memo-web.fr/categorie-ajax-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-ajax-2</link>
					<comments>https://memo-web.fr/categorie-ajax-2/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Fri, 01 Dec 2023 08:01:22 +0000</pubDate>
				<category><![CDATA[Ajax]]></category>
		<guid isPermaLink="false">http://memo-web.fr/?p=1079</guid>

					<description><![CDATA[<p>Ajax&#160;() permet de rendre un site plus interactif en réagissant aux requêtes de l&#8217;internaute sur une page sans avoir à recharger la page. Cette techique&#160;permet le dialogue asynchrone&#160;entre le navigateur et le serveur WEB .Il est possible d&#8217;interroger la base de données sur le serveur suite à une requête du client sur le navigateur et [&#8230;]</p>
The post <a href="https://memo-web.fr/categorie-ajax-2/">Requête Ajax simple en utilisant JQuery</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>Ajax&nbsp;() permet de rendre un site plus interactif en réagissant aux requêtes de l&rsquo;internaute sur une page sans avoir à recharger la page.</p>



<p>Cette techique&nbsp;permet le dialogue asynchrone&nbsp;entre le navigateur et le serveur WEB .<br>Il est possible d&rsquo;interroger la base de données sur le serveur suite à une requête du client sur le navigateur et d&rsquo;en afficher le résultat en modifiiant&nbsp;dynamiquement le DOM et ce sans que la page soit rechargée.<br>Pendant que le serveur execute la demande, le navigateur peut continuer d&rsquo;executer son programme sans avoir à attendre la réponse du serveur (traitement asynchrone).</p>



<p>Le support d&rsquo;Ajax est le javascript, Jquery nous permet grâce aux commandes<strong>&nbsp;jQuery.post()</strong>&nbsp;et<strong>&nbsp;jQuery.ajax()</strong>, d&rsquo;effectuer simplement des appels ajax.</p>



<h2 class="wp-block-heading">Exemple d&rsquo;utilisation d&rsquo;un Appel Ajax / Javascript</h2>



<p>Exemple bidon ci dessous qui permet, en cliquant sur le nom d&rsquo;un élève, d&rsquo;afficher dans le titre h1, son nom qu&rsquo;on est allé chercher dans la base de données.<br><br>Pour ce faire créez trois fichier :</p>



<ul class="wp-block-list"><li>1 fichier javascript :&nbsp;<em>monfichier.js</em></li><li>1 fichier qui renverra les résultats des appels ajax :&nbsp;<em>monfichier-ajax.php</em></li><li>1 fichier d&rsquo;affichage php :&nbsp;<em>monfichier.php</em></li></ul>



<p>Exemple :</p>



<p><em>monfichier.php</em>&nbsp;contient le code HTML ici un titre vide et deux paragraphes</p>



<pre class="wp-block-preformatted">&lt;h1 id="prenom_eleve"&gt; &lt;/h1&gt;
&lt;p class="eleve"&gt; Elève DUPONT  &lt;/p&gt;
&lt;p class="eleve"&gt; Elève BARBIER &lt;/p&gt;
</pre>



<h2 class="wp-block-heading">Envoi des données au serveur via&nbsp;$.ajax, chargement du fichier externe&nbsp;</h2>



<p><em>monfichier.js</em>&nbsp;qui contient l&rsquo;événement click surle nom de l&rsquo;élève ainsi que l&rsquo;appel&nbsp;<strong>$.ajax</strong></p>



<pre class="wp-block-preformatted">$( ".eleve" ).click(function(){
    $.ajax({
          // chargement du fichier externe monfichier-ajax.php 
          url      : "monfichier-ajax.php",
          // Passage des données au fichier externe (ici le nom cliqué)  
          data     : {NomEleve: $(this).html()},
          cache    : false,
          dataType : "json",
          error    : function(request, error) { // Info Debuggage si erreur         
                       alert("Erreur : responseText: "+request.responseText);
                     },
          success  : function(data) {  
                       // Informe l'utilisateur que l'opération est terminé et renvoie le résultat
                       alert(data.PrenomEleve);  
                       // J'écris le résultat prénom de l'élève dans le h1
                       $(#prenom_eleve).html(data.PrenomEleve);
                     }       
     });     
});</pre>



<h2 class="wp-block-heading">Fichier externe chargé par la requête Ajax</h2>



<p><em>monfichier-ajax.php</em>&nbsp;est chargé par la requête ajax. Ce fichier récupère les données passés dans « data »&nbsp;grâce à la méthode $_GET et peut faire recherche en Base de données dont le résultat va être écrit dans le fichier sous forme d&rsquo;un objet JSON&nbsp;.</p>



<p>Avertissement&nbsp;:<br>Attention ce fichier ne doit&nbsp;<strong>contenir que l&rsquo;objet JSON contenant les données de retour</strong>. Aucun texte, &nbsp;retour charriot&nbsp;&#8230; ne doivent être insérés sous peine de déclencher un message d&rsquo;erreur.</p>



<pre class="wp-block-preformatted">&lt;?php
 // Accès à la base de données 
  $serveur     = "monserveur.com";
  $utilisateur = "dbxxxxxx";
  $motDePasse  = "mon_mot_de_passe_BDD";
  $base        = "dbxxxxxxxx";
  mysql_connect($serveur, $utilisateur, $motDePasse);
  mysql_select_db($base) or die("Base de données inactive. ");

  // Récupération du paramètre NomEleve passé dans la requête ajax dans mon fichier.js
  $NomEleve=$_GET['NomEleve'];

  // Préparation de la requête de recherche en BDD
  $sql = "SELECT prenom FROM eleves WHERE nom=".$NomEleve;&nbsp;
  $req = mysql_query($sql) or die('Erreur SQL !&lt;br&gt;'.$sql.'&lt;br&gt;'.mysql_error());

  //exemple bidon on cherche le prénom de l'élève de nom donné
  $PrenomEleve= mysql_fetch_object($req)-&gt;prenom; 

  // Ecriture de l'objet JSON contenant les infos qui vont être renvoyées
  header('Content-type: application/json');   
&nbsp;  ?&gt;
&nbsp;  {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "PrenomEleve": "&lt;?php echo $PrenomEleve;?&gt;" //Attention à ne pas mettre de virgule
   }
&nbsp; &lt;?php                                                     
&nbsp;&nbsp; exit(0);
   mysql_close();
?&gt;</pre>



<p>Avertissement&nbsp;:<br>Veillez à ne jamais rajouter de virgule à la fin de la dernière propriété d&rsquo;un objet JSON (erreur typique !!)<br>Ca passe&nbsp; sous Mozilla mais pas sous Chrome ou IE !</p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-ajax-2/">Requête Ajax simple en utilisant JQuery</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-ajax-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Comment ajouter un favicon sur son site</title>
		<link>https://memo-web.fr/categorie-html-7/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-html-7</link>
					<comments>https://memo-web.fr/categorie-html-7/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Thu, 16 Nov 2023 17:55:33 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Astuce]]></category>
		<guid isPermaLink="false">http://memo-web.fr/?p=54</guid>

					<description><![CDATA[<p>Le favicon&#160;d&#8217;un site est la petite image qui apparaît à gauche de l&#8217;onglet du navigateur correspondant &#160;la page du site. C&#8217;est une image de format&#160;.ico http://favicon.htmlkit.com/favicon/&#160;permet de générer et de télécharger&#160;un favicon, à partir d&#8217;une image png ou jpeg . Il est possible de paramétrer le background, la bordure de l&#8217;image favicon etc &#8230; Pour [&#8230;]</p>
The post <a href="https://memo-web.fr/categorie-html-7/">Comment ajouter un favicon sur son site</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>Le favicon&nbsp;d&rsquo;un site est la petite image qui apparaît à gauche de l&rsquo;onglet du navigateur correspondant &nbsp;la page du site. C&rsquo;est une image de format&nbsp;<strong>.ico</strong></p>



<p><a href="http://favicon.htmlkit.com/favicon/" class="broken_link">http://favicon.htmlkit.com/favicon/&nbsp;</a>permet de générer et de télécharger&nbsp;un favicon, à partir d&rsquo;une image png ou jpeg .</p>



<p>Il est possible de paramétrer le background, la bordure de l&rsquo;image favicon etc &#8230;</p>



<p>Pour que l&rsquo;image du&nbsp;favicon apparaisse&nbsp;il vous suffit de placer la ligne suivante à l&rsquo;intérieur de la balise &lt;head&gt; de votre site :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /></pre>



<p>Etant&nbsp;entendu que votre favicon se nomme favicon.ico, mais vous pouvez le nommer comme vous voulez, l&rsquo;important étant l&rsquo;extension .ico</p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-html-7/">Comment ajouter un favicon sur son site</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-html-7/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Affectation conditionnelle sous PHP</title>
		<link>https://memo-web.fr/categorie-php-16/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-php-16</link>
					<comments>https://memo-web.fr/categorie-php-16/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Wed, 13 Sep 2023 15:26:49 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">http://memo-web.fr/?p=182</guid>

					<description><![CDATA[<p>Une instruction qui m&#8217;a enchantée quand j&#8217;ai découvert le PHP c&#8217;est : (condition) ? instruction si vrai : instruction si faux Exemple : En français : si $_REQUEST[&#8216;mon_parametre&#8217;] existe alors $monparam = $_REQUEST[&#8216;mon_parametre&#8217;] sinon $monparam = 0</p>
The post <a href="https://memo-web.fr/categorie-php-16/">Affectation conditionnelle sous PHP</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>Une instruction qui m&rsquo;a enchantée quand j&rsquo;ai découvert le PHP c&rsquo;est :</p>



<p> <strong>(condition) ? instruction si vrai : instruction si faux</strong></p>



<p> Exemple :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""> (isset($_REQUEST['mon_parametre'])) ? $monparam= $_REQUEST['mon_parametrer'] : $monparam=0;
</pre>



<p>En français : si $_REQUEST[&lsquo;mon_parametre&rsquo;] existe alors $monparam = $_REQUEST[&lsquo;mon_parametre&rsquo;] sinon $monparam = 0</p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-php-16/">Affectation conditionnelle sous PHP</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-php-16/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Parcourir un tableau en php &#8211; pense bête</title>
		<link>https://memo-web.fr/categorie-php-3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=categorie-php-3</link>
					<comments>https://memo-web.fr/categorie-php-3/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Fri, 02 Dec 2022 16:33:11 +0000</pubDate>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">http://memo-web.fr/?p=188</guid>

					<description><![CDATA[<p>Exemple d&#8217;utilisation des tableaux en php $tableau = array( "un", // indice commence alors par 0 "deux", "trois", "quatre", "cinq" ); OU on force l&#8217;indice du tableau a commencer par 1 $tableau = array( 1 =&#62; "un", // pour commencer de 1 au lieu de 0 ... "deux", "trois", "quatre", "cinq" ); foreach($tableau as $valeur) [&#8230;]</p>
The post <a href="https://memo-web.fr/categorie-php-3/">Parcourir un tableau en php – pense bête</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>Exemple d&rsquo;utilisation des tableaux en php</p>



<pre class="wp-block-preformatted">$tableau = array(
"un", // indice commence alors par 0
"deux",
"trois",
"quatre",
"cinq"
);</pre>



<p>OU on force l&rsquo;indice du tableau a commencer par 1</p>



<pre class="wp-block-preformatted">$tableau = array(
1 =&gt; "un", // pour commencer de 1 au lieu de 0 ...
"deux",
"trois",
"quatre",
"cinq"
);

foreach($tableau as $valeur)
{
 echo "$valeur&lt;br&gt;";
}
</pre>



<p>Cette boucle affiche l&rsquo;index et le valeur de chaque élément du tableau $tableau</p>



<pre class="wp-block-preformatted"> foreach($tableau as $cle =&gt; $valeur)
{
 echo "$cle : $valeur&lt;br&gt;";
} </pre>



<p>Cette boucle affiche les chiffres de 2 à 19</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">for ($i=2; $i&lt;20; $i++) {
    echo $i;
}</pre>



<p><strong>in_array()&nbsp;</strong>ou Vérifier qu&rsquo;une valeur est présente dans un tableau (retourne un boolean):</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$tab = array("droite", "gauche");

if(in_array("gauche", $tab)) {
    echo 'La gauche existe !!';
}
// Dans notre cas, affiche: La gauche existe !!
</pre>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/categorie-php-3/">Parcourir un tableau en php – pense bête</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/categorie-php-3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ajouter des icônes personnalisées dans Enfold &#8211; WordPress</title>
		<link>https://memo-web.fr/ajouter-des-icones-personnalisees-dans-enfold-wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ajouter-des-icones-personnalisees-dans-enfold-wordpress</link>
					<comments>https://memo-web.fr/ajouter-des-icones-personnalisees-dans-enfold-wordpress/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Wed, 16 Mar 2022 16:11:02 +0000</pubDate>
				<category><![CDATA[Enfold]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://memo-web.fr/?p=1224</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/ajouter-des-icones-personnalisees-dans-enfold-wordpress/">Ajouter des icônes personnalisées dans Enfold – WordPress</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/ajouter-des-icones-personnalisees-dans-enfold-wordpress/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Permettre l&#8217;upload de fichiers svg dans la bibliothèque WordPreess</title>
		<link>https://memo-web.fr/permettre-lupload-de-fichiers-svg-dans-la-bibliotheque-wordpreess/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=permettre-lupload-de-fichiers-svg-dans-la-bibliotheque-wordpreess</link>
					<comments>https://memo-web.fr/permettre-lupload-de-fichiers-svg-dans-la-bibliotheque-wordpreess/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Wed, 16 Mar 2022 15:04:32 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://memo-web.fr/?p=1219</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/permettre-lupload-de-fichiers-svg-dans-la-bibliotheque-wordpreess/">Permettre l’upload de fichiers svg dans la bibliothèque WordPreess</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/permettre-lupload-de-fichiers-svg-dans-la-bibliotheque-wordpreess/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Empêcher l&#8217;affichage des pages de brouillons dans les menus WordPress</title>
		<link>https://memo-web.fr/empecher-laffichage-des-pages-de-brouillons-dans-les-menus-wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=empecher-laffichage-des-pages-de-brouillons-dans-les-menus-wordpress</link>
					<comments>https://memo-web.fr/empecher-laffichage-des-pages-de-brouillons-dans-les-menus-wordpress/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Fri, 28 Aug 2020 13:00:00 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://memo-web.fr/?p=1204</guid>

					<description><![CDATA[<p>Voici un bout de code à insérer dans le fichier functions.php de votre thème enfant ou dans un plugin, qui vous permet d&#8217;enlever automatiquement de votre menu WordPress, toutes les pages encore en brouillon.Cela permet de faire un menu définitif même si certaines pages sont encore en brouillon, elles s&#8217;afficheront automatiquement dans le menu lorsqu&#8217;elles [&#8230;]</p>
The post <a href="https://memo-web.fr/empecher-laffichage-des-pages-de-brouillons-dans-les-menus-wordpress/">Empêcher l’affichage des pages de brouillons dans les menus WordPress</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">function memoweb_filter_draft_pages_from_menu ($items, $args) {
    foreach ($items as $ix => $obj) {
        if (!is_user_logged_in () &amp;&amp; 'draft' == get_post_status ($obj->object_id)) {
            unset ($items[$ix]);
        }
    }
    return $items;
}

add_filter ('wp_nav_menu_objects', 'memoweb_filter_draft_pages_from_menu', 10, 2);</pre>



<p>Voici un bout de code à insérer dans le fichier functions.php de votre thème enfant ou dans un plugin, qui vous permet d&rsquo;enlever automatiquement de votre menu WordPress, toutes les pages encore en brouillon.<br>Cela permet de faire un menu définitif même si certaines pages sont encore en brouillon, elles s&rsquo;afficheront automatiquement dans le menu lorsqu&rsquo;elles seront publiées.</p>



<p></p>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/empecher-laffichage-des-pages-de-brouillons-dans-les-menus-wordpress/">Empêcher l’affichage des pages de brouillons dans les menus WordPress</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/empecher-laffichage-des-pages-de-brouillons-dans-les-menus-wordpress/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Enfold : Shortcode pour afficher les liens vers les réseaux sociaux</title>
		<link>https://memo-web.fr/enfold-shortcode-pour-afficher-les-liens-vers-les-reseaux-sociaux/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=enfold-shortcode-pour-afficher-les-liens-vers-les-reseaux-sociaux</link>
					<comments>https://memo-web.fr/enfold-shortcode-pour-afficher-les-liens-vers-les-reseaux-sociaux/#respond</comments>
		
		<dc:creator><![CDATA[t@ra]]></dc:creator>
		<pubDate>Tue, 05 May 2020 11:37:43 +0000</pubDate>
				<category><![CDATA[Enfold]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://memo-web.fr/?p=1201</guid>

					<description><![CDATA[<p>Je n&#8217;ai pas trouvé de solution dans Enfold pour afficher les liens vers les réseaux sociaux ailleurs que dans les emplacements pre-définis par Enfold. Voici un shortcode à utiliser dans un widget (via widget html), dans le contenu d&#8217;une page ou autre, via [nabgen_social] :</p>
The post <a href="https://memo-web.fr/enfold-shortcode-pour-afficher-les-liens-vers-les-reseaux-sociaux/">Enfold : Shortcode pour afficher les liens vers les réseaux sociaux</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></description>
										<content:encoded><![CDATA[<p>Je n&rsquo;ai pas trouvé de solution dans Enfold pour afficher les liens vers les réseaux sociaux ailleurs que dans les emplacements pre-définis par Enfold.</p>



<p>Voici un shortcode à utiliser dans un widget (via widget html), dans le contenu d&rsquo;une page ou autre, via<strong> [nabgen_social]</strong> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">function shortcode_social(){
  $output = '';
  $social_args = array('outside'=>'ul', 'inside'=>'li', 'append' => '');
  $social	= avia_social_media_icons($social_args, false);
  if($social) $output .= "&lt;div class='my-social-container'>".$social."&lt;/div>";
  return $output;
}
add_shortcode('nabgen_social', 'shortcode_social');</pre>
<div style="margin-top: 0px; margin-bottom: 0px;" class="sharethis-inline-share-buttons" ></div>The post <a href="https://memo-web.fr/enfold-shortcode-pour-afficher-les-liens-vers-les-reseaux-sociaux/">Enfold : Shortcode pour afficher les liens vers les réseaux sociaux</a> first appeared on <a href="https://memo-web.fr">Le MEMO du Web Développeur</a>.]]></content:encoded>
					
					<wfw:commentRss>https://memo-web.fr/enfold-shortcode-pour-afficher-les-liens-vers-les-reseaux-sociaux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
