Nichts funktioniert! Was zu tun ist???


Schnell Empfehlungen.
1. Stellen Sie sicher, dass Sie Fehlermeldungen angezeigt werden, wenn sie auftreten.
Dazu muss auf der obersten Zeile des Skripts hinzugefügt werden 2
ini_set ( 'display_errors' , 1 );
error_reporting ( E_ALL );
Obwohl in einigen Fällen ist es immer noch nicht helfen. Dann schauen Sie sich die Fehlerprotokolle des Web-Servers.
Mehr kann auf die .htaccess-Datei Zeile hinzugefügt werden
php_flag display_errors 1 Achten Sie darauf , alle Hunde zu entfernen (@) des Codes!
Wenn Apache 500 Fehler gibt - es bedeutet, dass es notwendig ist, um den Text der Fehlerprotokoll Web-Server-Fehler zu suchen.

2. Wenn Sie Probleme mit MySQL (geliefert Argument ist keine gültige Ergebnis Ressource MySQL) unter der Zeile , wo der Fehler aufgetreten ist , sollte auf jeden Fall die Anzeige mysql_error() und die Anfrage selbst - zur visuellen Inspektion und Kopieren auf dem Forum. Ich wiederhole - es notwendig ist, Antrag zurückzuziehen! Anstelle von PHP-Code, der es erzeugt.

3. Wenn die Arbeit mit Bildern eine Fehlermeldung zu sehen, seien Sie sicher , dass es notwendig ist , um diesen Inhalt zu erraten , zu deaktivieren, der Browser , dass zu sagen geht über das Bild.
Und natürlich finden Sie das Skript direkt, anstatt über das Tag <img>!

4. Wenn Probleme in der gesamten Upload in erster Linie schauen _FILES Array $ ( print_r ( $_FILES ); print_r ( $_FILES ); ). Beschreibungen der Fehler von $ _FILES [ 'filename'] [ 'error'] gibt es im Handbuch.

5. Wenn Sie Probleme bei der Interaktion zwischen dem Server und dem Client (Cookies, Session-Anfragen) - die obligatorische Austausch Sicht HTTP-Header

6. Am wichtigsten ist , das Skript ausführen, schauen Sie nicht , dass der Browser zeigt, und den HTML - Quellcode! .

eine Fehlermeldung Nach dem Empfang, können Sie es lesen und zu beheben.
Wenn nicht behandelt - zum Forum schreiben. Diese Fehlermeldung COPY, COPY und kleine - 3-5 Linien - ein Stück Code, der auf einen Fehler hinweist. Ich wiederhole - COPY! kein Gag!

Wenn Sie noch keinen Fehler finden können - lesen Sie weiter:

Einführung. Sehr wichtig.
Sie schrieb das Programm, und es funktioniert nicht.
Die Optionen, die Sie ein wenig zu sehen - oder sich hinsetzen und versuchen, geistige Anstrengung, einen Fehler zu erkennen, zum hundertsten Mal über den Code suchen oder zum Forum gehen und fragen, wo Sie den Fehler gefunden.
Am interessantesten ist, dass es eine dritte, hundert Mal besser als die ersten beiden.
Diese Methode wird als "Debug-Programme" genannt. In Englisch - debug.
er ist damit das Programm selbst, wo ihre Fehler zu zeigen.
Es ist nicht nur das, was als auf der Seite geschieht schneller fragen - so oft der einzige Weg, um das Problem zu lösen. Nur.
Ich werde jetzt schreckliche Geheimnis zu öffnen. In der Welt keine Programmierer gibt, die Code schreiben, wie Künstler auf dem Arbat - Dörfer navayal gab. Nö. Das werde ich nicht.
Der Prozess des Schreibens Programme - zyklisch: ein Stück Code schreiben - schauen, wie es funktioniert. Wenn Sie nicht arbeiten - der Suche nach Fehlern. Works - Schreiben auf.
Der einzige Weg. Es gibt keine Alternative.
Mehr als das. In den meisten Fällen völlig nutzlos zu dem Forum , Ihren Code zu werfen, und fragen - "Was ist falsch" . Das Forum ist nicht sitzen Assistenten mit Telepathen mischten. Und die Wahrsager aus den Sehern - sind es nicht. Deshalb glaube ich, was in der Theorie, kann der Fehler sein, niemand wird. Der Fehler kann nur das Master-Programm zu finden. Auf dem Server. Mit seinen Einstellungen und falsche Schreibweisen. Daher suchen Sie den Fehler - einen Platz zu finden, wo sie auftritt, die Art des Fehlers zu bestimmen - nur sich selbst sein kann. Aber zu beheben es im Forum helfen können. Wenn er nicht besitzt.

