<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://dindoun.lautre.net/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>pense-b&#234;te de bruno sanchiz</title>
	<link>https://dindoun.lautre.net/</link>
	<description></description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://dindoun.lautre.net/spip.php?id_mot=10&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>pense-b&#234;te de bruno sanchiz</title>
		<url>https://dindoun.lautre.net/local/cache-vignettes/L128xH128/favicon-68ee1.png?1762285646</url>
		<link>https://dindoun.lautre.net/</link>
		<height>128</height>
		<width>128</width>
	</image>



<item xml:lang="fr">
		<title>php7 php8 : nouvelles fonctionnalit&#233;s</title>
		<link>https://dindoun.lautre.net/spip.php?article649</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article649</guid>
		<dc:date>2025-08-11T15:09:43Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>php</dc:subject>

		<description>
&lt;p&gt;PHP8.4 : Implicitly nullable parameter declarations deprecated &lt;br class='autobr' /&gt;
scalar types (PHP7.0)
&lt;br class='autobr' /&gt;
nullable types (php7.1) &lt;br class='autobr' /&gt;
typed properties (php7.4)
&lt;br class='autobr' /&gt;
union types (php8.0)
&lt;br class='autobr' /&gt;
intersection types (php8.1)
&lt;br class='autobr' /&gt;
DNF types (php8.2)
&lt;br class='autobr' /&gt;
typed class properties (php8.3)&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique35" rel="directory"&gt;PHP&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot10" rel="tag"&gt;php&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a href=&#034;https://php.watch/versions/8.4/implicitly-marking-parameter-type-nullable-deprecated&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;PHP8.4 : Implicitly nullable parameter declarations deprecated&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;scalar types (PHP7.0)&lt;br class='autobr' /&gt;
nullable types (php7.1) &lt;br class='autobr' /&gt;
&lt;a href=&#034;https://php.watch/versions/7.4/typed-properties&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;typed properties (php7.4)&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://php.watch/versions/8.0/union-types&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;union types (php8.0)&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://php.watch/versions/8.1/intersection-types&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;intersection types (php8.1)&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://php.watch/versions/8.2/dnf-types&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;DNF types (php8.2)&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://php.watch/versions/8.3/typed-constants&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;typed class properties (php8.3)&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>installer un vieux php ( php5 php7 ) par sury</title>
		<link>https://dindoun.lautre.net/spip.php?article604</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article604</guid>
		<dc:date>2024-09-12T13:37:34Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>php</dc:subject>

		<description>
&lt;p&gt;Installer php5sudo sh -c 'echo &#034;deb https://packages.sury.org/php/ $(lsb_release -sc) main&#034; &gt; /etc/apt/sources.list.d/sury-php5.list' gpg &#8212;keyserver keyring.debian.org &#8212;recv B188E2B695BD4743 sudo apt-get update sudo apt install php5.6
&lt;br class='autobr' /&gt;
Changer pour php5 &lt;br class='autobr' /&gt;
sudo update-alternatives &#8212;config php Il existe 3 choix pour l'alternative php (qui fournit /usr/bin/php).
&lt;br class='autobr' /&gt; S&#233;lection Chemin Priorit&#233; &#201;tat * 0 /usr/bin/php.default 100 mode automatique (&#8230;)&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique35" rel="directory"&gt;PHP&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot10" rel="tag"&gt;php&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Installer php5&lt;/h2&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;sudo sh -c 'echo &#034;deb https://packages.sury.org/php/ $(lsb_release -sc) main&#034; &gt; /etc/apt/sources.list.d/sury-php5.list' gpg --keyserver keyring.debian.org --recv B188E2B695BD4743 sudo apt-get update sudo apt install php5.6 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Changer pour php5&lt;/h2&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo update-alternatives --config php&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;Il existe 3 choix pour l'alternative php (qui fournit /usr/bin/php). S&#233;lection Chemin Priorit&#233; &#201;tat ------------------------------------------------------------ * 0 /usr/bin/php.default 100 mode automatique 1 /usr/bin/php.default 100 mode manuel 2 /usr/bin/php5.6 56 mode manuel 3 /usr/bin/php8.2 82 mode manuel Appuyez sur &lt;enter&gt; pour conserver le choix actuel [*], ou tapez le num&#233;ro de s&#233;lection&#160;: &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;&lt;a href=&#034;https://tecadmin.net/how-to-install-php-on-debian-11/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://tecadmin.net/how-to-install-php-on-debian-11/&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>PHP:array</title>
		<link>https://dindoun.lautre.net/spip.php?article378</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article378</guid>
		<dc:date>2020-02-27T12:21:06Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>php</dc:subject>
		<dc:subject>tableau</dc:subject>

		<description>
