[1] Variablen get, post und session können nicht zwischen Seiten übertragen werden. In der neuesten PHP-Version sind automatische globale Variablen deaktiviert. Um die übermittelten Variablen von der vorherigen Seite abzurufen, verwenden Sie $_GET['foo'], $ _POST ['foo'],$_SESSION['foo'] zum Abrufen. Natürlich können Sie auch die automatischen globalen Variablen so ändern, dass sie aktiviert sind (php.ini wird in register_globals = On geändert). Aus Kompatibilitätsgründen ist es besser, sich mit der neuen Schreibmethode vertraut zu machen.
[2] Die Verwendung der get-Methode zur Übergabe chinesischer Parameter an Apache2 unter Win32 führt zu einem Fehler:
test.php?a=Hello&b=Hello.
Die Übergabe von Parametern führt zu einem internen Fehler. Lösung: „test.php?a=".urlencode (Hallo)."&b=".urlencode(Hallo)
.............
[3] Die Sitzung unter Win32 funktioniert nicht richtig.
php.ini default session.save_path = /
tmp Offensichtlich ist eine Konfiguration unter Linux. PHP kann die Sitzungsdatei nicht lesen und schreiben, wodurch die Sitzung unbrauchbar wird. Zum Beispiel: session.save_path = c:windows emp
[
4] Fehlermeldung anzeigen
php.ini Wenn display_errors = On und error_reporting = E_ALL, werden alle Fehler und Eingabeaufforderungen angezeigt. Es ist am besten, es während des Debuggens zur Fehlerkorrektur zu aktivieren. Wenn Sie die vorherige PHP-Schreibmethode verwenden, sind die meisten Fehlermeldungen undefiniert Variablen. Wenn eine Variable aufgerufen wird, wird eine Eingabeaufforderung angezeigt, bevor ihr ein Wert zugewiesen wird. Die Lösung besteht darin, sie zu erkennen oder abzuschirmen.
Um beispielsweise $foo anzuzeigen, können Sie if(isset($foo)) echo $foo oder echo @$foo
[5] verwenden. Mail()
kann unter Win32 keine E-Mails senden, aber Sie müssen anrufen SMTP unter Win32. Der Server wird zum Senden von E-Mails verwendet. Ändern Sie das SMTP von php.ini = ip. // IP ist ein SMTP-Server ohne Überprüfungsfunktion (online schwer zu finden).
Die beste Lösung zum Senden von E-Mails in PHP ist die Verwendung von Socket um direkt an den E-Mail-Server der anderen Partei zu senden, anstatt an den Weiterleitungsserver.
[6] Wenn das Passwort für die Erstinstallation von MySQL nicht festgelegt ist, sollten Sie update mysql.user set password="yourpassword" verwenden, wobei user="root" verwendet wird, um das Passwort zu ändern.
[7]
Der Fehler „Header bereits gesendet“ tritt normalerweise auf Wenn Sie HEADER verwenden, kann dies mehrere Gründe haben: 1. Sie haben PRING oder ECHO verwendet, bevor Sie HEADER verwenden. 2. Vor Ihrer aktuellen Datei befindet sich eine Leerzeile. 3. Möglicherweise haben Sie eine Datei mit INCLUDE versehen, und am Ende befindet sich eine Leerzeile der Datei oder dieser Fehler tritt in der Ausgabe auf. !
【8】 Nachdem Sie php.ini geändert haben und es keine Änderung gibt,
starten Sie den Webserver wie IIS, Apache usw. neu, dann werden die neuesten Einstellungen übernommen.
[9] PHP ist auf 2003 installiert (ich würde gerne Experten um Rat fragen, wie man ISAPI installiert).
Die php4isapi.dll von PHP4 scheint einige Konflikte mit 2003 zu haben. Sie kann nur im CGI-Modus installiert werden
. Laden Sie zunächst ein Installationsprogramm unter www.php.net herunter. Es wird Folgendes installiert: php-4.2.3-installer.exe. Stellen Sie sicher, dass Ihr IIS6.0 gestartet und zugänglich ist, bevor Sie PHP installieren. 4.2.3-installer.exe. Gehen Sie nach der Installation zur Standardwebsite -> Anwendungskonfiguration.
Schritt 2: Klicken Sie auf Webservice-Erweiterung -> Neue Webservice-Erweiterung.
Schritt 3: Erweiterung -> php, dann hinzufügen.
Schritt 4: Suchen Sie den Pfad zu php.exe und fügen Sie ihn hinzu.
Schritt fünf: Bestätigen und fertig!
Schritt 6: Wählen Sie die PHP-Diensterweiterung aus und klicken Sie auf Zulassen.
【10】Manchmal funktioniert die SQL-Anweisung nicht und der Datenbankvorgang schlägt fehl. Der einfachste Weg zum Debuggen besteht darin, den SQL-Satz zu wiederholen und zu prüfen, ob der Wert der Variablen abgerufen werden kann.
[11]Es gibt keinen großen Unterschied zwischen
include und require
. Wenn die einzuschließende Datei nicht vorhanden ist, wird bei der Ausführung der folgenden Anweisung ein schwerwiegender Fehler angezeigt und der Vorgang beendet.Nach meinen Tests werden sie unter der Win32-Plattform zuerst eingebunden und dann ausgeführt. Daher ist es am besten, keine include- oder require-Anweisungen in den eingebundenen Dateien zu haben, da dies zu Verzeichnisverwirrungen führen würde. Möglicherweise ist die Situation unter *nux anders, ich habe es noch nicht getestet.
Wenn Sie nicht möchten, dass eine Datei mehrfach eingebunden wird, können Sie include_once oder require_once## verwenden, um Dokumentdaten zu lesen und zu schreiben.
Funktion r($file_name) {
$filenum=@fopen($file_name,"r ");
@flock($filenum,LOCK_SH);
$file_data=@fread($filenum,filesize($file_name ));
@fclose($filenum);
return $file_data;
}
Funktion w($file_name,$data,$method="w"){
$filenum=@fopen($file_name,$method );
flock($filenum,LOCK_EX);
$file_data=fwrite($filenum,$data);
fclose($filenum);
return $file_data;
}
[12] Der Unterschied zwischen isset() und empty()
besteht darin, dass beide zum Testen von Variablen verwendet werden, isset() jedoch testet, ob einer Variablen ein Wert zugewiesen wurde, während empty() testet, ob einer Variablen ein Wert zugewiesen wurde Wert ist leer.
Wenn in PHP auf eine Variable verwiesen wird, ohne dass ihr ein Wert zugewiesen wurde, ist dies zulässig, es wird jedoch eine Hinweismeldung angezeigt. Wenn einer Variablen ein Nullwert zugewiesen wird, $foo="" oder $foo=0 oder $foo=false, dann gibt empty($ foo) true zurück, isset($foo) gibt ebenfalls true zurück, was bedeutet, dass durch die Zuweisung eines Nullwerts die Registrierung einer Variablen nicht aufgehoben wird.
Um die Registrierung einer Variablen aufzuheben, können Sie unset($foo) oder $foo=NULL verwenden
. [13] Die MySQL-Abfrageanweisung enthält Schlüsselwörter.
Wenn PHP MySQL abfragt, enthält die Abfrage manchmal Schlüsselwörter Es liegen Fehler vor. Wenn der Tabellenname beispielsweise „order“ ist, tritt während der Abfrage ein Fehler auf. Der einfache Weg besteht darin, „[über der Tabulatortaste]“ zum Tabellennamen oder Spaltennamen in der SQL-Anweisung hinzuzufügen, um ihn beispielsweise auszuwählen * aus „order“
[14] Einmaliger Upload über das HTTP-Protokoll. Es gibt zwei Ideen für die Methode „Mehrere Dateien“
, bei denen es sich um zwei Implementierungen derselben Methode handelt. Die spezifischen Verfahren müssen von Ihnen selbst entworfen werden.
1. Legen Sie mehrere Dateieingabefelder im Formular fest und benennen Sie sie wie folgt in Arrays:
<form action="" method=post>
<Eingabetyp=Dateiname=Verwendungsdatei[]>
<Eingabetyp=Dateiname=Verwendungsdatei[]>
<Eingabetyp=Dateiname=Verwendungsdatei[]>
</form>
Führen Sie auf diese Weise den folgenden Test auf der Serverseite durch:
echo „<pre>“;
print_r($_FILES);
echo "</pre>";
2. Legen Sie mehrere Dateieingabefelder im Formular fest, jedoch mit unterschiedlichen Namen, wie folgt:
<form action="" method=post>
<Eingabetyp=Dateiname=usefile_a>
<Eingabetyp=Dateiname=usefile_b>
<Eingabetyp=Dateiname=usefile_c>
</form>
Führen Sie den gleichen Test auf der Serverseite durch:
echo "<pre>";
print_r($_FILES);
echo „</pre>“;