Wie versprochen
§ Rechtliches
Pornografische, rechtlich fragwürdige, sexistische oder sonstwie beleidigende Postings fliegen raus. (Das steht bereits in den
Forumsregeln).
Beiträge mit Rechtsfragen werden nicht erörtert (→
Anmerkungen zu Rechtsfragen).
1. Allgemeiner Umgang Respektiere die Forenmitglieder:- Sei höflich, selbst wenn es andere nicht sind
Es gibt auch im Internet allgemeingültige Umgangsformen, zu denen auch die richtige Art zu fragen und die Form zählt. [1]
- Toleriere Fehler anderer
- Sei geduldig, wir alle haben keine Zeit
Wenn Du es eilig hast, hast Du zu spät gepostet.
- Sieh es nicht als selbstverständlich an, dass Dir jemand hilft und uneigennützig sein Wissen mit Dir teilt.
- Verschwende nicht die Zeit anderer (→ Form & Inhalt, → Hilfe zur Selbsthilfe)
Eine verbreitete Form sind sogenannte Cross/Multi-Postings. Ohne Nennung eines guten Grundes wirst Du Dir damit den Unmut anderer Forenbenutzer aufladen und die Frage wandert in den Trash. Ein Link auf den Parallelthread ist das Mindeste (→ Anmerkungen zu Multipostings).
2. Hilfe zur Selbsthilfe
DIE RICHTIGE REIHENFOLGE
Code:
|Problem| → Problem analysieren → Informieren/Recherchieren
(wenn möglich)
→ Umsetzen/Problem fixen → |Lösung|
(sonst)
→ Posten
DIE RICHTIGE REIHENFOLGE II
Code:
Posten → Abwarten → |Antwort| → Vollständig lesen, Verstehen
(nötigenfalls wiederholt)
→ Nachfragen → |Antwort| → Vollständig lesen, Verstehen
(sonst)
→ Umsetzen → |Lösung| → Rückmeldung
PROBLEMANALYSE: FEHLERMELDUNGEN
Viele Anfänger sehen in Fehlermeldungen ein Ärgernis und nicht eine Hilfestellung für den Programmierer. Du solltest es versuchen.
- Setze error_reporting auf E_ALL | E_STRICT [2]
- Vermeide den @ Operator
Es gibt kaum sinnvolle Gründe, einen Fehler zu unterdrücken.
- Versuche Fehlermeldungen zu verstehen
Lies den Text und bringe die Meldung in einen kontextuellen Zusammenhang zu Deinem Quellcode
- Suche die Fehlerstellen
Fehlermeldungen enthalten Angaben zu Script und Zeilennummer, in dem sie aufgetreten sind.
Parse Errors beziehen sich oft auf frühere Zeilen, da sie üblicherweise von Fehlenden Zeichen verursacht werden, die Anweisungen (Semikolons, <?php oder ?>) oder andere Syntaxbestandteile (Klammern, Stringbegrenzer) abschließen.
PROBLEMANALYSE: DEBUGGING
Viele Anfänger übersehen das Debugging als eine der einfachsten Problemlösungsstrategien. Gerade wenn trotz Fehlfunktion keine Fehler auftreten, gibt es einfache Analyse-Ansätze. Noch relevanter wird Debugging, wenn logische Fehler beseitigt werden müssen.
(→ grundlegende Debuggingtechniken)
- Stelle fest, an welcher Stelle das Programm anfängt, unerwartete Ergebnisse zu produzieren
- Gib an diesen Schlüsselstellen gezielt Daten aus:
- Meldungen, um bspw. das Durchlaufen eines bedingten Bereichs zu überprüfen
- Variablen. Hier leisten print_r und var_dump gute Dienste
- Professionelles Debugging
Fortgeschrittene Nutzer stellen sich bestimmte Analysefunktionen als Klasse oder Funktionssammlung zusammen. Damit lassen sich Meldungen und Dumps leichter optisch aufarbeiten und mit sinnvollen Angaben wie Zeilennummer und Backtrace ergänzten. [3]
Andere nutzen spezielle Optionen ihres PHP Editors.
- Bestimmte Operationen wie Datenbank-Zugriffe produzieren eigene Fehlermeldungen
Das übliche Vorgehen für einen fehlerhaften Datenbankzugriff kann deshalb bspw. so aussehen:
- Ausgabe des Abfrage Ergebnisses
- Abfrage einer evtl. SQL Fehlermeldung
- Ausgabe und Analyse der DB Verbindungskennung und des SQL Statements
RECHERCHE
Vor dem Posten solltest Du versuchen, möglichst viele Informationen zur Problemstellung zu erlangen und wenn möglich eine eigene Lösung (oder einen Ansatz dazu) zu finden.
- Google und Co
Suchmaschinen geben auf die meisten Fehlermeldungen bereitwillig Antworten
- Nutze das PHP Manual, um Hilfe zu Grundlagen und konkreten Funktionen zu erfahren
Beachte die User-Kommentare. Sie liefern wertvolle Tipps zu den Untiefen der jeweiligen PHP Funktionen.
Entsprechende Referenzen gibt es auch für andere Programmier- und Scriptsprachen. [4]
- Nutze die Forensuche
Die Suchfunktion dieses Forums kann für viele Probleme bereits einen alten Thread zu Tage fördern.
3. Form & Inhalt - Keine Volkshochschule
Vom Tutorials Forum abgesehen, kann und will die php.de Community keine Grundlagen vermitteln, sondern bei konkreten Fragen Hilfestellung geben. Als blutiger Anfänger nutze bitte eines der zahlreichen Tutorials in den Weiten des Netzes. [5]
- Poste im richtigen Forum!
Du solltest bereits ansatzweise herausgefunden haben, ob es sich um ein php-, html- oder Datenbankproblem handelt. Die Einteilung in Anfänger, Fortgeschritten und Profi spiegelt Anspruch der Frage und Deinen eigenen Wissensstand wider. Anfängerfragen im Profi-Forum zu posten, verschafft Dir keine besseren Antworten aber u.U. böse Kommentare der Gemeinschaft.
Die Fragen sollten konkret sein und eigene Lösungsansätze beinhalten.
Postings der Art "Wer kann mir dieses Script ändern" gehören ausschließlich ins Gesuche Forum!
Fertige Scripte kannst Du im Scriptbörse Thread suchen oder beauftragen
- Sei prägnant in Deiner Frage, aber geize nicht mit Informationen
Niemand außer Dir kennt Dein Projekt. Es ist nicht selbsterklärend, nur weil Du Dich damit schon lange beschäftigst.
Kommt Dir der Gedanke "Das wird man schon verstehen" ergänze besser gleich Deine Ausführungen.
"... geht nicht"-Threads haben gute Chancen, sofort im Trash zu landen.
- Schreibe ganze Sätze statt Telegrammstil
Im Satzgefüge werden Zusammenhänge deutlicher. Eine ordentliche Rechtschreibung erhöht die Lesbarkeit und damit auch die Wahrscheinlichkeit, bereitwillige Hilfe zu erfahren. Satzzeichen und Absätze sollten selbstverständlich sein.
Fachbegriffe und verbreitete Ausdrücke können Dinge konkret beschreiben. Nutze sie, wenn Du weißt wovon Du sprichst.
- Verzichte weitgehend auf Ironie und übertrieben lockere Kommentare
Erstere ist schwer zu erkennen, letztere füllt den Thread mit Worten, die besser sachdienlichen Hinweisen zu Gute kommen. Auch 10 Smilies erzeugen nicht zwingend gute Laune beim Leser.
- Verzichte auf Selbsterniedrigung
Die Gemeinschaft wird dadurch nicht hilfsbereiter.
Wir sehen auch, ob Du Programmieranfänger bist (ohne "bin Vollnoob") und dass Du neu im Forum bist (ohne "bin neu hier"). Spar Dir und uns diese Zeit oder schreibe eine sinnvolle Begrüßung.
- Analysiere und reduziere das Problem (siehe oben).
Gib präzise Dein Ziel (bzw. die Aufgabenstellung), Dein Problem und/oder eine Fehlermeldung an. Beschreibe, was Du schon probiert oder herausgefunden hast.
- Fehler macht man selbst
In einem Promille-Anteil von Threads ergibt sich das Problem aus einem Bug in PHP oder anderen Komponente. Suche zuerst gründlich in Deinem Code, bevor Du Bugs unterstellst. Zend Technologies (PHP), Apache Group etc. führen öffentliche Listen bekannter Fehler im Internet. [6]
- Poste Codebestandteile
Achte auf relevante Stellen, z.B. Zeilennummern die von einer Fehlermeldung angegeben werden. (Kennzeichne bei Bedarf diese Zeilen mit einem Kommentar).
- Nutze die Möglichkeiten des Boards
Benutze [php] Tags für Code, um ihn im Syntaxhighlighting lesbarer zu gestalten. Weiterhin empfielt sich [code] für das Posten von Array-Dumps, Fehlermeldungen und dergl. einzusetzen.
Markiere einen Beitrag als 'Erledigt' (Link oben links über dem Beitrag) wenn Dein Problem gelöst wurde.
- Achte auf eine saubere Formatierung des Quellcodes
(allgemeine Regel fürs Programmieren). Darunter fallen: Texteinrückung, Kommentare, sprechende Variablennamen etc.). Standards [7] einzuhalten ist empfehlenswert, eine einmal begonnene Formatierung beizubehalten ist wichtiger!
- Poste wenn möglich realen Code
Niemand guckt Dir hier etwas ab! Für das Forum angepaßte Bsp. bergen dagegen die Gefahr, den Ursprungsfehler zu verbergen, oder neue Fehler zu machen.
Für wirklichen hochwertigen Code empfiehlt sich eine Ergänzung von Lizenzangaben.
[1] Nettiquette und Umgangsform
[2] Fehlerbehandlung
[3] Debugging
[4] Programmdokumentationen
[5] Tutorials
[6] Fehlerlisten
[7] Coding Standards