[1] Les variables get, post et session ne peuvent pas être transférées entre les pages. Dans la dernière version de PHP, les variables globales automatiques sont désactivées, donc pour obtenir les variables soumises à partir de la page précédente, utilisez $_GET['foo'], $. _POST ['foo'],$_SESSION['foo'] pour obtenir. Bien entendu, vous pouvez également modifier les variables globales automatiques pour qu'elles soient activées (php.ini est remplacé par register_globals = On) ; compte tenu de la compatibilité, il vaut mieux se forcer à se familiariser avec la nouvelle méthode d'écriture.
[2] L'utilisation de la méthode get pour transmettre les paramètres chinois à Apache2 sous Win32 provoquera une erreur :
test.php?a=Bonjour&b=Bonjour
La transmission des paramètres provoquera une erreur interne Solution : "test.php?a=".urlencode. ( Bonjour)."&b=".urlencode(Bonjour)
.............
[3] La session sous win32 ne fonctionne pas correctement
php.ini default session.save_path = /
tmp Évidemment. est une configuration sous Linux. PHP sous win32 ne peut pas lire et écrire le fichier de session, ce qui rend la session inutilisable. Changez-le simplement en chemin absolu. Par exemple, session.save_path = c:windows emp
[4] Afficher un message d'erreur
lorsque. php.ini Lorsque display_errors = On et error_reporting = E_ALL, toutes les erreurs et invites seront affichées. Il est préférable de l'activer pendant le débogage pour corriger les erreurs. Si vous utilisez la méthode d'écriture PHP précédente, la plupart des messages d'erreur sont indéfinis. variables. Il y aura une invite lorsqu'une variable est appelée avant qu'une valeur ne lui soit attribuée. La solution est de la détecter ou de la protéger.
Par exemple, pour afficher $foo, vous pouvez if(isset($foo)) echo $foo ou echo @$foo
[5] mail() ne peut pas envoyer d'e-mails sous Win32.
Sendmail configuré sous Linux peut envoyer, mais vous devez appeler. smtp sous win32. Le serveur sert à envoyer des emails, modifier le SMTP de php.ini = ip //ip est un serveur smtp sans fonction de vérification (difficile à trouver en ligne
La meilleure solution pour envoyer des emails en php est d'utiliser socket
).pour envoyer directement au serveur de messagerie de l'autre partie au lieu du serveur de transfert.
[6] Si le mot de passe n'est pas défini pour l'installation initiale de MySQL, vous devez utiliser update mysql.user set password="yourpassword" où user="root" pour modifier le mot de passe.
[7]
L'erreur d'en-tête déjà envoyée se produit généralement. lorsque vous utilisez HEADER Il peut y avoir plusieurs raisons : 1. Vous faites PRING ou ECHO avant d'utiliser HEADER 2. Il y a une ligne vide devant votre fichier actuel 3. Vous avez peut-être INCLUS un fichier et il y a une ligne vide à la fin. du fichier ou cette erreur se produira dans la sortie. !
【8】Après avoir modifié php.ini et qu'il n'y a aucun changement,
redémarrez le serveur Web, tel que IIS, Apache, etc., puis les derniers paramètres seront appliqués.
[9] PHP est installé en 2003 (j'aimerais demander conseil à des experts sur la façon d'installer ISAPI).
Le php4isapi.dll de PHP4 semble avoir des conflits avec 2003. Il ne peut être installé qu'en mode CGI
. Téléchargez d'abord un programme d'installation sous www.php.net . I Ce qui est installé est : php-4.2.3-installer.exe. Vous pouvez également trouver la dernière version. Assurez-vous que votre IIS6.0 est démarré et accessible avant d'installer php-. 4.2.3-installer.exe. Après l'installation, accédez au site Web par défaut -> Configuration de l'application.
Étape 2 : Cliquez sur Extension de service Web -> Nouvelle extension de service Web.
Étape 3 : Extension ->php, puis ajoutez
Étape 4 : Recherchez le chemin d'accès à php.exe et ajoutez-le.
Cinquième étape : confirmez et c'est tout !
Étape 6 : Sélectionnez l'extension du service PHP et cliquez sur Autoriser.
【10】Parfois, l'instruction SQL ne fonctionne pas et l'opération de la base de données échoue. Le moyen le plus simple de déboguer est de faire écho à la phrase SQL et de voir si la valeur de la variable peut être obtenue.
[11]Il n'y a pas beaucoup de différence entre
include et require
. Si le fichier à inclure n'existe pas, include affiche une notification, puis continue d'exécuter l'instruction suivante, require affiche une erreur fatale et se termine.D'après mes tests, sous la plate-forme win32, ils sont d'abord inclus puis exécutés, il est donc préférable de ne pas avoir d'instructions include ou require dans les fichiers inclus, ce qui entraînerait une confusion dans les répertoires. Peut-être que la situation est différente sous *nux, je ne l'ai pas encore testé.
Si vous ne souhaitez pas qu'un fichier soit inclus plusieurs fois, vous pouvez utiliser include_once ou require_once## pour lire et écrire les données du document.
fonction r($nom_fichier) {
$filenum=@fopen($file_name,"r ");
@flock($filenum,LOCK_SH);
$file_data=@fread($filenum,filesize($file_name ));
@fclose($filenum);
renvoie $file_data ;
}
fonction w($file_name,$data,$method="w"){
$filenum=@fopen($file_name,$method );
troupeau ($ filenum, LOCK_EX);
$file_data=fwrite($filenum,$data);
fclose($filenum);
renvoie $file_data ;
}
[12] La différence entre isset() et empty()
est que les deux sont utilisés pour tester des variables, mais isset() teste si une variable a reçu une valeur, tandis que empty() teste si une variable à laquelle une valeur a été assignée. la valeur est vide.
Si une variable est référencée en PHP sans qu'une valeur lui soit attribuée, cela est autorisé, mais il y aura une invite de notification. Si une variable reçoit une valeur nulle, $foo="" ou $foo=0 ou $foo=false, puis vide ($ foo) renvoie vrai, isset ($ foo) renvoie également vrai, ce qui signifie que l'attribution d'une valeur nulle ne désenregistrera pas une variable.
Pour désenregistrer une variable, vous pouvez utiliser unset($foo) ou $foo=NULL
[13] L'instruction de requête mysql contient des mots-clés
lorsque php interroge mysql, parfois le nom de la table mysql ou le nom de la colonne contient des mots-clés. sera Il y a des erreurs. Par exemple, si le nom de la table est order, une erreur se produira lors de la requête. Le moyen le plus simple consiste à ajouter `[au-dessus de la touche de tabulation] au nom de la table ou du nom de la colonne dans l'instruction SQL pour le distinguer, par exemple, sélectionnez. *De `order`
[14] Téléchargement unique via HTTP Il existe deux idées pour la méthode des fichiers multiples
, qui sont deux implémentations de la même méthode. Les procédures spécifiques doivent être conçues par vous-même.
1. Définissez plusieurs zones de saisie de fichiers dans le formulaire et nommez-les dans des tableaux, comme suit :
<form action="" method=post>
<type d'entrée=nom de fichier=usefile[]>
<type d'entrée=nom de fichier=usefile[]>
<type d'entrée=nom de fichier=usefile[]>
</form>
De cette façon, faites le test suivant côté serveur :
echo "<pre>";
print_r($_FILES);
echo "</pre>";
2. Définissez plusieurs zones de saisie de fichiers dans le formulaire, mais avec des noms différents, comme suit :
<form action="" method=post>
<type d'entrée=nom de fichier=usefile_a>
<type d'entrée=nom de fichier=usefile_b>
<type d'entrée=nom de fichier=usefile_c>
</form>
Faites le même test côté serveur :
echo "<pre>";
print_r($_FILES);
echo "</pré>";