| auteur : Eric Berger | Ce n'est pas possible. La raison est simple : si du code JavaScript peut s'exécuter, c'est que la page a déjà été envoyée au navigateur. PHP étant chargé de préparer la page, son action se situe avant l'envoi de la page au navigateur.
On peut donc en déduire que lorsque JavaScript commence son travail, PHP a déjà terminé le sien. Impossible donc qu'une fonction JavaScript ne déclenche une fonction PHP.
Il existe toutefois une alternative qui est l'AJAX, acronyme pour Asynchronous JavaScript And XML (Javascript Asynchrone et XML).
Le principe de base est d'intercepter en utilisant JavaScript les évènements survenants sur la page, et d'insérer dynamiquement dans la page un contenu provenant d'un serveur web, véhiculé par un document XML, toujours en utilisant JavaScript.
|
lien : Les technologies d'Ajax
lien : Formez-vous au Web 2.0 avec nos tutoriels AJAX
|
| auteur : Cyberzoide | Le Javascript est exécuté côté client, alors que le PHP est exécuté côté serveur. Le PHP permet d'écrire une page HTML à la volée. Via les fonctions d'affichage de PHP (echo, print), on peut inclure des balises HTML à la page, on peut aussi afficher du code JavaScript.
Pour inclure dans un script JavaScript des données provenant de PHP, exemple :
<script language="javascript">
function toto() {
if(document.form1.age.value < <?php echo $borne_inf; ?>) {
alert("Trop jeune.");
}
}
</script> |
ou encore :
<?php
$borne_inf = 18;
echo '<script language="javascript">
function toto() {
if(document.form1.age.value < ' . $borne_inf . ') {
alert("Trop jeune.");
}
}
</script>';
?> |
Cela affichera dans la page HTML :
<script language="javascript">
function toto() {
if(document.form1.age.value < 18 ) {
alert("Trop jeune.");
}
}
</script> |
Pour passer des paramètres à un script PHP depuis du JavaScript, exemple :
<input type="button" onclick="document.location='home.php?id=150';"> |
ou encore :
<input type="button" onclick="document.location='<?=$PHP_SELF?>?id=<?=$id?>'"> |
|
| auteur : Cyberzoide | Il existe ces structures du langage : require, include, require_once, include_once.
Exemples : require("common.php");
require($file);
require "script.php";
require 'config.php'; |
include et require :
Insertion du code des fichiers à l'endroit de la commande. Si le fichier n'existe pas, include produit une erreur E_WARNING et continue d'exécuter le reste du code, alors que require produit une erreur E_ERROR et l'exécution du code s'arrête.
include_once et require_once :
Ces commandes permettent d'inclure le fichier de la même façon que les commandes include et require mais le fichier sera inclus qu'un seule fois même si la commande est lancée plusieurs fois dans la page.
Exemple d'utilisation : require_once 'fichier.php';
require_once 'fichier.php';
include_once 'fichier.php';
|
Ces fonctions prennent pour argument le nom d'un script PHP (et éventuellement son chemin complet). Il n'est pas possible de passer des arguments à ces fichiers comme on peut le faire dans l'URL. Les fichiers ainsi inclus auront de toute façon accès à l'espace de mémoire du script qui procède à l'inclusion.
Exemple : script1.php <?php
echo "Bonjour<br>";
$user = "toto";
require("script2.php");
echo "Au revoir...";
?> |
Exemple : script2.php <?php
echo "Vous êtes : $user <br>";
?> |
Cet exemple affiche à l'écran : Bonjour
Vous êtes toto
Au revoir... |
Dans le cas où de nombreux scripts d'un site doivent inclure le ou les mêmes documents, et que ces premiers ne sont pas situés au même niveau de l'arborescence du système de fichiers, il est alors fortement conseillé de fournir le chemin absolu du fichier à inclure. Ceci permet d'éviter des erreurs lors d'inclusions croisées. Ce chemin absolu peut être défini par $_SERVER['DOCUMENT_ROOT'] qui contient la racine du site.
Exemple : $file = 'common/config.php';
require($_SERVER['DOCUMENT_ROOT'].$file); |
Toutes ces fonctions conviennent à l'inclusion de code PHP. C'est-à-dire que les fichiers à inclure doivent contenir du code entre <?php et ?>. Pour inclure un fichier qui ne contient pas de code PHP, utiliser plutôt readfile(), file() ou fopen().
|
| auteur : Forum PHP |
La liste des répertoires utilisés par PHP pour inclure un fichier est définie par la directive " include_path".
La valeur de cette directive peut être définie dans le fichier "php.ini" ou à l'aide des fonctions " set_include_path"
ou " ini_set".
Exemple d'utilisation :
Ces commandes définissent les chemins où chercher les fichiers à inclure et on peut utiliser les commandes "include" et "require" de la façon suivante :
require 'rep/fichier.php';
require '../repertoire2/fichier.php'; |
Avec la 1re ligne, PHP va d'abord chercher le fichier "fichier.php" dans le répertoire "rep" du répertoire courant.
Si le fichier n'existe pas, la recherche continue avec le fichier "c:/script/rep/fichier.php".
Avec la 2me ligne, PHP va d'abord chercher le fichier "fichier.php" dans le répertoire "repertoire2" qui se trouve un niveau au dessus du répertoire courant.
Si le fichier n'existe pas, la recherche continue avec le fichier "c:/repertoire2/fichier.php".
|
lien : Comment définir des chemins vers des fichiers qui fonctionnent avec Linux et Windows ?
|
| auteur : Cyberzoide | PHP peut agir côté client sur le comportement d'un ActiveX via les balises HTML de contrèle de cet ActiveX, en lui passant des variables en argument. Ces variables peuvent résulter d'un traitement, d'une requête utilisateur, ou d'une sélection dans une base de données. <? $val1 = "toto"; ?>
<object classid="....">
<param name="param1" value="<? echo $val1 ?>">
</object> |
|
| auteurs : Cyberzoide, Yogui | Une redirection peut se faire de trois manières :
- En PHP avec la fonction header() : c'est la meilleure solution
- En HTML avec une balise meta
- En Javascript avec l'objet window.location et sa méthode replace()
- À l'aide d'un .htaccess, plus efficace qu'en PHP mais moins explicite et il faut avoir Apache
- Avec l'URL Rewriting en utilisant le code HTTP
En PHP
La fonction header() envoie au client l'ordre de changer de page. Aucun contenu n'est envoyé (du moins, aucun contenu n'est nécessaire). Sachant que les headers (en-têtes) HTTP sont envoyés quoi qu'il en soit, et systématiquement avant le corps de la ressource demandée (qui est habituellement une page Web), cette solution est très logique.
Attention, il est préférable d'accompagner ce header d'un autre header afin d'indiquer au client (qui est généralement le navigateur Web) la raison de la redirection : c'est fondamental si l'on prend garde au référencement des pages de son site.
Notez l'utilisation du mot clef exit afin de s'assurer que rien d'autre n'est envoyé au navigateur par la suite.
En HTML
Cette solution est à utiliser principalement pour les tâches répétitives, très gourmandes en ressources serveur qui pourraient causer l'exécution du script à dépasser le temps maximum autorisé (habituellement fixé à 30 secondes).
Par exemple, une sauvegarde ou une mise à jour de la base de données, si nous n'avons pas de meilleure solution, peuvent être automatisées à l'aide de cette solution.
<meta http-equiv="refresh" content="nb_secondes; url=destination.php" /> |
Attention cependant : le W3C déconseille cette méthode. Il faut donc l'utiliser avec précaution.
Le problème ici n'est pas tellement que le navigateur puisse ne pas gérer cette technique ou qu'il puisse la désactiver. C'est plutôt que cet ordre est envoyé dans le contenu de la page Web, alors que tout ce que nous souhaitons est indiquer au navigateur qu'il doit aller voir ailleurs : c'est contradictoire. Nous ne devrions pas envoyer de contenu pour indiquer au navigateur qu'il ne trouvera rien ici...
En Javascript
Cette méthode est tout autant déconseillée que la précédente. Voici comment elle s'utilise :
<script type="text/javascript">
window.location.replace('destination.php');
</script> |
Ou : <script type="text/javascript">
window.location.href = 'destination.php';
</script> |
La première solution remplace l'élément actuel de l'historique du navigateur.
Le problème ici n'est pas tellement que le navigateur puisse ne pas gérer Javascript ou qu'il puisse le désactiver. C'est plutôt que cet ordre est envoyé dans le contenu de la page Web, alors que tout ce que nous souhaitons est indiquer au navigateur qu'il doit aller voir ailleurs : c'est contradictoire. Nous ne devrions pas envoyer de contenu pour indiquer au navigateur qu'il ne trouvera rien ici...
|
lien : Recommandation du W3C
lien : Comment inclure un script à l'intérieur d'un autre ?
lien : Formation au protocole HTTP, par Mathieu Lemoine
lien : Tutoriel : Comment Faire évoluer son URL Rewriting, par Guillaume Rossolini
lien : Tutoriel .htaccess : Gérer les changements d'URL, par Cédric Chatelain
lien : Tutoriel de réécriture de liens (URL Rewriting), par Guillaume Rossolini
|
| auteur : Jérôme | Toutes les informations concernant le navigateur utilisé par l'internaute se trouvent dans l'élément HTTP_USER_AGENT du tableau $_SERVER (register_globals = Off dans le php.ini) ou dans la variable $HTTP_USER_AGENT (register_globals = On).
A vous ensuite d'utiliser les fonctions de manipulation des chaînes de caractères pour extraire les infos qui vous intéressent.
|
| auteurs : Julp, Husqvarna | if ((ereg("Nav", getenv("HTTP_USER_AGENT"))) || (ereg("Gold", getenv("HTTP_USER_AGENT"))) ||
(ereg("X11", getenv("HTTP_USER_AGENT"))) || (ereg("Mozilla", getenv("HTTP_USER_AGENT"))) ||
(ereg("Netscape", getenv("HTTP_USER_AGENT")))
AND (!ereg("MSIE", getenv("HTTP_USER_AGENT")))
AND (!ereg("Konqueror", getenv("HTTP_USER_AGENT")))
AND (!ereg("Firefox", getenv("HTTP_USER_AGENT")))
AND (!ereg("Safari", getenv("HTTP_USER_AGENT"))))
$browser = "Netscape";
elseif (ereg("Opera", getenv("HTTP_USER_AGENT")))
$browser = "Opera";
elseif (ereg("MSIE", getenv("HTTP_USER_AGENT")))
$browser = "MSIE";
elseif (ereg("Lynx", getenv("HTTP_USER_AGENT")))
$browser = "Lynx";
elseif (ereg("WebTV", getenv("HTTP_USER_AGENT")))
$browser = "WebTV";
elseif (ereg("Konqueror", getenv("HTTP_USER_AGENT")))
$browser = "Konqueror";
elseif (ereg("Safari", getenv("HTTP_USER_AGENT")))
$browser = "Safari";
elseif (ereg("Firefox", getenv("HTTP_USER_AGENT")))
$browser = "Firefox";
elseif ((eregi("bot", getenv("HTTP_USER_AGENT"))) || (ereg("Google", getenv("HTTP_USER_AGENT"))) ||
(ereg("Slurp", getenv("HTTP_USER_AGENT"))) || (ereg("Scooter", getenv("HTTP_USER_AGENT"))) ||
(eregi("Spider", getenv("HTTP_USER_AGENT"))) || (eregi("Infoseek", getenv("HTTP_USER_AGENT"))))
$browser = "Bot";
else
$browser = "Autre";
echo $browser; |
Je pense que c'est assez explicite, cette méthode de procéder est beaucoup plus sûre que d'employer la fonction get_browser() qui elle pour fonctionner à besoin du fichier browscap.ini (son gros problème c'est qu'elle ne reconnaît pas le navigateur si plusieurs sont installés sur le système !).
|
| auteur : Julp | if (ereg("Win", getenv("HTTP_USER_AGENT")))
$os = "Windows";
elseif ((ereg("Mac", getenv("HTTP_USER_AGENT"))) || (ereg("PPC", getenv("HTTP_USER_AGENT"))))
$os = "Mac";
elseif (ereg("Linux", getenv("HTTP_USER_AGENT")))
$os = "Linux";
elseif (ereg("FreeBSD", getenv("HTTP_USER_AGENT")))
$os = "FreeBSD";
elseif (ereg("SunOS", getenv("HTTP_USER_AGENT")))
$os = "SunOS";
elseif (ereg("IRIX", getenv("HTTP_USER_AGENT")))
$os = "IRIX";
elseif (ereg("BeOS", getenv("HTTP_USER_AGENT")))
$os = "BeOS";
elseif (ereg("OS/2", getenv("HTTP_USER_AGENT")))
$os = "OS/2";
elseif (ereg("AIX", getenv("HTTP_USER_AGENT")))
$os = "AIX";
else
$os = "Autre";
echo $os; |
Pour savoir quel système d'exploitation est utilisé par le visiteur, il faut tester les différents systèmes d'exploitation grâce à la fonction ereg() sur la variable $HTTP_USER_AGENT qui renvoie plusieurs informations sur le client.
|
| auteur : Jérôme | Il faut bien évidemment que le formulaire et son traitement se trouvent dans le même fichier. Vous devez d'abord récupérer les valeurs de cette liste si le formulaire a déjà été envoyé
<?$listemul = $_POST["listemul"] ;?> |
Rappel : comme on utilise une liste multiple, pour pouvoir récupérer toutes les valeurs sélectionnées, il faut en faire un tableau (par conséquent on a récupéré un tableau).
On veut donc ensuite afficher le formulaire avec comme valeurs pré-sélectionnées les choix qui ont été effectués précédemment. On doit donc vérifier pour chaque option de la liste si sa valeur se trouve dans le tableau que l'on a récupéré. Pour cela, on utilise la fonction in_array(arr, cherche[, boolstrict]) qui va vérifier si la valeur cherche se trouve dans le tableau arr. Le paramètre optionnel boolstrict effectue une vérification sur le type de cherche et de la valeur trouvée (inutile ici).
Le code du formulaire:
<form method="post">
<select name="listemul[]" size="4" multiple>
<option value="0" <?if (isset($listemul) && in_array('0', $listemul)) echo "selected";?>>choix 1</option>
<option value="1" <?if (isset($listemul) && in_array('1', $listemul)) echo "selected";?>>choix 2</option>
<option value="2" <?if (isset($listemul) && in_array('2', $listemul)) echo "selected";?>>choix 3</option>
<option value="3" <?if (isset($listemul) && in_array('3', $listemul)) echo "selected";?>>choix 4</option>
</select>
<input type="submit">
</form> |
On utilise également la fonction isset() pour vérifier que le tableau $listemul existe, dans le cas contraire, la fonction in_array() sur une variable qui n'existe pas provoquerait une erreur.
|
| auteur : Cyberzoide | Pour recharger la page précédente dans le navigateur du client, il est possible de combiner les en-têtes HTTP et la variable d'environnement $HTTP_REFERER (ou $_SERVER['HTTP_REFERER'] depuis PHP 4.2.0).
header("Location: ".$_SERVER['HTTP_REFERER']); |
Attention, la valeur de HTTP_REFERER provient de ce que veut bien retourner le navigateur au serveur. Certains navigateurs ne retournent pas cette information.
Sinon, il existe les fonctions JavaScript :
et
|
| auteur : Cyberzoide | Un cookie est un petit fichier texte placé dans l'ordinateur de l'internaute à la demande du serveur lors de la visite d'une page. Ce fichier permet de stocker un petit nombre d'informations, comme un mot de passe, le nombre de visites, etc.
A utiliser avec parcimonie, car un internaute peut les supprimer à la main ou configuer son navigateur pour les refuser.
AVERTISSEMENT : Les cookies peuvent être considérés par certaines personnes comme une violation de leur vie privée. La CNIL (Commission Nationale de l'Informatique et des Libertés, France) recommande aux webmasters qui ont recours aux cookies de le signaler très clairement sur leur page d'accueil.
Ainsi, il est souvent préférable d'utiliser les sessions à la place des cookies.
Un cookie peut être envoyé depuis un script PHP avec la fonction setCookie(). Cette fonction doit être utilisée avant tout envoi d'en-tête HTTP au navigateur (il ne faut rien afficher avant d'utiliser cette fonction).
1. Création de cookie
Cette fonction prend pour paramètres :
- $name : le nom du cookie (cette chaîne de caractères ne doit contenir ni virgule, ni espace, ni les deux points(:))
- $value : la valeur du cookie
- $expires : la date d'expiration du cookie au format timestamp Unix (c'est-à-dire le nombre de secondes écoulées depuis le 1er janvier 1970), s'il n'est pas spécifié, le cookie sera supprimé lors de la fermeture du navigateur
- $path : le répertoire du site web pour lequel le cookie est valide (les sous-répertoires sont acceptés) : par défaut le répertoire actuel
- $domain : le nom de domaine pour lequel le cookie est valide
- $secure : indique (0 ou 1) si le cookie doit être transmis via une connexion sécurisée par le protocole HTTPS
Tous les paramètres sont optionnels sauf $name.
Exemple :
<?php
setcookie("Visites", "1", time()+24*60*60, "/", "monsite.fr", 0);
?> |
Cet exemple envoie le cookie nommé Visites de valeur 1, de date d'expiration : le jour suivant (aujourd'hui + 24 heures). Il est valide dans tout le site web (c'est-à-dire depuis la racine / du site) pour le domaine monsite.fr. Il ne requiert pas de connexion sécurisée par HTTPS.
2. Lecture de cookie
La puissance du PHP fait qu'il n'est pas nécéssaire d'aller chercher quoi que ce soit : PHP le fait tout seul automatiquement. Tous les cookies valides pour le domaine et le répertoire du script PHP en cours vont être mis en mémoire. Ainsi vont être créées des variables portant le nom des cookies et valant leur valeurs respectives. Les tableaux $HTTP_COOKIE_VARS (obsolète) et $_COOKIE (depuis PHP 4.1.0) contiennent la liste des cookies disponibles.
Exemple :
<?php
echo $Visites;
echo $HTTP_COOKIE_VARS['Visites'];
echo $_COOKIE['Visites'];
?> |
3. Suppression de cookie
Pour supprimer un cookie, c'est très simple, il suffit de le recréer à l'identique mais sans valeur et avec une date d'expiration dépassée.
Exemple :
<?php
setcookie("Visites", "", time()-100, "/", "monsite.fr", 0);
?> |
|
| auteur : Cyberzoide | Le rôle des en-têtes est d'échanger des méta-informations (informations à propos des informations échangées que sont les pages html générées ou non dynamiquement à partir de PHP) entre le serveur et le client.
Exemples d'en-têtes
Server: Apache/1.3.9 (Unix) Debian/GNU qui renseigne le client sur la nature du serveur distant
Last-Modified: Sun, 07 Apr 2002 14:30:30 GMT qui donne la date de dernière modification du document
Envoyer des en-têtes
La commande header() du php permet l'envoi d'en-têtes personnalisés. Par exemple :
header("Location: home2.php3"); |
pour rediriger le navigateur sur la page "home2.php3"
Les en-têtes peuvent servir à la redirection, à l'authentification, à l'envoi d'images au navigateur...
|
lien : Le Protocole HTTP
|
| auteur : Cyberzoide | Les sessions permettent tout du long de la visite d'un internaute sur le site, de conserver des informations de façon transparente.
Cela est sans ralentissement de performances car le client ne stocke sous forme de cookie que l'ID de session (généré aléatoirement), le serveur stockant sur disque le contenu des variables dans le répertoire défini par session.save_path.
Les sessions sont activées manuellement par la commande session_start() ou automatiquement si session.auto_start est à 1 ou encore implicitement par la commande session_register()(obsolète).
Le serveur attribue à chaque visiteur un identifiant unique qui est soit envoyé au client sous forme de cookie (par défaut), soit passé de façon systématique dans l'URL.
|
| auteur : Cyberzoide |
- En stockant leurs valeurs dans une base de données.
- En les enregistrant dans un fichier sur le serveur (mais oblige à donner des droits d'écriture aux visiteurs).
- Utiliser des cookies (malheureusement certains navigateurs ne les acceptent pas).
- En les envoyant dans l'URL (mais seront visibles aux visiteurs dans la barre d'adresse et cela leur impose de toujours utiliser les liens hypertextes).
- En les passant par un formulaire (mais impose aux visiteurs de cliquer sur un bouton d'envoi).
- En utilisant une session.
|
| auteur : Cyberzoide | S'il est une fonctionnalité de HTML qui soit autant ultra répendue et utile que contestée par les puristes, c'est bien le système de frames (dits aussi cadres en français).
Il est vrai qu'avoir sur son écran plusieurs documents HTML sur une même page permet d'offir au visiteur un système de navigation très performant en échange d'une maintenance relativement simple et rapide.
Cependant, tous les moteurs de recherche ne sont pas capables d'indexer les sites recourant aux frames. De plus, les systèmes utilisés par les mal-voyants ont eux aussi beaucoup de mal avec les frames.
Les frames permettent donc de conserver un sommaire, un pied de page et une bannière d'en-tête en permanence. Seul le contenu central de la page change.
Ceci peut être aisément réalisé en PHP via des inclusions de fichiers, en lieu et place des frames controversées.
Par exemple, pour simuler une rubrique comportant un sommaire à gauche et un texte variable à droite :
avec les frames :
<HTML>
<FRAMESET>
<FRAMESET COLS="30%,70%">
<FRAME NAME="sommaire" SRC="sommaire.html">
<FRAME NAME="article" SRC="article1.html">
</FRAMESET>
</FRAMESET>
</HTML> |
avec PHP :
<html>
<body>
<table width="100%" height="100%">
<tr>
<td> <?php require('sommaire.php'); ?> </td>
<td> <?php require($article_id.'.php'); ?> </td>
</tr>
</table>
</body>
</html> |
Il suffit donc de créer un tableau HTML et d'en remplir les cellules avec le contenu d'autres scripts PHP.
Ainsi, on peut aussi rajouter un en-tête, un pied de page et beaucoup d'autres éléments...
<html>
<body>
<table width="100%" height="100%">
<tr>
<td colspan="2"> <?php require('entete.php'); ?> </td>
</tr>
<tr>
<td> <?php require('sommaire.php'); ?> </td>
<td> <?php require($article_id.'.php'); ?> </td>
</tr>
<tr>
<td colspan="2"> <?php require('pied.php'); ?> </td>
</tr>
</table>
</body>
</html> |
|
| auteur : Cyberzoide | Le rafraichissement d'une page résulte d'un ordre provenant du client, or PHP n'agit que sur le serveur. Seul le serveur en lui-même et non les scripts PHP qu'il héberge peuvent l'empêcher.
Cette opération est donc impossible en PHP, ni en JavaScript, et encore moins en HTML.
Par contre il est possible d'enregistrer dans la session, ou dans une base de données, que le traitement a déjà été réalisé. Ainsi, quand la page est à nouveau rafraichie, il est possible de ne plus faire le traitement mais d'afficher un message d'erreur par exemple.
|
| auteur : Cyberzoide | Pour effectuer une authentification HTTP, vous pouvez utiliser un fichier .htaccess, mais vous pouvez également le faire au travers d'un script PHP en renvoyant au navigateur les en-têtes HTTP adéquats <?php
if(!isset($_SERVER['PHP_AUTH_USER'])) {
Header("WWW-Authenticate: Basic realm=\"mon domaine\"");
Header("HTTP/1.0 401 Unauthorized");
echo "dommage\n";
exit;
} else {
echo "salut " . $_SERVER['PHP_AUTH_USER'] . "<br />";
echo "ton mot de passe est : " . $_SERVER['PHP_AUTH_PW'] ;
}
?> |
La fonction header() envoie des en-têtes HTTP au navigateur. Ce dernier, en voyant "WWW-Authenticate", va afficher une petite boite de dialogue pour la saisie du login et du mot de passe qui seront mis respectivement dans les variables d'environnement de PHP : $_SERVER['PHP_AUTH_USER'] et $_SERVER['PHP_AUTH_PW'].
Une fois les login et mot de passe du visiteur récupérés, il faut les controler (avec une base de données par exemple).
Si l'authentification a échoué (l'utilisateur n'est pas dans la base par exemple), il y a plusieurs choix possibles :
le rediriger à l'aide la fonction header() : header("Location: pagerefus.php") ; |
arrêter le script à l'aide de la fonction die() : die("stop ! espèce d'intrus!") ; |
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2003
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|