{{tag>langage interprété programmation web internet}} ======PHP===== {{ http://static.php.net/www.php.net/images/php.gif}} =====Installation sous Windows===== ====Installer apache2==== * lancer l'exe simplement et suivre la procédure d'installation, très intuitive Dans ''httpd.conf'' : * mettre à jour le ''DocumentRoot'' et ses règles '''' * ajouter le log pour les stats ''CustomLog D:/pteu.ath.cx.log combined'' * ajouter des alias ====Installer PHP==== * dézipper php-x.y.z-Win32.zip dans ''c:\program files'' par ex * copier ''php.ini-recommanded'' dans ''c:\Windows\'' ; le renommer en ''php.ini'' dans ''php.ini'' : * 'extension_dir' indique le rep d'install\extensions (ex: ''c:\php\extensions'') NB : on remarquera les antislash dans ''httpd.conf'' * dans la section "Dynamic Shared Object (DSO) Support" : LoadModule php4_module "C:/Program Files/php-4.4.1-Win32/sapi/php4apache2.dll" AddType application/x-httpd-php .php .php3 .php4 PHPIniDir "C:/Program Files/php-4.4.1-Win32" * dans '''' : ''DirectoryIndex index.html index.php'' * copier ''php4ts.dll'' dans le mm repertoire que ''php4apache.dll'' càd ''php/sapi/'' (ou dans ''%SYSTEMROOT%'' ou dans ''apache/'') ====Ressources==== * http://www.asp-php.net/tutorial/asp-php/installation-apache2.php =====Envoyer un fichier via un formulaire===== ====Configuration de PHP==== Il est nécessaire de vérifier les options suivantes dans le fichier de conf de php (souvent ''/etc/php.ini'') ; celles-ci sont par défaut sous NetBSD : * ''file_uploads = On'' pour autoriser l'envoi de fichiers * ''upload_tmp_dir = /tmp'' définit le répertoire temporaire accueillant les fichiers uploadés * ''upload_max_filesize = 2M'' définit la taille maximale autorisée pour les fichiers * ''post_max_size = 8M'' taille maximum des données d'un formulaire ====Le formulaire en question====
" enctype="multipart/form-data">
Le champ ''MAX_FILE_SIZE'' permet de limiter la taille du fichier. ====Le traitement==== On utilise la variable superglobale ''$_FILES''
qui affiche le contenu du tableau : Array ( [fichier] => Array ( [name] => toto.txt [type] => text/plain [tmp_name] => /tmp/php00104b [error] => 0 [size] => 38 ) ) Du coup, on peut tester le code d'erreur de l'envoi : * ''0'' (ou ''UPLOAD_ERR_OK'') : pas d'erreur * ''1'' (''UPLOAD_ERR_INI_SIZE'') : le fichier dépasse la limite autorisée dans le ''php.ini'' * ''2'' (''UPLOAD_ERR_FORM_SIZE'') : le fichier dépasse la limite fixée dans le formulaire HTML * ''3'' (''UPLOAD_ERR_PARTIAL'') : upload interrompu * ''4'' (''UPLOAD_ERR_NO_FILE'') : fichier de taille nulle On peut changer le répertoire du fichier uploadé grâce à la fonction ''move_uploaded_file(SRC, DEST)''. =====Divers===== * si on rencontre de pb de header, il faut règler le buffer de sortie : éditer ''php.ini'' et modifier : output_buffering = 4096