Accueil
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
logo
Sommaire > Généralités
12.1. Présentation de PHP (7)
                Qu'est-ce que PHP ?
                Comment fonctionne PHP ?
                Quels sont les pré requis pour pouvoir utiliser PHP ?
                Faut-il se soucier de la compatibilité avec les différents navigateurs ?
                Je cherche un bon livre sur le PHP, comment bien choisir ?
                Le code PHP est-il visible pour tous ?
                Pourquoi mon code PHP n'est-il pas interprété ?
12.2. Installation - Configuration (3)
                Comment s'installe PHP ?
                Où s'installe PHP ?
                Où trouver toutes les options de configuration de PHP ?
12.3. php.ini (13)
                À quoi sert le fichier php.ini ?
                Où trouver le fichier php.ini ?
                Comment savoir si le fichier php.ini a été pris en compte ?
                Comment modifier la valeur d'une option de configuration ?
                Comment interdire certaines fonctions PHP ?
                Comment désactiver certaines classes ?
                Qu'est-ce que le Safe Mode ?
                Comment changer le temps limite d'exécution de mes scripts ?
                Comment connaître la valeur d'une option de configuration du php.ini ?
                Comment connaître la version de PHP et les modules chargés ?
                Comment connaître les fonctions disponibles chez votre hébergeur ?
                Comment exécuter un script PHP à chaque début/fin de chargement de fichier ?
                Comment définir le répertoire qui contient les fichiers à inclure ?
12.4. Chemins - URL (5)
                Comment définir des chemins vers des fichiers qui fonctionnent avec Linux et Windows ?
                Comment créer une arborescence virtuelle ?
                Comment vérifier la validité d'une URL ?
                Comment accéder à un serveur depuis l'extérieur ?
                Comment récupérer l'URL d'une page en cours d'exécution ?
12.5. Syntaxe (5)
                Comment afficher du texte ?
                Comment commenter mon code ?
                Comment concaténer des chaînes des caractères ?
                Comment faire une boucle ?
                Comment mettre du JavaScript dans un script PHP ?
12.6. Utiliser la documentation officielle (4)
                Où se trouve la documentation officielle ?
                Comment accéder directement à la documentation d'une fonction ?
                Comment accéder directement aux principaux chapitres ?
                Les fonctions périmées
        Comment mettre en cache des données ?
        Comment générer un identifiant aléatoire et unique ?
        Pourquoi mon application ne fonctionne plus sans erreur avec EasyPHP 1.7 ?
        Peut-on pré-compiler les scripts PHP ?
        Comment alterner la couleur des tr dans un tableau ?
        Peut-on piloter des logiciels ou des périphériques installés chez le client (douchette code-barre, scanner, etc) ?
        Comment récupérer des informations sur la configuration du client (logiciels installés, RAM, place disque...) ?
        Comment rendre mon projet indépendant de la librairie principale (PEAR ou Source) ?



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 générer un identifiant aléatoire et unique ?
auteurs : Gérard Ernaelsten, Thes32, dourouc05
Pour générer un identifiant unique, il vous faut uriliser la fucntion uniqid(). Cela créera un identifiant unique de 13 caractères.
$id_unique = uniqid();
 
echo $id_unique;//4d6f4e84d6dd2
Vous pouvez préfixer votre identifiant.
$id_unique = uniqid('Mon_Unique_id_');
 
echo $id_unique;//Mon_Unique_id_4d6f4ee3e9492
Vous pouvez passer de 13 à 23 caractères.
$id_unique = uniqid(NULL,true);
 
echo $id_unique;//4d6f4f608ff658.68812147

$id_unique = uniqid('mon_id_a_moi',true);
 
echo $id_unique;//mon_id_a_moi4d6f4f913361c6.01483455
Pour augmenter le degré d'unicité de la question, on peut utiliser les fonctions de hashage MD5 ou SHA1, SHA1 produisant des empreintes plus grandes. On peut aussi utiliser la fonction mt_rand() pour changer la graine utilisée.

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

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 cependant des logiciels d'encodage ou de cryptage, mais ils sont payants (ioncube.com, Zend, etc.). L'un de ces programmes est une extension PHP : bcompiler.

lien : fr Tutoriels : Protéger son code source PHP avec bcompiler, par Maxime Ohayon

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++;
}
À utiliser après avoir déclaré 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>
            

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 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.


Comment rendre mon projet indépendant de la librairie principale (PEAR ou Source) ?
auteur : Sébastien D.
Comment envoyer mes projets sur un autre serveur sans pour autant dépendre de la librairie installée avec PEAR ou manuellement avec la source.

Nous pouvons faire une sorte de sandbox maison (Bac à sable) :

> symfony project:freeze [votre/repertoire/symfony]
Sinon vous pouvez avoir recours à la solution manuelle :

1. Duplication des fichiers de librairies
Rendez-vous dans le répertoire ou à été installé Symfony de base : dans le répertoire PEAR si vous avez installé PEAR ou dans le répertoire de la source si avez télécharger la source manuellement.
Ensuite copiez le contenu du répertoire "symfony/lib" vers le répertoire "~monprojet/lib"

2. Configuration d'accès aux librairies
Maintenant que notre répertoire librairie à été placé dans notre projet nous n'aurons plus qu'à modifier l'accès à celle-ci.

Modifiez ensuite le fichier "config/ProjectConfiguration.class.php" comme ci-dessous:
Modifier à la ligne 2
<?php
 
require_once dirname(__FILE__).'/../lib/autoload/sfCoreAutoload.class.php';
//...
//...
?>


Consultez les autres F.A.Q.


Les sources présentés sur cette page sont libres 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. Tous 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érêts. 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