Heim  >  Artikel  >  Backend-Entwicklung  >  Häufig gestellte Fragen für PHP-Anfänger

Häufig gestellte Fragen für PHP-Anfänger

巴扎黑
巴扎黑Original
2016-11-12 13:06:521068Durchsuche

Die vierzehn lästigsten Probleme für PHP-Anfänger

Management-Erinnerung: Dieser Beitrag wurde oben von haowubai gepinnt (16.04.2009) [1] Variablen get, post, können nicht zwischen Seiten weitergegeben werden. Automatische globale Sitzungsvariablen sind in der neuesten PHP-Version deaktiviert. Um die übermittelten Variablen von der vorherigen Seite abzurufen, verwenden Sie $_GET['foo'], $_POST['foo'], $_SESSION['foo']. . 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】Wenn Apache die get-Methode verwendet, um chinesische Parameter unter Win zu übergeben, wird ein Fehler angezeigt:

test.php ?a=Hello&b=你好

Es wird falsch sein, Parameter zu übergeben. Hat einen internen Fehler verursacht

Lösung: "test.php?a=".urlencode(Hallo)."&b=".urlencode(Hallo)

【3 】Win Die Sitzung kann nicht normal funktionieren

php.ini default session.save_path = /tmp

Dies ist offensichtlich eine Konfiguration unter Linux. PHP kann unter Win keine Sitzungsdateien lesen und schreiben, was die Sitzung verursacht um unbrauchbar zu sein. Ändern Sie es einfach in einen absoluten Pfad, zum Beispiel session.save_path = c:windows emp

【4】Fehlermeldung anzeigen

Wenn display_errors of php.ini = On und error_reporting = E_ALL zeigt alle Fehler und Eingabeaufforderungen an. Es ist am besten, es während des Debuggens zur Fehlerkorrektur zu aktivieren. Wenn Sie die vorherige PHP-Schreibmethode verwenden, beziehen sich die meisten Fehlermeldungen auf undefinierte 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】mail() unter Windows können keine E-Mails senden

Das unter Linux konfigurierte Sendmail kann zum Versenden von E-Mails über den SMTP-Server aufgerufen werden. php.ini = ip //ip ist ein SMTP-Server ohne Verifizierungsfunktion (schwer möglich). finden Sie im Internet)

 Die beste Lösung zum Senden von E-Mails in PHP besteht darin, Socket zu verwenden, um direkt an den E-Mail-Server der anderen Partei zu senden, ohne den Server weiterzuleiten.

【6】Wenn das Passwort für die Erstinstallation von MySQL nicht festgelegt ist, sollten Sie update mysql.user set password="yourpassword" wobei user="root" verwenden, um das Passwort zu ändern

【7】Header bereits gesendet

Dieser Fehler tritt normalerweise auf, wenn Sie HEADER verwenden. Dies kann mehrere Gründe haben: Sie haben PRING oder ECHO verwendet, bevor Sie HEADER verwenden. Vor Ihrer aktuellen Datei befindet sich eine Leerzeile. Möglicherweise haben Sie eine Datei eingebunden. Dieser Fehler tritt auch auf, wenn am Ende der Datei oder der Ausgabe eine Leerzeile steht. !

【8】Keine Änderung nach Änderung von php.ini

Starten Sie den Webserver wie IIS, Apache usw. neu, dann werden die neuesten Einstellungen übernommen.

[9] PHP ist auf 00 installiert (die Installationsmethode von ISAPI wird von Experten um Rat gefragt)

PHPs php isapi.dll scheint einige Konflikte mit 00 zu haben, und das kann nur so sein im CGI-Modus installiert

Schritt 1: Installieren Sie zunächst ein Installationsprogramm unter www.php.net: php -..-installer.exe. Sie können auch die neueste Version finden und php - installieren. .-installer.exe, bevor Sie sicherstellen, dass IIS6.0 gestartet und zugänglich ist. Gehen Sie nach der Installation zur Standardwebsite -> Anwendungskonfiguration.

Schritt 2: Klicken Sie auf Webservice-Erweiterung --> Erstellen Sie eine 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 5: Einfach bestätigen!

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 erhalten werden kann.

【11】Der Unterschied zwischen include und require

Es gibt keinen großen Unterschied zwischen den beiden. Wenn die einzuschließende Datei nicht vorhanden ist, werden Sie durch include darauf hingewiesen und dann mit der Ausführung fortgefahren Die folgende Anweisung und require führt zu einem schwerwiegenden Fehler und wird beendet.

Laut meinen Tests werden sie unter der Win-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 eine Datei nicht mehrfach eingebunden werden soll, können Sie include_once oder require_once## verwenden, um Dokumentdaten zu lesen und zu schreiben.

function r($file_name) {
$filenum=@fopen($file_name,"r");
$file_data=@fread ($filenum,filesize($file_name));
@fclose($filenum);
return $file_data;}
function w($file_name,$data,$method="w" ){
$filenum=@fopen($file_name,$method);
flock($filenum,LOCK_EX);
$file_data=fwrite($filenum,$data); filenum);
return $file_data;
【12】Der Unterschied zwischen isset() und empty()

Beide werden zum Testen von Variablen verwendet, aber isset() testet, ob einer Variablen ein Wert zugewiesen wurde, während empty() testet, ob eine Variable, der ein Wert zugewiesen wurde, leer ist.

Wenn einer Variablen kein Wert zugewiesen ist, darf sie in PHP referenziert werden, aber es wird ein Hinweis angezeigt, dass, wenn einer Variablen ein Nullwert zugewiesen wird, $foo="" oder $foo=0 ist oder $foo= false, dann gibt empty($foo) true zurück und 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】MySQL-Abfrageanweisung enthält Schlüsselwörter

 Wenn PHP manchmal MySQL abfragt Der MySQL-Tabellenname oder der MySQL-Spaltenname enthält Schlüsselwörter, und dann treten Fehler in der Abfrage auf. 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 „Bestellung“

【14 】Die Methode zum gleichzeitigen Hochladen mehrerer Dateien über das HTTP-Protokoll

Es gibt zwei Ideen, die zwei Implementierungen derselben Methode sind. Die spezifischen Verfahren müssen von Ihnen selbst entworfen werden.

Richten Sie mehrere Dateieingabefelder im Formular ein und benennen Sie sie mit Arrays wie folgt:

<form action="" method=post>
<input type=file name= usefile[]>
<input type=file name=usefile[]>
<input type=file name=usefile[]>
</form>
Auf diese Weise machen Sie es auf der serverseitig Die folgenden Tests:

echo "<pre>";
print_r($_FILES);
echo "</pre>"; >
<form action="" method=post>

<input type=file name=usefile_a>

<input type=file name=usefile_b>
< input type=file name=usefile_c>
</form>
Führen Sie den gleichen Test auf der Serverseite durch:

echo "<pre>";

print_r($_FILES);

echo "</pre>". ";

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Dezimal zu binärNächster Artikel:Dezimal zu binär