&lt;p&gt;Introduction : Introduction Installation/Configuration : Installation/Configuration Pr&#233;-requis : Pr&#233;-requis Installation : Installation Configuration &#224; l'ex&#233;cution : Configuration &#224; l'ex&#233;cution Types de ressources : Types de ressources Constantes pr&#233;-d&#233;finies : Constantes pr&#233;-d&#233;finies Tri des tableaux : Tri des tableaux Fonctions sur les tableaux : Fonctions sur les tableaux array_change_key_case : &#8212; Change la casse de toutes les cl&#233;s d'un tableau array_chunk : &#8212; S&#233;pare un tableau en (&#8230;)&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique35" rel="directory"&gt;PHP&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot10" rel="tag"&gt;php&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot86" rel="tag"&gt;tableau&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href='https://dindoun.lautre.net/intro.array.php'&gt;Introduction&lt;/a&gt; : Introduction&lt;/li&gt;&lt;li&gt; &lt;a href='https://dindoun.lautre.net/array.setup.php'&gt;Installation/Configuration&lt;/a&gt; : Installation/Configuration&lt;/li&gt;&lt;li&gt; &lt;a href='https://dindoun.lautre.net/array.requirements.php'&gt;Pr&#233;-requis&lt;/a&gt; : Pr&#233;-requis&lt;/li&gt;&lt;li&gt; &lt;a href='https://dindoun.lautre.net/array.installation.php'&gt;Installation&lt;/a&gt; : Installation&lt;/li&gt;&lt;li&gt; &lt;a href='https://dindoun.lautre.net/array.configuration.php'&gt;Configuration &#224; l'ex&#233;cution&lt;/a&gt; : Configuration &#224; l'ex&#233;cution&lt;/li&gt;&lt;li&gt; &lt;a href='https://dindoun.lautre.net/array.resources.php'&gt;Types de ressources&lt;/a&gt; : Types de ressources&lt;/li&gt;&lt;li&gt; &lt;a href='https://dindoun.lautre.net/array.constants.php'&gt;Constantes pr&#233;-d&#233;finies&lt;/a&gt; : Constantes pr&#233;-d&#233;finies&lt;/li&gt;&lt;li&gt; &lt;a href='https://dindoun.lautre.net/array.sorting.php'&gt;Tri des tableaux&lt;/a&gt; : Tri des tableaux&lt;/li&gt;&lt;li&gt; &lt;a href='https://dindoun.lautre.net/ref.array.php'&gt;Fonctions sur les tableaux&lt;/a&gt; : Fonctions sur les tableaux&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-change-key-case.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_change_key_case&lt;/a&gt; : &#8212; Change la casse de toutes les cl&#233;s d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-chunk.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_chunk&lt;/a&gt; : &#8212; S&#233;pare un tableau en tableaux de taille inf&#233;rieure&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-column.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_column&lt;/a&gt; : &#8212; Retourne les valeurs d'une colonne d'un tableau d'entr&#233;e&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-combine.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_combine&lt;/a&gt; : &#8212; Cr&#233;e un tableau &#224; partir de deux autres tableaux&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-count-values.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_count_values&lt;/a&gt; : &#8212; Compte le nombre de valeurs d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-diff-assoc.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_diff_assoc&lt;/a&gt; : &#8212; Calcule la diff&#233;rence de deux tableaux, en prenant aussi en compte les cl&#233;s&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-diff-key.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_diff_key&lt;/a&gt; : &#8212; Calcule la diff&#233;rence de deux tableaux en utilisant les cl&#233;s pour comparaison&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-diff-uassoc.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_diff_uassoc&lt;/a&gt; : &#8212; Calcule la diff&#233;rence entre deux tableaux associatifs, &#224; l'aide d'une fonction de rappel&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-diff-ukey.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_diff_ukey&lt;/a&gt; : &#8212; Calcule la diff&#233;rence entre deux tableaux en utilisant une fonction de rappel sur les cl&#233;s pour comparaison&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-diff.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_diff&lt;/a&gt; : &#8212; Calcule la diff&#233;rence entre des tableaux&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-fill-keys.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_fill_keys&lt;/a&gt; : &#8212; Remplit un tableau avec des valeurs, en sp&#233;cifiant les cl&#233;s&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-fill.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_fill&lt;/a&gt; : &#8212; Remplit un tableau avec une m&#234;me valeur&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-filter.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_filter&lt;/a&gt; : &#8212; Filtre les &#233;l&#233;ments d'un tableau gr&#226;ce &#224; une fonction de rappel&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-flip.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_flip&lt;/a&gt; : &#8212; Remplace les cl&#233;s par les valeurs, et les valeurs par les cl&#233;s&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-intersect-assoc.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_intersect_assoc&lt;/a&gt; : &#8212; Calcule l'intersection de deux tableaux avec des tests sur les index&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-intersect-key.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_intersect_key&lt;/a&gt; : &#8212; Calcule l'intersection de deux tableaux en utilisant les cl&#233;s pour comparaison&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-intersect-uassoc.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_intersect_uassoc&lt;/a&gt; : &#8212; Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-intersect-ukey.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_intersect_ukey&lt;/a&gt; : &#8212; Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les cl&#233;s pour comparaison&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-intersect.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_intersect&lt;/a&gt; : &#8212; Calcule l'intersection de tableaux&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-key-exists.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_key_exists&lt;/a&gt; : &#8212; V&#233;rifie si une cl&#233; existe dans un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-key-first.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_key_first&lt;/a&gt; : &#8212; R&#233;cup&#232;re la premi&#232;re cl&#233; d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-key-last.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_key_last&lt;/a&gt; : &#8212; R&#233;cup&#232;re la derni&#232;re cl&#233; d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-keys.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_keys&lt;/a&gt; : &#8212; Retourne toutes les cl&#233;s ou un ensemble des cl&#233;s d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-map.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_map&lt;/a&gt; : &#8212; Applique une fonction sur les &#233;l&#233;ments d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-merge-recursive.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_merge_recursive&lt;/a&gt; : &#8212; Combine un ou plusieurs tableaux ensemble, r&#233;cursivement&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-merge.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_merge&lt;/a&gt; : &#8212; Fusionne plusieurs tableaux en un seul&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-multisort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_multisort&lt;/a&gt; : &#8212; Trie les tableaux multidimensionnels&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-pad.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_pad&lt;/a&gt; : &#8212; Compl&#232;te un tableau avec une valeur jusqu'&#224; la longueur sp&#233;cifi&#233;e&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-pop.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_pop&lt;/a&gt; : &#8212; D&#233;pile un &#233;l&#233;ment de la fin d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-product.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_product&lt;/a&gt; : &#8212; Calcule le produit des valeurs du tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-push.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_push&lt;/a&gt; : &#8212; Empile un ou plusieurs &#233;l&#233;ments &#224; la fin d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-rand.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_rand&lt;/a&gt; : &#8212; Prend une ou plusieurs cl&#233;s, au hasard dans un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-reduce.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_reduce&lt;/a&gt; : &#8212; R&#233;duit it&#233;rativement un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-replace-recursive.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_replace_recursive&lt;/a&gt; : &#8212; Remplace r&#233;cursivement dans le premier tableau les &#233;l&#233;ments des autres tableaux fournis&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-replace.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_replace&lt;/a&gt; : &#8212; Remplace les &#233;l&#233;ments d'un tableau par ceux d'autres tableaux&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-reverse.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_reverse&lt;/a&gt; : &#8212; Inverse l'ordre des &#233;l&#233;ments d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-search.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_search&lt;/a&gt; : &#8212; Recherche dans un tableau la cl&#233; associ&#233;e &#224; la premi&#232;re valeur&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-shift.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_shift&lt;/a&gt; : &#8212; D&#233;pile un &#233;l&#233;ment au d&#233;but d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-slice.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_slice&lt;/a&gt; : &#8212; Extrait une portion de tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-splice.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_splice&lt;/a&gt; : &#8212; Efface et remplace une portion de tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-sum.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_sum&lt;/a&gt; : &#8212; Calcule la somme des valeurs du tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-udiff-assoc.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_udiff_assoc&lt;/a&gt; : &#8212; Calcule la diff&#233;rence entre des tableaux avec v&#233;rification des index, compare les donn&#233;es avec une fonction de rappel&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-udiff-uassoc.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_udiff_uassoc&lt;/a&gt; : &#8212; Calcule la diff&#233;rence de deux tableaux associatifs, compare les donn&#233;es et les index avec une fonction de rappel&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-udiff.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_udiff&lt;/a&gt; : &#8212; Calcule la diff&#233;rence entre deux tableaux en utilisant une fonction rappel&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-uintersect-assoc.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_uintersect_assoc&lt;/a&gt; : &#8212; Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donn&#233;es en utilisant une fonction de rappel&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-uintersect-uassoc.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_uintersect_uassoc&lt;/a&gt; : &#8212; Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donn&#233;es et les index des deux tableaux en utilisant une fonction de rappel s&#233;par&#233;e&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-uintersect.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_uintersect&lt;/a&gt; : &#8212; Calcule l'intersection de deux tableaux, compare les donn&#233;es en utilisant une fonction de rappel&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-unique.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_unique&lt;/a&gt; : &#8212; D&#233;doublonne un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-unshift.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_unshift&lt;/a&gt; : &#8212; Empile un ou plusieurs &#233;l&#233;ments au d&#233;but d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-values.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_values&lt;/a&gt; : &#8212; Retourne toutes les valeurs d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-walk-recursive.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_walk_recursive&lt;/a&gt; : &#8212; Applique une fonction de rappel r&#233;cursivement &#224; chaque membre d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array-walk.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array_walk&lt;/a&gt; : &#8212; Ex&#233;cute une fonction fournie par l'utilisateur sur chacun des &#233;l&#233;ments d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.array.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;array&lt;/a&gt; : &#8212; Cr&#233;e un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.arsort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;arsort&lt;/a&gt; : &#8212; Trie un tableau en ordre inverse et conserve l'association des index&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.asort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;asort&lt;/a&gt; : &#8212; Trie un tableau et conserve l'association des index&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.compact.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;compact&lt;/a&gt; : &#8212; Cr&#233;e un tableau &#224; partir de variables et de leur valeur&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.count.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;count&lt;/a&gt; : &#8212; Compte tous les &#233;l&#233;ments d'un tableau ou quelque chose d'un objet&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.current.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;current&lt;/a&gt; : &#8212; Retourne l'&#233;l&#233;ment courant du tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.each.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;each&lt;/a&gt; : &#8212; Retourne chaque paire cl&#233;/valeur d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.end.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;end&lt;/a&gt; : &#8212; Positionne le pointeur de tableau en fin de tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.extract.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;extract&lt;/a&gt; : &#8212; Importe les variables dans la table des symboles&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.in-array.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;in_array&lt;/a&gt; : &#8212; Indique si une valeur appartient &#224; un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.key-exists.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;key_exists&lt;/a&gt; : &#8212; Alias de array_key_exists&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.key.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;key&lt;/a&gt; : &#8212; Retourne une cl&#233; d'un tableau associatif&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.krsort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;krsort&lt;/a&gt; : &#8212; Trie un tableau en sens inverse et suivant les cl&#233;s&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.ksort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ksort&lt;/a&gt; : &#8212; Trie un tableau suivant les cl&#233;s&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.list.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;list&lt;/a&gt; : &#8212; Assigne des variables comme si elles &#233;taient un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.natcasesort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;natcasesort&lt;/a&gt; : &#8212; Trie un tableau avec l'algorithme &#224; &#034;ordre naturel&#034; insensible &#224; la casse&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.natsort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;natsort&lt;/a&gt; : &#8212; Trie un tableau avec l'algorithme &#224; &#034;ordre naturel&#034;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.next.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;next&lt;/a&gt; : &#8212; Avance le pointeur interne d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.pos.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;pos&lt;/a&gt; : &#8212; Alias de current&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.prev.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;prev&lt;/a&gt; : &#8212; Recule le pointeur courant de tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.range.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;range&lt;/a&gt; : &#8212; Cr&#233;e un tableau contenant un intervalle d'&#233;l&#233;ments&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.reset.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;reset&lt;/a&gt; : &#8212; Remet le pointeur interne de tableau au d&#233;but&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.rsort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;rsort&lt;/a&gt; : &#8212; Trie un tableau en ordre inverse&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.shuffle.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;shuffle&lt;/a&gt; : &#8212; M&#233;lange les &#233;l&#233;ments d'un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.sizeof.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;sizeof&lt;/a&gt; : &#8212; Alias de count&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.sort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;sort&lt;/a&gt; : &#8212; Trie un tableau&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.uasort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;uasort&lt;/a&gt; : &#8212; Trie un tableau en utilisant une fonction de rappel&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.uksort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;uksort&lt;/a&gt; : &#8212; Trie un tableau par ses cl&#233;s en utilisant une fonction de rappel&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.php.net/manual/fr/function.usort.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;usort&lt;/a&gt; : &#8212; Trie un tableau en utilisant une fonction de comparaison&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>php - traduction - gettext</title>
		<link>https://dindoun.lautre.net/spip.php?article370</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article370</guid>
		<dc:date>2019-12-10T02:40:03Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>php</dc:subject>

		<description>