Diejenigen, die auf der Web-Programmierung von Design kommen, oder Spiele oder nichts zu tun, nur nicht wissen, dieses schreckliche Geheimnis: Haupt Programmierer Zeit nicht ausgegeben Codierung. Basic - Programmierer Zeitaufwand für die Fehlersuche und Debugging. Das ist kein Scherz. Es stimmt. Und wenn Sie sich entscheiden, die Programmierung zu tun, dann müssen Sie auf Fehler in der gleichen Art und Weise betrachten, wie auch alle anderen.
Leider ohne Programmierkenntnisse eine Menge Leute zu PHP kommen und als Folge - hat nie über das Debuggen gehört.
Und das ist das Wichtigste in der Programmierung - die Fähigkeit, nach Fehlern zu suchen.
Und Sie und ich werden sie zu suchen zu lernen.

Das Programm funktioniert nicht. Was können Sie in diesem Fall tun?

Fehlermeldungen PHP.
Die meisten Ihrer großen Assistent bei der Fehlersuche - es selbst PHP. Wenn Sie Probleme haben, wird er Sie über sie erzählen. Das heißt, zunächst einmal sollten Sie sicherstellen, dass, wenn eine Fehlermeldung - Sie ihn sehen.

Erläuterung: Zu viele Menschen wissen nicht , dass die gleiche Fehlermeldung. Die meisten dieser Menschen sind in zwei Kategorien unterteilt. Die erste besagt , dass Fehlermeldungen - es ist eine Laune der Sprachentwicklung, ärgerlich Service für den Programmierer machte , war nicht langweilig. Und loszuwerden, die Beiträge zur Verfügung mit allen Mitteln sein sollte. Die zweite Kategorie ist aus dem Schulalter und sieht keinen Sinn Fehler, sondern nur die Tatsache , nicht gewachsen. Ist PHP für Gehässigkeit Kopf Lehrer, der nicht der Fall schimpft, und abstrakt, für diesen Idiot. Das heißt, die Tatsache , dass die Fehler verursacht , diese Menschen nur negative Emotionen, sondern in dem Sinne , sie nicht einmal versuchen , einen Griff zu bekommen.

Dieses monströse Täuschung. Fehlermeldungen - es Hilfe! Dies ist eine große Hilfe für den Programmierer. Wie es zu benutzen, werden wir weiter unten sehen.

Auch der Arbeitscode, mit dem Sie 100% Vertrauen haben und die auf der nächsten Maschine funktioniert wie eine Uhr, kann eine Fehlermeldung. Die Gründe dafür können eine unendliche Menge sein. Dies ist ein häufiger Fall, da der Mangel an Dateiberechtigungen und exotisch wie das Verbot des Anbieters die häufigsten und harmlos Funktionen.

- Ihre Aufgabe ist es die Möglichkeit, den Dolmetscher zur Verfügung zu stellen, Ihnen zu sagen, wenn ein Fehler davon.
Sie müssen sicher sein, dass, wenn das Programm das Problem verursacht, dann wird dieser Fehler angezeigt.
Was vom Interpreter nicht verboten ist Sie auf den Fehler zu informieren.
Was haben Sie alle Möglichkeiten, die Fehlermeldung gebeten.

