Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo
Sommaire > Divers
        Comment forcer l'arrêt d'un script ?
        Comment mettre en pause l'exécution d'un code ?
        Comment alterner la couleur des tr dans un tableau ?
        Comment connaître le temps d'exécution d'un script ou d'une fonction ?
        Peut-on pré-compiler les scripts PHP ?
        Comment exécuter une commande externe en PHP ?
        Comment créer une arborescence virtuelle ?
        Comment interdire certaines fonctions PHP ?
        Comment désactiver certaines classes ?
        Comment vérifier la validité d'une URL ?
        Comment récupérer l'url d'une page en cours d'exécution ?
        Comment utiliser les cookies ?
        Comment connaître les variables POST, GET et SESSION envoyées à la page ?
        Pourquoi mon application ne fonctionne plus sans erreur avec EasyPhp 1.7 ?
        Comment accéder à un serveur depuis l'extérieur ?
        Comment lire un fichier se trouvant sur le disque du poste client ?
        Comment récupérer des informations sur la configuration du client (logiciels installés, RAM, place disque...) ?
        Peut-on piloter des logiciels ou des périphériques installés chez le client (douchette code-barre, scanner, etc) ?
        Comment générer un identifiant aléatoire et unique ?
        Comment mettre en cache des données ?
        Comment définir des chemins vers des fichiers qui fonctionnent avec Linux et Windows ?
        Comment détecter l'activation du JavaScript du côté client en PHP ?

precedent    sommaire    suivant   


Comment forcer l'arrêt d'un script ?
auteur : Cyberzoide
Il est quelquefois judicieux de forcer l'arrêt d'un script PHP en milieu d'exécution pour des raisons diverses : erreur grave survenue, intrusion d'une personne non autorisée...
Pour cela il existe la fonction : exit() et son alias die().
Cette fonction ne retourne aucune valeur puisque les instructions qui la suivent ne seront pas exécutées. De plus elle peut prendre un argument optionnel de type chaîne de caractères. Cette chaîne sera affichée dans la page juste avant l'arrêt.


Comment mettre en pause l'exécution d'un code ?
auteur : Forum PHP
Pour arrêter l'exécution d'un code pendant un certain temps, il faut utiliser la fonction sleep() qui retarde l'exécution du programme pendant x secondes.

Syntaxe :
sleep(int delai); //délai est en secondes
Par définition, toute fonction sleep de n'importe quel langage limite une forte consommation du CPU car c'est justement pour libérer le CPU qu'on utilise ce genre de fonction.