&lt;p&gt;sites :
&lt;br class='autobr' /&gt;
https://www.gnu.org/software/gettext/FAQ.html
&lt;br class='autobr' /&gt;
https://www.gnu.org/software/gettext/manual/index.html
&lt;br class='autobr' /&gt;
https://www.gnu.org/software/gettext/manual/gettext.html &lt;br class='autobr' /&gt;
En C/C++ : Check that the environment variables LC_ALL, LC_MESSAGES, LC_CTYPE, LANG, LANGUAGE together specify a valid locale and language. &lt;br class='autobr' /&gt;
Check that your program contains a setlocale call. &lt;br class='autobr' /&gt;
Check that your program contains a textdomain call &lt;br class='autobr' /&gt;
Convert mo vers po :
&lt;br class='autobr' /&gt;
msgunfmt domain.mo &lt;br class='autobr' /&gt;
In the LANGUAGE environment (&#8230;)&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique35" rel="directory"&gt;PHP&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot10" rel="tag"&gt;php&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;sites :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.gnu.org/software/gettext/FAQ.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.gnu.org/software/gettext/FAQ.html&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.gnu.org/software/gettext/manual/index.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.gnu.org/software/gettext/manual/index.html&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.gnu.org/software/gettext/manual/gettext.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.gnu.org/software/gettext/manual/gettext.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En C/C++ : Check that the environment variables LC_ALL, LC_MESSAGES, LC_CTYPE, LANG, LANGUAGE together specify a valid locale and language.&lt;/p&gt;
&lt;p&gt;Check that your program contains a setlocale call.&lt;/p&gt;
&lt;p&gt;Check that your program contains a textdomain call&lt;/p&gt;
&lt;p&gt;Convert mo vers po :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;msgunfmt domain.mo&lt;/textarea&gt;
&lt;p&gt;In the LANGUAGE environment variable, but not in the LANG environment variable, LL_CC combinations can be abbreviated as LL to denote the language's main dialect.&lt;/p&gt;
&lt;p&gt;The xgettext program extracts translatable strings from given input files.&lt;/p&gt;
&lt;p&gt;ent&#234;te : &lt;a href=&#034;https://www.gnu.org/software/gettext/manual/gettext.html#Header-Entry&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.gnu.org/software/gettext/manual/gettext.html#Header-Entry&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>configuration de apache2</title>
		<link>https://dindoun.lautre.net/spip.php?article295</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article295</guid>
		<dc:date>2018-06-29T03:09:30Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>php</dc:subject>
		<dc:subject>apache2</dc:subject>
		<dc:subject>serveur</dc:subject>

		<description>
&lt;p&gt;voir aussi installation de APACHE MYSQL mariadb configuration apache/php7/php8 commandes fichiers .conf , redirections configurations de la s&#233;curit&#233; de apache2 &lt;br class='autobr' /&gt;
liens internets configuration php5 &lt;br class='autobr' /&gt; php.ini &lt;br class='autobr' /&gt;
configurer apache pour augmenter le temps permis pour calculer une page php, ou un import de base de donn&#233;es sous phpmyadmin par exemple. &lt;br class='autobr' /&gt;
php7 ou php8 (exemple avec 8.2) remplacer dans /etc/php/8.2/apache2/php.ini ( ou parfois /etc/php/8.2/cli/php.ini ) par les lignes suivantes (&#8230;)&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique46" rel="directory"&gt;Configurations&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot10" rel="tag"&gt;php&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot53" rel="tag"&gt;apache2&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot54" rel="tag"&gt;serveur&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://dindoun.lautre.net/IMG/logo/arton295.png?1725236805' class='spip_logo spip_logo_right' width='150' height='37' alt=&#034;&#034; /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;voir aussi &lt;a href='https://dindoun.lautre.net/spip.php?article111' class=&#034;spip_in&#034;&gt;installation de APACHE MYSQL mariadb&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;#php.ini&#034; class=&#034;spip_ancre&#034;&gt;configuration apache/php7/php8&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;#commandes&#034; class=&#034;spip_ancre&#034;&gt;commandes&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;#conf&#034; class=&#034;spip_ancre&#034;&gt;fichiers .conf , redirections&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;#ConfSecu&#034; class=&#034;spip_ancre&#034;&gt;configurations de la s&#233;curit&#233; de apache2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;#DOCs&#034; class=&#034;spip_ancre&#034;&gt;liens internets&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;#php5&#034; class=&#034;spip_ancre&#034;&gt;configuration php5&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id=&#034;php.ini&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;php.ini&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;configurer apache pour augmenter le temps permis pour calculer une page php, ou un import de base de donn&#233;es sous phpmyadmin par exemple.&lt;/strong&gt;&lt;/p&gt;
&lt;center&gt;php7 ou php8 (exemple avec 8.2)&lt;/center&gt;
&lt;p&gt;remplacer dans /etc/php/8.2/apache2/php.ini ( ou parfois /etc/php/8.2/cli/php.ini ) par les lignes suivantes&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;max_execution_time = 3000 # Maximum execution time of each script, in seconds max_input_time = 6000 # Maximum amount of time each script may spend parsing request data session.gc_maxlifetime=7200 #Temps de vie maximale d'acc&#232;s &#224; la base avec phpmyadmin memory_limit = 1280M post_max_size = 80M upload_max_filesize = 20M &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En une ligne : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sed -e &#034;s/max_execution_time\ =\ \([0-9]*\)/max_execution_time = 3000 /&#034; -e &#034;s/max_input_time\ =\ \([0-9]*\)/max_input_time = 6000 /&#034; -e &#034;s/^session.gc_maxlifetime.*/session.gc_maxlifetime=7200/&#034; -e &#034;s#memory_limit =.*#memory_limit = 1280M#&#034; -e &#034;s#post_max_size =.*#post_max_size = 80M#&#034; -e &#034;s#upload_max_filesize =.*#upload_max_filesize = 20M#&#034; -i /etc/php/[0-9].[0-9]/apache2/php.ini &amp;&amp; systemctl restart apache2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a id=&#034;commandes&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;commandes&lt;/h2&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;systemctl restart apache2 OU /etc/init.d/apache2 restart : arr&#234;te et d&#233;marre apache2 systemctl reload apache2 OU /etc/init.d/apache2 reload : relit la configuration de apache2 systemctl start apache2 OU /etc/init.d/apache2 start : d&#233;marre apache2 systemctl stop apache2 OU /etc/init.d/apache2 stop : arr&#234;te apache2 systemctl disable apache2 : pas de d&#233;marrage de apache2 au d&#233;marrage de l'ordi systemctl enable apache2 : d&#233;marrage de apache2 au d&#233;marrage de l'ordi &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;apache2ctl -t -D DUMP_VHOSTS ; liste les virtualhosts cr&#233;&#233;s a2ensite machin : configure machin ( /etc/apache2/sites-available/machin.conf ) a2dissite machin : d&#233;configure machin ( /etc/apache2/sites-available/machin.conf ) &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a id=&#034;conf&#034;&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
configurations de apache2&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Configurations des virtualhosts, sites, conf&lt;/h2&gt;&lt;h2 class=&#034;spip&#034;&gt;exemple de configuration des liens et droits html&lt;/h2&gt;
&lt;p&gt;dans &lt;strong&gt;/etc/apache2/conf-enabled/apache2-doc.conf&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;Alias /manual /usr/share/doc/apache2-doc/manual/ &lt;Directory &#034;/usr/share/doc/apache2-doc/manual/&#034;&gt; Options Indexes FollowSymlinks AllowOverride None Require all granted AddDefaultCharset off &lt;/Directory&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;qui permet http://127.0.0.1/manual &lt;=&gt; /usr/share/doc/apache2-doc/manual/&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;exemple de /etc/apache2/sites-available/machin.conf&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;VirtualHost *:80&gt; ServerName d.localhost DocumentRoot /data/vhosts/ba/damna/htdocs &lt;Directory /data/vhosts/ba/damna/htdocs/&gt; Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted &lt;/Directory&gt; LogLevel trace8 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined &lt;/VirtualHost&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;DirectoryMatch &#034;^/var/www/(.+/)?[0-9]{3}/&#034;&gt; # ... &lt;/DirectoryMatch&gt;&lt;/code&gt;&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;Autoriser le htaccess : &lt;br class='autobr' /&gt;
cr&#233;er&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;/etc/apache2/conf-enabled/br_essai.conf &lt;Directory &#034;/var/www/html/truc&#034;&gt; Options Indexes FollowSymlinks AllowOverride All AllowOverride AuthConfig &lt;/Directory&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a id=&#034;ConfSecu&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;configurations de la s&#233;curit&#233; de apache2&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; configurer modsecurity :
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href=&#034;https://phoenixnap.com/kb/setup-configure-modsecurity-on-apache&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://phoenixnap.com/kb/setup-configure-modsecurity-on-apache&lt;/a&gt; ;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://medium.com/@redswitches/how-to-install-and-configure-modsecurity-on-apache-for-ubuntu-6d059400347c&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://medium.com/@redswitches/how-to-install-and-configure-modsecurity-on-apache-for-ubuntu-6d059400347c&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; mod evasive : Anti Denial of Service (DoS) module and protects against brute force attempts. This control is advised for systems running a webserver and those in particular which are available from public networks.
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href=&#034;https://supersonique-studio.com/2022/06/anti-ddos-avec-mod_evasive-pour-apache-2/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://supersonique-studio.com/2022/06/anti-ddos-avec-mod_evasive-pour-apache-2/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://wiki.debian.org/fr/Apache/mod_evasive&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://wiki.debian.org/fr/Apache/mod_evasive&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;a id=&#034;DOCs&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;variable de apache2 :&lt;/h2&gt;
&lt;p&gt;/etc/apache2/envvars&lt;br class='autobr' /&gt;
# envvars - default environment variables for apache2ctl&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://www.linuxtricks.fr/wiki/debian-installer-un-serveur-lamp-apache-mariadb-php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;linuxtricks installer un serveur lamp apache mariadb php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://olange.developpez.com/tutorial/configuration-&lt;br class='autobr' /&gt;
virtualhost/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;virtualhost&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://doc.ubuntu-fr.org/apache2&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;apache2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://httpd.apache.org/docs/current/howto/htaccess.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;htaccess&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#allowoverride&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;allowoverride&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#acceptfilter&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;AcceptFilter&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#acceptpathinfo&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;AcceptPathInfo&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#accessfilename&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;AccessFileName&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#adddefaultcharset&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;AddDefaultCharset&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#allowencodedslashes&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;AllowEncodedSlashes&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#allowoverride&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;AllowOverride&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#allowoverridelist&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;AllowOverrideList&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#cgimapextension&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;CGIMapExtension&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#cgipassauth&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;CGIPassAuth&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#cgivar&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;CGIVar&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#contentdigest&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ContentDigest&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#defaultruntimedir&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;DefaultRuntimeDir&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#defaulttype&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;DefaultType&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#define&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Define&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#directory&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;Directory&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#directorymatch&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;DirectoryMatch&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#documentroot&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;DocumentRoot&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#else&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;Else&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#elseif&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;ElseIf&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#enablemmap&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;EnableMMAP&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#enablesendfile&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;EnableSendfile&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#error&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Error&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#errordocument&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ErrorDocument&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#errorlog&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ErrorLog&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#errorlogformat&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ErrorLogFormat&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#extendedstatus&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ExtendedStatus&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#fileetag&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;FileETag&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#files&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;Files&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#filesmatch&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;FilesMatch&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#forcetype&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ForceType&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#gprofdir&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;GprofDir&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#hostnamelookups&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;HostnameLookups&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#httpprotocoloptions&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;HttpProtocolOptions&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#if&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;If&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#ifdefine&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;IfDefine&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#ifdirective&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;IfDirective&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#iffile&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;IfFile&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#ifmodule&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;IfModule&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#ifsection&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;IfSection&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#include&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Include&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#includeoptional&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;IncludeOptional&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#keepalive&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;KeepAlive&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#keepalivetimeout&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;KeepAliveTimeout&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#limit&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;Limit&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#limitexcept&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;LimitExcept&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#limitinternalrecursion&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;LimitInternalRecursion&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#limitrequestbody&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;LimitRequestBody&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#limitrequestfields&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;LimitRequestFields&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#limitrequestfieldsize&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;LimitRequestFieldSize&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#limitrequestline&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;LimitRequestLine&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#limitxmlrequestbody&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;LimitXMLRequestBody&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#location&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;Location&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#locationmatch&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;LocationMatch&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#loglevel&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;LogLevel&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#maxkeepaliverequests&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;MaxKeepAliveRequests&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#maxrangeoverlaps&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;MaxRangeOverlaps&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#maxrangereversals&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;MaxRangeReversals&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#maxranges&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;MaxRanges&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#mergetrailers&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;MergeTrailers&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#mutex&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Mutex&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#namevirtualhost&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;NameVirtualHost&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#options&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Options&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#protocol&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Protocol&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#protocols&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Protocols&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#protocolshonororder&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ProtocolsHonorOrder&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#qualifyredirecturl&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;QualifyRedirectURL&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#regexdefaultoptions&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;RegexDefaultOptions&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#registerhttpmethod&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;RegisterHttpMethod&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#rlimitcpu&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;RLimitCPU&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#rlimitmem&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;RLimitMEM&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#rlimitnproc&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;RLimitNPROC&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#scriptinterpretersource&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ScriptInterpreterSource&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#seerequesttail&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;SeeRequestTail&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#serveradmin&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ServerAdmin&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#serveralias&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ServerAlias&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#servername&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ServerName&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#serverpath&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ServerPath&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#serverroot&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ServerRoot&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#serversignature&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ServerSignature&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#servertokens&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ServerTokens&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#sethandler&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;SetHandler&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#setinputfilter&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;SetInputFilter&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#setoutputfilter&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;SetOutputFilter&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#timeout&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;TimeOut&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#traceenable&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;TraceEnable&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#undefine&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;UnDefine&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#usecanonicalname&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;UseCanonicalName&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#usecanonicalphysicalport&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;UseCanonicalPhysicalPort&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://httpd.apache.org/docs/current/mod/core.html#virtualhost&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;VirtualHost&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;&lt;a id=&#034;php5&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;center&gt;php5&lt;/center&gt;
&lt;p&gt;remplacer dans /etc/php5/apache2/php.ini par ses lignes :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;max_execution_time = 3000 ; Maximum execution time of each script, in seconds max_input_time = 6000 ; Maximum amount of time each script may spend parsing request data memory_limit = 2000M ; Maximum amount of memory a script may consume &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Les chiffres peuvent &#234;tre choisis autres &#233;videmment.&lt;/p&gt;
&lt;p&gt;En une ligne : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sed -e &#034;s/max_execution_time\ =\ \([0-9]*\)/max_execution_time = 3000 /&#034; -e &#034;s/max_input_time\ =\ \([0-9]*\)/max_input_time = 6000 /&#034; -e &#034;s/memory_limit\ =\ \([0-9]*\)/memory_limit = 2000/&#034; -i /etc/php5/apache2/php.ini&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>migration de php5 &#224; php7</title>
		<link>https://dindoun.lautre.net/spip.php?article238</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article238</guid>
		<dc:date>2017-11-20T14:50:11Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>php</dc:subject>

		<description>
&lt;p&gt;https://stackoverflow.com/questions/35988990/how-to-enable-php7-module-in-apache &lt;br class='autobr' /&gt;
D'abord arr&#234;ter le module php5 : a2dismod php5 &lt;br class='autobr' /&gt;
puis autoriser le module php7 : &lt;br class='autobr' /&gt;
a2enmod php7.0 &lt;br class='autobr' /&gt;
red&#233;marrage de apache2 &lt;br class='autobr' /&gt;
service apache2 restart&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique35" rel="directory"&gt;PHP&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot10" rel="tag"&gt;php&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a href=&#034;https://stackoverflow.com/questions/35988990/how-to-enable-php7-module-in-apache&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://stackoverflow.com/questions/35988990/how-to-enable-php7-module-in-apache&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;D'abord arr&#234;ter le module php5 :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;a2dismod php5&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;puis autoriser le module php7 :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;a2enmod php7.0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;red&#233;marrage de apache2&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;service apache2 restart&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>multi langages</title>
		<link>https://dindoun.lautre.net/spip.php?article163</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article163</guid>
		<dc:date>2017-06-05T14:24:21Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>php</dc:subject>
		<dc:subject>python</dc:subject>
		<dc:subject>bash</dc:subject>

		<description>
&lt;p&gt;python en php $mavar = array() ; exec(&#034;python b.py&#034;, $mavar) ; var_dump($mavar) ; sh/bash en python import os os.system('commande') python en sh/bash
&lt;br class='autobr' /&gt; python machin.py php en bash
&lt;br class='autobr' /&gt;
# !/usr/bin/env php &lt; ?php phpinfo() ; ?&gt;&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique20" rel="directory"&gt;Programmation&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot10" rel="tag"&gt;php&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot11" rel="tag"&gt;python&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot63" rel="tag"&gt;bash&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; python en php
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$mavar = array(); exec(&#034;python b.py&#034;, $mavar); var_dump($mavar);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; sh/bash en python
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; import os os.system('commande')&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; python en sh/bash&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; python machin.py&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; php en bash &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#!/usr/bin/env php &lt;?php phpinfo(); ?&gt;&lt;/textarea&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>frameworks</title>
		<link>https://dindoun.lautre.net/spip.php?article161</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article161</guid>
		<dc:date>2017-05-27T00:02:07Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>php</dc:subject>

		<description>
&lt;p&gt;zend : https://www.zend.com/fr &lt;br class='autobr' /&gt;
symfony : https://symfony.com/&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique35" rel="directory"&gt;PHP&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot10" rel="tag"&gt;php&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;zend : &lt;a href=&#034;https://www.zend.com/fr&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.zend.com/fr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;symfony : &lt;a href=&#034;https://symfony.com/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://symfony.com/&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>comparaisons_languages_PythonPhpCJavascriptLibreoffice</title>
		<link>https://dindoun.lautre.net/spip.php?article155</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article155</guid>
		<dc:date>2017-05-20T02:01:23Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>php</dc:subject>
		<dc:subject>python</dc:subject>
		<dc:subject>javascript</dc:subject>
		<dc:subject>libreoffice calc (excel)</dc:subject>
		<dc:subject>blender</dc:subject>
		<dc:subject>bash</dc:subject>
		<dc:subject>C++</dc:subject>
		<dc:subject>sfml</dc:subject>
		<dc:subject>R</dc:subject>
		<dc:subject>perl</dc:subject>
		<dc:subject>numpy</dc:subject>
		<dc:subject>matplotlib</dc:subject>
		<dc:subject>fortran</dc:subject>

		<description>

-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique20" rel="directory"&gt;Programmation&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot10" rel="tag"&gt;php&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot11" rel="tag"&gt;python&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot20" rel="tag"&gt;javascript&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot30" rel="tag"&gt;libreoffice calc (excel)&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot49" rel="tag"&gt;blender&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot63" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot64" rel="tag"&gt;C++&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot65" rel="tag"&gt;sfml&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot66" rel="tag"&gt;R&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot155" rel="tag"&gt;perl&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot156" rel="tag"&gt;numpy&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot157" rel="tag"&gt;matplotlib&lt;/a&gt;, 
&lt;a href="https://dindoun.lautre.net/spip.php?mot158" rel="tag"&gt;fortran&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;div class='spip_document_1005 spip_document spip_documents spip_document_file'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://dindoun.lautre.net/IMG/ods/comparaisons_languages_pythonphpcjavascriptlibreoffice_v6.4_19.ods' class=&#034; spip_doc_lien&#034; title='OpenDocument Spreadsheet - 51.3 kio' type=&#034;application/vnd.oasis.opendocument.spreadsheet&#034;&gt;&lt;img src='https://dindoun.lautre.net/local/cache-vignettes/L64xH64/ods-a1793.svg?1775244864' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>PHP:trucs de &#034;s&#233;curit&#233;&#034; informatique</title>
		<link>https://dindoun.lautre.net/spip.php?article135</link>
		<guid isPermaLink="true">https://dindoun.lautre.net/spip.php?article135</guid>
		<dc:date>2017-04-08T11:22:03Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>bruno</dc:creator>


		<dc:subject>php</dc:subject>

		<description>
&lt;p&gt;s&#233;curit&#233; , d'apr&#232;s Fran&#231;ois Gannaz ( francois.gannaz at silecs.info ) et rootme white list pas black list codesniffer pour v&#233;rifier ( php-codesniffer ) gestion des erreurs define('DEBUG',true) ; if (DEBUG) error_reporting(E_ALL|E_STRICT) ; //ou error_reporting(E_ALL) ; // php5 ini_set(&#034;display_errors','On') ; ini_set('log_errors','Off') ; else error_reporting(0) ; ini_set('display_errors','Off') ; (&#8230;)&lt;/p&gt;


-
&lt;a href="https://dindoun.lautre.net/spip.php?rubrique35" rel="directory"&gt;PHP&lt;/a&gt;

/ 
&lt;a href="https://dindoun.lautre.net/spip.php?mot10" rel="tag"&gt;php&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;s&#233;curit&#233; , d'apr&#232;s Fran&#231;ois Gannaz ( francois.gannaz at silecs.info ) et rootme&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; white list pas black list&lt;/li&gt;&lt;li&gt; codesniffer pour v&#233;rifier ( php-codesniffer )&lt;/li&gt;&lt;li&gt; gestion des erreurs&lt;/li&gt;&lt;/ul&gt;
&lt;textarea readonly='readonly' cols='40' rows='14' class='spip_cadre spip_cadre_block' dir='ltr'&gt;define('DEBUG',true); if (DEBUG){ error_reporting(E_ALL|E_STRICT); //ou error_reporting(E_ALL); // php5 ini_set(&#034;display_errors','On'); ini_set('log_errors','Off'); } else{ error_reporting(0); ini_set('display_errors','Off'); ini_set('log_errors','On'); ini_set('error_log','/myapp/error_log'); }&lt;/textarea&gt;
&lt;p&gt;trucs divers&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; php-xdebug sur les serveurs de d&#233;veloppement&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; validations
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; La validation javascript est une aide pour l'utilisateur, pas pour le serveur.&lt;/li&gt;&lt;li&gt; ctype_ et is_&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;table class=&#034;table spip&#034;&gt;
&lt;caption&gt;ctype_digit&lt;/caption&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;ctype_digit(&#034;[0-9]+&#034; )&lt;/td&gt;
&lt;td&gt;True&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;ctype_digit([0-9]+ )&lt;/td&gt;
&lt;td&gt;True si nb&lt;-127 ou &gt; 128&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;False si -127&lt;=nb&lt;=128&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;ctype_digit( &#034;5.3&#034; )&lt;/td&gt;
&lt;td&gt;False&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;ctype_digit(divers )&lt;/td&gt;
&lt;td&gt;False&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; ctype_alnum() - Check for alphanumeric character(s)&lt;br class='autobr' /&gt; ctype_xdigit() - Check for character(s) representing a hexadecimal digit&lt;br class='autobr' /&gt; is_numeric() - Finds whether a variable is a number or a numeric string&lt;br class='autobr' /&gt; is_int() - Find whether the type of a variable is integer&lt;br class='autobr' /&gt; is_string() - Find whether the type of a variable is string&lt;br class='autobr' /&gt;
ctype_digit() - Check for numeric character(s)&lt;br class='autobr' /&gt;
setlocale() - Set locale information&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; filter_input&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; sortie html&lt;/li&gt;&lt;li&gt; Prot&#233;ger les caract&#232;res sensibles : htmlspecialchars($var) ;&lt;br class='autobr' /&gt;
Prot&#233;ger tous les caract&#232;res : htmlentities($var,...) et mb_htmlentities($var,...)&lt;br class='autobr' /&gt;
ENT_COMPAT|ENT_QUOTES|ENT_NOQUOTES&lt;br class='autobr' /&gt;
Enlever les balises HTML : striptags($text) ;&lt;br class='autobr' /&gt;
Encodage sp&#233;cifique pour URL : urlencode($var) ;&lt;br class='autobr' /&gt;
ext/Filter peut non seulement valider mais aussi filtrer en sortie avec FILTER_SANITIZE_*&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Comment s'assurer qu'un champ cach&#233; n'a pas &#233;t&#233; modifi&#233; ?
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Envoyer en parall&#232;le un hash contr&#244;lant la valeur.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Comment &#233;viter qu'en rechargeant la page on relance une action ?
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Stocker dans une table un identifiant unique, cr&#233;&#233; avec uniqid(&#034;blah-&#034;,True)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; suprimer les retorus &#224; la ligne &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;preg_replace( '/\n|\r|\t|%0A|%0D|%08|%09/i' , '' , $_POST[ 'subject' ]);&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; captcha : noter - par exemple - que asus utilise ses propres captcha
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href=&#034;https://www.phpcaptcha.org/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.phpcaptcha.org/&lt;/a&gt; :
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href=&#034;https://www.phpcaptcha.org/download/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.phpcaptcha.org/download/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href=&#034;https://www.phpcaptcha.org/documentation/quickstart-guide/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.phpcaptcha.org/documentation/quickstart-guide/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;table class=&#034;table spip&#034;&gt;
&lt;caption&gt;exemples de captcha&lt;/caption&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;asus&lt;/td&gt;
&lt;td&gt;&lt;div class='spip_document_241 spip_document spip_documents spip_document_image spip_documents_left spip_document_left'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://dindoun.lautre.net/local/cache-vignettes/L60xH22/asus-54cb7.gif?1762328997' width='60' height='22' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;cr&#233;&#233; par moi&lt;/td&gt;
&lt;td&gt;&lt;div class='spip_document_242 spip_document spip_documents spip_document_image spip_documents_left spip_document_left'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://dindoun.lautre.net/local/cache-vignettes/L160xH50/captcha_36bac2dbab8151935dfb36a1362d61c4-34cc4.png?1762328997' width='160' height='50' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;phpcaptcha&lt;/td&gt;
&lt;td&gt;&lt;div class='spip_document_243 spip_document spip_documents spip_document_image spip_documents_left spip_document_left'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://dindoun.lautre.net/local/cache-vignettes/L215xH85/www.phpcaptcha.org-1c2ea.png?1762328997' width='215' height='85' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt; &lt;div class='spip_document_237 spip_document spip_documents spip_document_image spip_documents_left spip_document_left'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://dindoun.lautre.net/IMG/png/secureimage.png?1660413159' width='500' height='57' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; destruction des variables &lt;textarea readonly='readonly' cols='40' rows='13' class='spip_cadre spip_cadre_block' dir='ltr'&gt;if (ini_get('register_globals') == 1) { if (is_array($_REQUEST)) foreach(array_keys($_REQUEST) as $var_to_kill) unset ($$var_to_kill); if (is_array($_SESSION)) foreach(array_keys($_SESSION) as $var_to_kill) unset ($$var_to_kill); if (is_array($_SERVER)) foreach(array_keys($_SERVER) as $var_to_kill) unset ($$var_to_kill); unset($var_to_kill); }&lt;/textarea&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;utiliser plusieurs php&lt;/p&gt;
&lt;p&gt;pb : pas de phpmyadmin ? &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd /var/www/html &amp;&amp; git clone --depth=1 --branch=STABLE https://github.com/phpmyadmin/phpmyadmin.git&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
