Antworten
Zitat:
bin PHP anfänger
Und deswegen schreibst du in "PHP für Fortgeschrittene" *schieb*
Standard-Antwort:Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An den Anfang des Scriptes schreibt man die Zeile: error_reporting(E_ALL);
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 4 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt.
*** Nobody ***
2.
[doc]mysql_query[/doc]
irgendwie ist das alles wirr:
Code: In Zwischenablage kopieren (nur IE)
und wieso gibst Du am Ende Dein Statement aus?
3.
senden.php: Code: In Zwischenablage kopieren (nur IE)
So schaut es nun aus. Debugging funktioniert hier nicht, da das INSERT-Statement funktioniert, zumindest teilweise. Es wird zwar ein neuer Datensatz in der Tabelle "designer" angelegt, doch der ist leer, anscheinend übernimmt er die in der SESSION gespeicherten Variablen nicht. Diese habe ich wie folgt in der
formular1.php vor der Ausgabe übergeben:
Code: In Zwischenablage kopieren (nur IE)
Dateistruktur: formular1.php (vor-, nachname) - formular2.php - formular3.php - senden.php (siehe oben)
Ich frage mich, was ich da falsch mache, warum die eingebenen Namen nicht übermittelt werden?
Danke
4.
Was sagt
Code: In Zwischenablage kopieren (nur IE)
in beiden Dateien??? Das gehört auch zum Debugging....
Außerdem würde ich darauf tippen, dass du hier eine Fehlermeldung bekommst:
Code: In Zwischenablage kopieren (nur IE)
5.
Standard-Antwort:Zitat aus den Forenregeln:
Zitat:
Crosspostings
Technisch gesehen sind in der verwendeten Software keine Crosspostings im wörtlichen Sinne möglich. Siehe Multiposts.
Multiposts
Hier sind zwei verschiedene Fälle zu unterscheiden. Multiposts innerhalb der Seite werden nicht toleriert. Hier wird jeder Beitrag bis auf den, in den das Posting thematisch am ehesten passt gelöscht. Im Wiederholungsfall wird ein Hinweis auf die Crossposting-Regelung des Forums hinterlassen und der Thread geschlossen.
Multiposts mit anderen Webforen als phpforum.de werden anders behandelt. Diese Threads werden mit einem Hinweis versehen und bei mehrmaligem Crossposten werden die Threads geschlossen.
Falls du dich fragst, ob das reine Schikane von uns ist, nein, hier der Grund:
Zitat:
Crossposting bedeutet, dass ein und dieselbe Frage in mehreren Foren oder Newsgroups gleichzeitig gestellt wird. Ein solches Verhalten wird von den meisten Helfern nicht toleriert, denn damit stellst Du einerseits die Kompetenz der Helfer jedes einzelnen Forums und Newsgroup in Frage und bewirkst zudem, dass ein zig-faches an Stunden aufgewendet wird, um nur ein einziges Problem zu lösen, denn überall werden sich die Helfer daran setzen, eine Lösung für Dich zu finden. Das ist ganz klar ein Missbrauch an dem kostenlosen und freiwilligen Support, der hier angeboten wird.
Wenn Deine Frage klar und deutlich gestellt wurde, dann wirst Du ganz bestimmt innerhalb kürzester Zeit eine Antwort erhalten. Sollte dies auch nach mehreren Tagen nicht der Fall sein, dann versuche bitte die Frage besser zu formulieren. Falls Du dennoch in einem zweiten Forum posten solltest, erwähne bitte, dass Du die Frage schon woanders gestellt hast, und dass Du es tust, weil keine Lösung gefunden werden konnte.
Siehe auch
http://www.phpforum.de/forum/phpforum2_Aktuelles__18987_1082551933.html
sowie
http://www.phpforum.de/forum/news.php?boardid=12
6.
Nein, dort bekomme ich keine Fehlermeldung.
Nachdem ich <?php print_r($_SESSION); ?> hinzugefügt habe, wird folgendes im Browser angezeigt:
Array ( [benutzer_id] => 15 [berechtigung_id] => 3 [benutzer] => Geeb [Angemeldet] => 1 [vorname] => ghghghgh [nachname] => ghghghgh
d.h. die variablen werden von Seite zu Seite übertragen, doch der INSERT INTO funktioniert nicht. Die Verbindung zur DB steht.
Es wird nur nicht in die DB eingetragen.
7.
Du musst die Session-Variablen im INSERT-Befehl benutzen, nicht $_POST!
8.
Problem gelöst:
Es waren die Session-Variablen, welche ich von $_POST[] in $_SESSION[] benannt habe.
Vielen Dank trotzdem...
9.
1. [doc]mysql_error[/doc]
2. Du musst dich schon entscheiden, ob $_POST oder $_SESSION für dich richtig ist...