Comment alterner la couleur des tr dans un tableau ?
auteur : Forum PHP
Pour alterner les couleurs, il suffit de faire ainsi :
$i = 0;
while(condition) 
{
  $couleur = ($compteur % 2 == 0) ? "#CCCCCC" : "#FFFFFF";
  echo '<tr bgcolor="'.$couleur.'"><td>texte</td></tr>';
  $i++;
}
Ou de la manière suivante
$i = 0;
while(condition) 
{
  echo '<tr class="ligne'.($i % 2).'"><td>texte</td></tr>';
  $i++;
}
A utiliser après avoir déclarer une feuille de style contenant les classes ligne0, ligne1.
Exemple de classe :
<style type="css/text">
.ligne0 { background-color : #FF0000; }
.ligne1 { background-color : #CCCCCC; }
<style>

Comment connaître le temps d'exécution d'un script ou d'une fonction ?
auteur : Cyberzoide
Il est parfois nécessaire de comparer le temps d'exécution de deux fonctions pour savoir laquelle des deux est la plus rapide afin de ne retenir que le code le plus performant.

Pour calculer avec précision ce temps d'exécution, nous allons déterminer deux dates : une date juste avant le début de l'exécution du code, une autre date juste après. Puis nous calculerons la différence entre ces deux dates.

La fonction microtime() permet de connaître avec précision la date du moment. Cette fonction retourne une chaîne de caractères composée de deux nombres positifs, le permier est un réel, le deuxième un entier, séparés par un espace. Le deuxième est le TIMESTAMP Unix de la date et de l'heure actuelle (Note : un TIMESTAMP est le nombre de secondes écoulées depuis le 1er janvier 1970). Le premier apporte une précision en microsecondes.

Exemple :
echo microtime();
echo '<br/>' ;
echo date("d/m/Y H:i:s");
Affiche :
0.93578900 1056612625
			   26/06/2003 09:30:25
Cela correspond donc à la date du 26 juin 2003 à 9h et demi et 25 secondes. De plus on peut rajouter 93578900 microsecondes à cette heure là, c'est-à-dire 0.93578900 secondes.

Une telle précision permet de connaître aisément le temps d'exécution sur le serveur d'une simple commande PHP.

On va alors créer une fonction qui détermine un TIMESTAMP Unix qui contient le nombre de micosecondes écoulées depuis le 1er janvier 1970.
function microtimestamp() {
    list($msec, $sec) = explode(' ', microtime());
    return ((float) $sec + (float) $msec) * 1000000;
}
Cette fonction doit donc être appelée avant et après le code dont on veut calculer la durée d'exécution. Puis on soustrait les deux résultats pour avoir le nombre de microsecondes écoulées.

Exemple :
$start = microtimestamp();
require('script-a-tester.php');
$end = microtimestamp();
echo $end-$start;
Et voila, cela affiche le temps d'exécution du script en question.

Pour avoir ce temps en secondes :
$start = microtimestamp();
fonction_a_tester();
$end = microtimestamp();
echo round(($end-$start)*100000);

Peut-on pré-compiler les scripts PHP ?
auteur : Cyberzoide
C'était possible en PHP3 sous un shell (Unix ou MS-DOS):
php -p monscript.php3
On obtenait ainsi un script .php3p (p pour pretokenized). Le but était de cacher le code source et pas d'en rendre l'exécution plus rapide.

Pour l'exécuter en ligne de commande :
php -e monscript.php3p
Et via Apache, il faut ajouter dans le fichier de configuration /usr/local/apache/conf/httpd.conf la ligne suivante :
AddType application/x-httpd-php3 .php3p
Mais ceci n'existe plus en PHP4.

Il existe bien des logiciels d'encodage ou de cryptage, mais ils sont payants (ioncube.com, Zend, etc...).


Comment exécuter une commande externe en PHP ?
auteur : Cyberzoide
Pour exécuter une commande shell (Unix ou Windows) depuis PHP, existe les fonctions suivantes :shell_exec(), system(), exec() ainsi que l'opérateur d'exécution ` `.

PHP tente d'exécuter sur le shell du serveur toute commande incluse dans les guillemets obliques (touches ALT + 7) et retourne le résultat de l'exécution qui peut être assigné à une variable de type chaîne de caractères. A noter que cet opérateur est inactif lorsque le safe mode est activé.
$list = `ls -l`;
echo "<pre>$list</pre>";
La fonction shell_exec() est strictement identique à l'opérateur d'exécution.
$list = shell_exec("ls -l");
echo "<pre>$list</pre>";
La fonction system() exécute une commande et retourne la dernière ligne de résultat sous la forme d'une chaîne de caractères si succès de la commande, sinon retourne le booléen FALSE.
echo system("uname -u");
La fonction exec() est similaire à system().

La fonction passthru() est similaire à exec() mais ne retourne rien et affiche le résultat brut.

La fonction escapeshellcmd() permet de traiter une chaîne de caractères contenant une commande afin d'en supprimer tout caractère spécial pouvant tromper le système.

Comment créer une arborescence virtuelle ?
auteur : Yogui
Une première idée pourrait nous pousser à utiliser le fichier .htaccess pour rediriger l'internaute à l'aide d'une page 404 de notre choix (la page par défaut pour les URIs non valides). Ce script peut récupérer l'adresse que notre internaute a demandée et utiliser un tableau ou une base de données pour déterminer la véritable page à charger. Cependant, cette approche est incorrecte car Apache envoie une erreur HTTP 404 au navigateur, ce qui empêche le référencement correct de la page Web. Par conséquent, aucune page de votre site ne serait référencé par les moteurs de recherche. La véritable solution implique la réécriture de liens. Il faut pouvoir activer la directive "RewriteEngine" de votre fichier .htaccess de manière à y inclure cette première ligne :
RewriteEngine on
À partir de là, vous pouvez utiliser la directive RewriteRule dans ce même fichier, conjointement à des expressions régulières. Imaginons par exemple un site fondé sur des articles, sur le principe de : articles.php?article=X (où X est l'identifiant numérique entier de l'article).
Nous aurions une série d'articles de la sorte : articles.php?article=1, articles.php?article=43, articles.php?article=99, etc.
Nous désirons utiliser une arborescence virtuelle au lieu de ces paramètres barbares. Nous aimerions quelque chose comme : articles/titre/X/ Voici comment nous pouvons nous y prendre : il suffit d'afficher les liens de la manière souhaitée dans le HTML et, dans le .htaccess, d'ajouter cette ligne :
RewriteRule articles/.*/([0-9]+)$ /articles.php?article=$1 [L]
C'est une solution assez complexe, mais elle est détaillée dans le tutoriel de réécriture de liens (URL Rewriting)

lien : fr Tutoriel de réécriture de liens (URL Rewriting), par Guillaume Rossolini

Comment interdire certaines fonctions PHP ?
auteur : Cyberzoide
Le fichier de configuration php.ini permet d'interdire l'utilisation de certaines fonctions dans les scripts PHP pour des raisons de sécurité (par exemple, interdire l'utilisation de system(), exec(), et autres...).
; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
disable_functions = 
Cette directive de configuration prend pour valeur une chaîne de caractères délimitée par des doubles quotes. Cette chaîne est composée de la liste des fonctions à interdire, séparées par une virgule.

Exemple :
disable_functions = "system, exec, phpinfo"
Cette directive n'est pas inactivée par le safe mode.


Comment désactiver certaines classes ?
auteur : Cyberzoide
Le fichier de configuration php.ini permet d'interdire l'utilisation de certaines classes dans les scripts PHP pour des raisons de sécurité.
disable_classes = 
Cette directive de configuration prend pour valeur une chaîne de caractères délimitée par des doubles quotes. Cette chaîne est composée de la liste des classes à interdire, séparées par une virgule.

Exemple :
disable_classes = "SQL_user"
Cette directive n'est pas inactivée par le safe mode.


Comment vérifier la validité d'une URL ?
auteur : Cyberzoide
On procède en deux étapes :
- vérification syntaxique
- vérification de l'existence de la ressource

La vérification syntaxique consiste à vérifier que le http:// est bien présent, et d'une manière générale que la grammaire normalisée d'écriture des URL est bien respectée.

Ainsi, la fonction parse_url($url) permet d'extraire tous les éléments d'une URL : domaine, protocole, port, chemin, paramètres... afin de les contrèler.

La vérification de l'existence physique du serveur, passe par l'établissement d'une socket vers le serveur avec la fonction fsockopen().

Le script suivant procède à ces vérifications successives :
function checkurl($url){
    // vérification du protocole HTTP
    if (!eregi("^http://", $url)) {
        return FALSE;
    }
    $details = parse_url($url);
    // vérification du port 80 lié au protocole HTTP
    if (!isset($details['port'])) {
        $details['port'] = "80";
    }
    // vérification du chemin
    if (!isset($details['path'])) {
        $details['path'] = "/";
    }
    // vérification de l&#39;adresse du serveur
    if (!ereg("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+", $details['host'])){
        $details['host'] = gethostbyname($details['host']);
    }
    // ouverture d&#39;une connexion vers le serveur
    if ($sock = fsockopen( $details['host'], $details['port'], &$numero_erreur, &$texte_erreur)){
        $requete = "GET ".$details['path']." HTTP/1.1\r\n";
        $requete .= "Host: ".$details['host']."\r\n\r\n";
        // envoie d&#39;une requête HTTP GET
        fputs($sock, $requete);
        // réception de la réponse du serveur
        $str = fgets($sock, 1024);
        while(!ereg('^HTTP/1.1 ', $str)){
            $str = fgets($sock, 1024);
        }
        // fermeture de la connexion
        fclose($sock);
        list($http, $str, $texte) = explode(" ", $str, 3);
        return array($str, $reponse[$str]);
    }
    return FALSE;
}

Comment récupérer l'url d'une page en cours d'exécution ?
auteurs : Forum PHP, Kerod
Pour récupérer l'url d'une page en cours d'exécution, on utilise l'une des variables prédéfinies suivantes :
  • $_SERVER['PHP_SELF'] : qui contient le nom du fichier du script en cours d'exécution, par rapport à la racine web
Exemple :
//Dans le script se trouvant à l'adresse http://www.monsite.com/test/test.php
echo $_SERVER['PHP_SELF']; //Affiche /test/test.php
  • $_SERVER['SCRIPT_NAME'] : qui contient le nom du script courant. Cela sert lorsque les pages doivent s'appeler elles-mêmes.
Exemple :
//Dans le script se trouvant à l'adresse http://www.monsite.com/test/test.php
echo $_SERVER['SCRIPT_NAME']; //Affiche /test/test.php
  • basename(__FILE__) : qui contient uniquement le nom du script courant. (Ce qui est un avantage lorsque l'on souhaite uniquement récupérer le nom du script)
Exemple :
//Dans le script se trouvant à l'adresse http://www.monsite.com/test/test.php
echo basename(__FILE__); //Affiche test.php

Pour récupérer l'url complète d'un script, on utilise les variables prédéfinies $_SERVER['SERVER_NAME'] et $_SERVER['REQUEST_URI'].
  • $_SERVER['SERVER_NAME'] renvoie le nom du serveur hôte qui exécute le script
  • $_SERVER['REQUEST_URI'] renvoie tout le reste de l'url y compris les variables transmises par la méthode GET
Exemple :
//Dans le script se trouvant à l'adresse http://www.monsite.com/test/test.php?test=10
echo $_SERVER['SERVER_NAME']; //Affiche www.monsite.com
echo $_SERVER['REQUEST_URI']; //Affiche /test/test.php?test=10
On peut également le faire avec le code suivant :
//Affiche l'url complète composée de l'ip, du port et du fichier ainsi que les variables en paramètres
echo 'http://' . $_SERVER['SERVER_ADDR'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI'];

Comment utiliser les cookies ?
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;// affiche "1" si la directive register_globals est à On
echo $HTTP_COOKIE_VARS['Visites'];// affiche "1"
echo $_COOKIE['Visites'];// affiche "1"
?>
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);
?>
Plus d'infos sur les cookies ici : http://wp.netscape.com/newsref/std/cookie_spec.html.


Comment connaître les variables POST, GET et SESSION envoyées à la page ?
auteur : Alexandre_T
Le code suivant vous permet de récupérer facilement les variables sous forme de tableau et constitue également un débuggueur.
// Débuggage
// Liste des Variables de session
echo '<TABLE BORDER=0 CELLPADDING=3 CELLSPACING=1 WIDTH=600 BGCOLOR="#000000" ALIGN="CENTER">';
echo '<tr bgcolor="#9999CC"><th colspan="2">Variables de session</th></tr>';
if (isset($HTTP_SESSION_VARS))
  foreach ($HTTP_SESSION_VARS as $key=>$value)
  {
    if (is_array($value))
    {
      echo "<tr bgcolor=\"#CCCCCC\"><td nowrap bgcolor=\"#CCCCFF\">$key</td><td>";
      foreach ($value as $inckey=>$incval)
        echo "[$inckey]=>$incval<br />"; 
        echo '</td></tr>';
    }
    else  
      echo "<tr bgcolor=\"#CCCCCC\"><td nowrap bgcolor=\"#CCCCFF\">$key</td><td>$value</td></tr>";
  }

// Liste des variables passées dans l'URL. NB : Il n'y a pas de gestion des tableaux dans ce cas
echo '<tr  bgcolor="#9999CC"><th colspan="2">Variables passées en URL</th></tr>';
if (isset($HTTP_GET_VARS))
  foreach ($HTTP_GET_VARS as $key=>$value)
  {
    echo "<tr bgcolor=\"#CCCCCC\"><td nowrap bgcolor=\"#CCCCFF\">$key</td><td>$value</td></tr>";
  }

// Liste des variables transmises par formulaire
echo '<tr  bgcolor="#9999CC"><th colspan="2">Variables passées par formulaire</th></tr>';
if (isset($HTTP_POST_VARS))
  foreach ($HTTP_POST_VARS as $key=>$value)
  {
    if (is_array($value))
    {
      echo "<tr bgcolor=\"#CCCCCC\"><td nowrap bgcolor=\"#CCCCFF\">$key</td><td>";
      foreach ($value as $inckey=>$incval)
    echo "[$inckey]=>$incval<br />"; 
    echo '</td></tr>';
    }
   else  
     echo "<tr bgcolor=\"#CCCCCC\"><td nowrap bgcolor=\"#CCCCFF\">$key</td><td>$value</td></tr>";
  }
echo '</table>';

Pourquoi mon application ne fonctionne plus sans erreur avec EasyPhp 1.7 ?
auteur : Nonothehobbit
La nouvelle version de php est configurée par défaut pour afficher toutes les erreurs (même les "notices" (avertissement)) et avec le paramètre "register_globals" à off.
En ce qui concerne register_globals, cela signifie que vous ne pouvez plus accéder directement aux variables de session, postées par formulaire ou même venant de la barre d'adresse. Il vous faudra passer par des tableaux "superglobaux". Voici les différent tableaux :

Pour les sessions : $_SESSION['ma_variable'] au lieu de $ma_variable
Pour la barre d'adresse : $_GET['ma_variable'] au lieu de $ma_variable
Pour les variable postées par formulaire : $_POST['ma_variable'] au lieu de $ma_variable
Pour les cookies : $_COOKIE['ma_variable'] au lieu de $ma_variable
Pour les fichiers envoyés par formulaire : $_FILES['ma_variable'] au lieu de $ma_variable
Tableau regroupant toutes les données envoyées (barre d'adresse, formulaire et cookie) : $_REQUEST['ma_variable'] au lieu de $ma_variable
Les informations de serveur : $_SERVER['ma_variable'] au lieu de $ma_variable
Les informations d'environnement : $_ENV['ma_variable'] au lieu de $ma_variable

Pour l'affichage des "notices", il est conseillé de le laisser, car il vous informe des trous de sécurité de votre code comme les variable non déclarées ou les index de tableau non définis.
Par exemple pour tester l'existence d'une variable, utiliser if(isset($variable)) plutèt que if($variable) ou if(!empty($variable)).
De même, mettez des guillemets ou apostrophes dans les index non numériques des tableaux.
Ex : $tab["index"] à la place de $tab[index]

Voilà, je rappelle qu'il faut laisser ces paramètres tels quels sous peine d'avoir un code peu sécurisé et donc plus facilement vulnérable. Même si l'application n'est pas destinée au grand public (sur le web), il ne coûte rien de prendre l'habitude de programmer "propre" pour éviter les problèmes à venir.

lien : Les tableaux superglobaux

Comment accéder à un serveur depuis l'extérieur ?
auteur : khayyam90
Un serveur est configuré par défaut pour fonctionner en local, en écoutant l'adresse 127.0.0.1 (localhost). Donc pour pouvoir y accéder depuis d'autres ordinateurs, il faut le faire écouter l'adresse de la machine sur le réseau. Il s'agit juste d'une ligne à changer dans le fichier de configuration. Stoppez le serveur, modifiez le fichier httpd.conf situé dans le répertoire conf_files et changez la ligne
Listen 127.0.0.1:80
par
Listen [IP de la machine]:80
puis redémarrez le serveur.


Comment lire un fichier se trouvant sur le disque du poste client ?
auteur : BiD0uille
Il n'est pas possible pour des raisons évidentes de sécurité de faire ce genre d'opération. PHP s'exécute côté serveur et rien ne peut être tenté côte client sans son accord.


Comment récupérer des informations sur la configuration du client (logiciels installés, RAM, place disque...) ?
auteur : BiD0uille
Il n'est pas possible pour des raisons évidentes de sécurité de faire ce genre d'opération. PHP s'exécute côté serveur et rien ne peut être tenté côte client sans son accord.


Peut-on piloter des logiciels ou des périphériques installés chez le client (douchette code-barre, scanner, etc) ?
auteur : BiD0uille
Il n'est pas possible pour des raisons évidentes de sécurité de faire ce genre d'opération. PHP s'exécute côté serveur et rien ne peut être tenté côté client sans son accord.


Comment générer un identifiant aléatoire et unique ?
auteur : Kerod
Pour générer un identifiant unique et aléatoire, il faut utiliser la fonction uniqid() qui retourne un identifiant préfixé unique, basé sur l'heure courante, en micro-secondes.
Exemple :
echo uniqid(mt_rand()); //Affiche un identifiant préfixé par un nombre aléatoire : 20449ad73f4d81d

Comment mettre en cache des données ?
auteur : Cyberzoide
PHP fournit de nombreuses fonctions d'affichage du contenu de fichier, variables, tableau... qui malheureusement affichent directement à l'écran le contenu utile. Or dans certains cas, il serait très utile de pouvoir récupérer l'information dans une variable.

Pour cela, il reste à rediriger le flux de sortie standard vers un buffer que l'on pourra vider dans une variable de type String.

PHP offre les moyens d'une telle redirection : Exemple :
// bufferisation de la sortie standard
ob_start();
print_r($_GET);
echo ";\n";
print_r($_POST);
$contents = ob_get_contents();
ob_end_clean();
// fin buff

Comment définir des chemins vers des fichiers qui fonctionnent avec Linux et Windows ?
auteur : Forum PHP
Avec Linux, le caractère à utiliser dans les chemins est le slash (/). Avec Windows, il s'agit de l'anti-slash (\) mais dans un script en PHP il est aussi possible d'utiliser le slash.
Vous pouvez donc utiliser des slash pour que vos scripts fonctionne sous Windows et sous Linux. Par exemple, le code suivant recherchera le fichier "librairie.php" qui se trouve dans le répertoire "inclure" du répertoire courant et ceci quelque soit le système d'exploitation :
<?php
require './inclure/librairie.php';
?>
Attention, Linux est sensible à la casse, donc si vous voulez inclure le fichier "librairie.php", vous pouvez mettre "librairie.php", "LIBRAIRIE.PHP" ou "Librairie.PHP" sous Windows mais vous devez absolument mettre "librairie.php" si le code doit fonctionner sous Linux.

En ce qui concerne le chemin que vous définissez pour la directive "include_path", le séparateur n'est pas le même et vous pouvez utiliser la constante PATH_SEPARATOR. Exemple de code pour inclure les fichiers qui sont dans le répertoire "classes" (plus d'informations sur la directive 'include_path'):
<?php
ini_set('include_path', '.' . PATH_SEPARATOR . dirname(__FILE__) . '/classes');
?>
lien : faq Comment définir le répertoire qui contient les fichiers à inclure ?

Comment détecter l'activation du JavaScript du côté client en PHP ?
auteur : Sergejack
Cela peut-être fait suite à la soumission d'un formulaire. Nous définissons donc un formulaire tout en rajoutant la partie qui sera activée en cas de désactivation du Javascript du côté navigateur.
Page de soumission du formulaire
<form method="post" action="page2.php">
	[...]
	<noscript>
	<input type="hidden" name="sansJS" value="1">
	</noscript>
</form>
Puis dans la page2.php, on rajoute le test suivant :
if (array_key_exists("sansJS",$_POST)) 
{
	$javaScript = FALSE;
} 
else 
{
	$javaScript = TRUE;
}
Remarque : Ce script ne prend pas immédiatement en compte la présence ou non du javascript, une première soumission est indispensable.


precedent    sommaire    suivant   

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.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com