informatique:logiciels:php
Table of Contents
langage interprété programmation web internet
PHP
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<Directory “D:/htdocs”>
- 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
dansc:\Windows\
; le renommer enphp.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
<IfModule mod_dir.c>
:DirectoryIndex index.html index.php
- copier
php4ts.dll
dans le mm repertoire quephp4apache.dll
càdphp/sapi/
(ou dans%SYSTEMROOT%
ou dansapache/
)
Ressources
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 fichiersupload_tmp_dir = /tmp
définit le répertoire temporaire accueillant les fichiers uploadésupload_max_filesize = 2M
définit la taille maximale autorisée pour les fichierspost_max_size = 8M
taille maximum des données d'un formulaire
Le formulaire en question
<form name="formTest" method="post" action="<?echo $_SERVER["PHP_SELF"];?>" enctype="multipart/form-data"> <input type="hidden" name=MAX_FILE_SIZE value="2048" /> <input type="file" name="fichier" /> <input type="submit" value="envoyer" /> </form>
Le champ MAX_FILE_SIZE
permet de limiter la taille du fichier.
Le traitement
On utilise la variable superglobale $_FILES
<pre><? print_r($_FILES); ?></pre>
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
(ouUPLOAD_ERR_OK
) : pas d'erreur1
(UPLOAD_ERR_INI_SIZE
) : le fichier dépasse la limite autorisée dans lephp.ini
2
(UPLOAD_ERR_FORM_SIZE
) : le fichier dépasse la limite fixée dans le formulaire HTML3
(UPLOAD_ERR_PARTIAL
) : upload interrompu4
(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
informatique/logiciels/php.txt · Last modified: 2013/10/14 20:45 by 127.0.0.1