Erstens ist es notwendig, die Fehler auf dem Bildschirm angezeigt, um herauszufinden, oder in das Protokoll geschrieben. Typischerweise wird ein Haus oder ein Testserver so konfiguriert, dass der Fehler angezeigt wird. Die Arbeit als Server muss der Standort in der Öffentlichkeit so konfiguriert werden, dass Fehler nicht auf dem Bildschirm angezeigt werden (wie sie der Besucher noch nicht alles sagen, aber der Programmierer sie nicht sehen), und geschrieben in das Protokoll, wo der Programmierer sie sieht.
Wenn Sie nicht sicher sind und nicht wissen, wo sie suchen müssen, und Fehler ist dringend notwendig, zu finden, die am Anfang der Skript zwei Zeilen schreiben
ini_set ( 'display_errors' , 1 );
error_reporting ( E_ALL ^ E_NOTICE );
Diese beiden Linien machen Displaymeldungen über alle kritischen Fehler auf dem Bildschirm.
Wenn keine Fehler gedruckt wird, sollten Sie schreiben
error_reporting ( E_ALL ); Das hilft sehr von nicht vorhandenen Variablen und andere kleinere Fehler zeigt, die in der Regel ignoriert werden, die aber die Leistung des Programms auswirken können.
WICHTIG! Im Falle von Syntaxfehlern, aus offensichtlichen Gründen, mit ini_set Einstellung funktioniert nicht.
Daher ist es besser , nicht zu hoffen, und entweder fix in der php.ini (oder eine .haccess Zeile hinzufügen php_flag display_errors 1 ) oder für einen Fehler im Protokoll zu suchen.

Zweitens, stellen Sie sicher, es gibt keine Zeichen im Code '@' vor dem Funktionsnamen. Dies verhindert, dass eine Fehlermeldung. Eine feine Sache! Sie suchen nach dem Fehler-ischesch, und das gleiche Programm den Mund gestopft.

Wenn Sie sicher sind, dass es ein Fehler, aber der Bildschirm ist immer noch nicht angezeigt - ein Protokoll der Web-Server-Fehler erhalten. Normalerweise ist dies eine Datei namens error_log. Wo ist es - Sie in der Dokumentation zu suchen oder im Support-Service-Provider fragen.

Wenn Sie Probleme mit den Funktionen von MySQL haben (bereitgestellte Argument ist keine gültige Ressource MySQL result) unter der Zeile , wo der Fehler aufgetreten ist , sollte auf jeden Fall die Anzeige mysql_error() und die Anfrage selbst - zur visuellen Inspektion und Kopieren auf dem Forum.

Bei der Arbeit mit Bildern eine Fehlermeldung zu sehen, seien Sie sicher , dass es notwendig ist , um diesen Inhalt zu erraten , zu deaktivieren, der Browser , dass zu sagen geht über das Bild.
Wenn das Hochladen von Dateien an erster Stelle finden Sie im Array $ _FILES.
Wenn Sie Probleme in der Interaktion des Server und dem Client - eine obligatorische Austausch Sicht HTTP-Header
Und immer sehen nicht , dass der Browser zeigt und den HTML - Quellcode!

Zum Beispiel erscheint eine Fehlermeldung, und du hast es. Was als nächstes zu tun? Sehr einfach - zu lesen und zu korrigieren. Wenn Sie nicht genug Kenntnisse der englischen Sprache verfügen, sollten Sie entweder einen Dolmetscher verwenden oder einen sinnvollen Teil dieser Nachricht nehmen und fragen Sie Google. 90% Wahrscheinlichkeit, dass jemand mit einem solchen Fehler bereits konfrontiert sind, und Sie werden es sofort wieder zu lesen.
Wenn nicht gefunden wird, dann fragen Sie eine Frage in einem Forum, genau eine kleine (3-5 Strings) Kopieren Stück Code, wo der Fehler aufgetreten ist, genau die Linie zu Meldung im Fehler bezeichnet die Angabe, sowie - ganz wichtig! - Die tatsächliche Fehlermeldung.
Ich bin damit einverstanden, dass solche Informationen, die Sie im Forum helfen und vieles mehr zu mir?

Debugging und Fehlerbehebung in ihrem Algorithmus.
Aber es geschieht so, dass das Programm keine Fehler verursacht, aber immer noch nicht funktioniert oder nicht funktioniert, wie es sollte.
Es gibt bereits schuldig oder Algorithmus oder alle externen Faktoren.
Aber hier können Sie einen Platz finden, wo der Fehler auftritt.
Aber nur unter einer Bedingung.
Sie sind klar, was Ihr Programm macht, jede Funktion, jede Zeile darin. Denn wenn man sich vorstellen, dass man vorhersagen kann, was den Wert der Variablen in jeder Phase der Umsetzung sein sollte.
Und dann ist alles ganz einfach!
Erstens ist es notwendig, das Programm in logische Blöcke zu unterteilen.
Angenommen, das Skript die Form nimmt er empfängt und schreibt die Daten in die Datenbank. Drei Schritte! In einer von ihnen kann ein Fehler sein, dass Daten, die sich nicht in der Datenbank aufgezeichnet.
Es ist notwendig, in jedem Bereich zu überprüfen - ob alle Variablen die Bedeutung, die erwartet wird.
Das Programm ist in der Tat mit Variablen arbeiten.
Wie zu überprüfen?
Anzeige aller Variablen auf dem Bildschirm verwendet! Und visuell ihre Inhalte zu überwachen.
Nur etwas zu nur Problembereiche schreiben var_dump($var) und es stellt sich heraus , dass einige Variable leer ist!
Und Sie können auf das Forum gehen nicht auf die Frage: "Ich habe hier ist der Code zu 100 Zeilen, in denen der Fehler?" Und "Ich habe eine Funktion geschrieben haben, aber aus irgendeinem Grund, wenn ich es auf die Variablen-Adresse, alle von ihnen leer." oder "Variablen werden nicht aus der Form überführt."
Zwischen diesen beiden Möglichkeiten, Fragen zu stellen - den Abgrund.
Die erste kann man nicht in irgendeiner Weise zu helfen. Sie sind in der Tat, er wusste nicht, was dein Problem ist. Und die zweite Sie wissen schon, das Problem, und wenn er es nicht geschafft hat, es zu lösen, dann können Sie eine bestimmte Frage im Forum stellen.

Eine weitere große Hilfe Fehler bei der Nominierung Programm zu vermeiden, in error_reporting E_ALL von Anfang des Skripts.
Wenn die potenziell kritischer Fehler fangen Fehlermeldungen verhindern kann uns die Haupt, dann das Design sehen wir alle die wünschenswerte sehen - und auch Potenzial. Wenn zum Beispiel E_ALL, wenn eine nicht existierende Variable zugreift, wird PHP eine Warnung aus. Das heißt, Sie müssen nicht eine Variable angezeigt werden, um herauszufinden, dass Sie keinen Wert zugewiesen haben - PHP warnen Sie mich.

Debuggen Beispiel.
Form übertragen Kontrollkästchen mit Namen von html c_1, c_1, C_3 ... c_10
Im Skript wir versuchen, in einer Schleife zu bringen
for ( $i = 1 , $i < 11 , $i ++) {
echo
$_POST [ 'с_$i' ];
}
das Skript nichts ausgibt.
Wir beginnen zu debuggen.
Zuerst schauen Sie sich den Quellcode von HTML-Seite. ob es erfüllt die Standards?
Angenommen, Streichhölzer. Daher ist das Problem nicht einheitlich.
Überprüfen Sie dann das Skript - und ob es eine solche Variable auf die wir verweisen - Array $ _POST?
schreiben

echo '<pre>' ;
var_dump ( $_POST );
Wir sehen, dass es ein Array aller Elemente an ihrem Platz. Daher wird das Problem nicht übertragen.
Also wir Art von falschen Adresse in das Array.
appellieren wir an es so: $ _POST [ 'c_ $ i']
Es ist notwendig, zu überprüfen - und was wird 'c_ $ i'?
do echo 'c_ $ i'; und wir sehen ... nicht das, was Sie erwarten zu sehen.
Und jetzt gehen wir, oder die Dokumentation über die Zeichenfolge in php lesen (was bevorzugt wird) oder - im Forum, mit der Frage: "Warum muss ich ersetzen die Variable ihren Wert." Wie ist die Sache viel besser Sound wäre als "Ich habe ein Formular nicht funktioniert."
Ist das klar?

Es versteht sich, dass hier ein Beispiel, Unreal. Der Algorithmus von Aktionen.
In Wirklichkeit, wenn error_reporting (E_ALL); PHP würde zeigte sofort, dass der Index des Arrays Sie falsch.

Das Wichtigste - zu wissen , dass Sie erreichen wollen.
Etwa die Hälfte der Fragen in den Foren aufgrund der Tatsache, dass eine Person etwas tut ... nicht zu wissen, dass es war!
Die genialsten Frage aller Zeiten: "Ich habe alle Zeilenumbrüche aus tekstarii Basis gegessen".
Der Mann einfach nicht Mühe geben, um zu sehen, wie es wie HTML aussehen wird, die er erhalten möchte, und beschlossen, dass die Zeilenumbrüche Basis aß.
Und so in allem.
Unbelohnt Genie baut eine komplexe SQL-Abfrage, und die Frage, wie der Antrag aussehen sollte - es blinkt nur. Erstellen Sie immer eine Anfrage für Arme und laufen auf der Konsole oder phpMyAdmin! Und nach Ihrer Anfrage und auf Fehler empfangen - Sie sind willkommen, bauen sie auf PHP.
Die Arbeit mit dem Remote-Host über eine Buchse für das HTTP-Protokoll - die gleiche Sache! Zunächst lernen, wie alle Teams den Händen durchzuführen, schauen durch die Augen von Server-Antworten, und dann den Dialog in PHP zu simulieren.

Denken Sie daran - Sie nur auf eine PHP mit Streichern arbeiten! HTML-Seite, die Sie ein Skript erstellen - es ist für PHP nur einen Satz Saiten! Es macht keinen Unterschied, dass in diesem Satz - Tags img, ein Skript oder Frame. Php für Sie keine Zeilenumbrüche machen, ziehen Javascript nicht. Wenn Sie Javascript nicht wissen - nicht versuchen, ein Programm auf sie mit PHP zu erstellen.
Das Öffnen einer Verbindung zu einem Remote-Host, können Sie einen String an die Steckdose zu senden, erhalten Sie eine Zeichenfolge aus der Steckdose. Php versteht nichts in dieser Richtung, und werden Sie nicht zum Dialog führen! Es ist Sie müssen klar verstehen, dass Sie an die Buchse senden wollen, und was zu bekommen! So nehmen Sie ein Telnet-Programm, eine Verbindung zu dem gewünschten Host und versuchen, sich zuerst zu machen, was Sie php machen wollen.
Wenn Sie das Skript nicht mit Sockets laufen - laufen Telnet, um zu sehen, was passiert!
SQL-Abfrage - es ist eine Zeichenfolge. Sie sollten sich klar zu verstehen, die Anfrage in Ihrem klugen PHP-Code führt! Der Datenbankserver nicht verstehen, die Strukturen intval, Datum, mktime, und so weiter! Es ist alles PHP-Code. Das Ergebnis davon wird die richtige SQL-Abfrage-String sein. bevor Sie PHP-Code schreiben, müssen Sie sich vorstellen, wie klar wie eine SQL-Abfrage in den Ergebnissen aussehen sollte!
Wenn Sie nicht mit SQL-Abfrage 0 zeigt es auf dem Bildschirm und sehen - das Skript anhäufen!

Fazit.
Debugging - die wichtigsten Programmierer Beruf.
Debugging - die einzige beste Weg, Fehler im Programm zu finden.
Debugging besteht aus zwei Hauptkomponenten:
1. Die maximale das Beispiel zu vereinfachen. Wenn Sie nicht ein Programm ausgeführt wird, die eine Form zieht, ist es, die Daten empfängt, schreibt die Formulardaten in die Datenbank und zeigt sie wieder, dann brechen Sie das Programm in seine Bestandteile und führen auf der Bühne.
Wenn Sie keine harten Unterprogramm Definition Performance Cookies arbeiten - schreiben ersten Test in zwei Linien, um sicherzustellen, dass Sie zumindest kann und Cookie lesen stehen.
2. Die Ausgabe von Informationen zur Fehlersuche.
Überprüfen Sie den Wert der einzelnen Variablen! Jeder Rückgabewert!
Lokeyshen funktioniert nicht? Nehmen Sie ihn auf dem Bildschirm, und kopieren Sie sie in Ihrem Browser!
eine leere Zeichenfolge in die Datei geschrieben? Überprüfen Sie die Komponenten der Linie in jeder Phase seiner Erstellung und Anzeige!
Stellen Sie sicher, dass angezeigt wird? Zug in eine Datei auf der Testlinie schreiben! Tore direkt im Skript! Reduzieren Sie die Anzahl der Unbekannten!
Und immer sehen nicht , dass der Browser zeigt und den HTML - Quellcode!

Ich hoffe, dass ich zumindest ein wenig war in der Lage, die Prinzipien dieser Tätigkeit zu erklären.
Viel Glück Debuggen.

von phpfaq.ru