Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Header Problem

Hi...

Folgende Situation: Ich habe hier eine Umfrage, wo man Gründe für ein ja und ein nein angeben kann... siehe hier:

Code:                   In Zwischenablage kopieren (nur IE)
1">

jetzt der php coder der die daten empfängt:

Code:                   In Zwischenablage kopieren (nur IE)
2">

jetzt ist das problem, dass wenn ich das formular absende nur weitergeleitet werde, wenn eine post angabe bei <<ja>> existiert - wenn ich nur etwas als antwort bei <<nein>> ankreuze funktioniert die weiterleitung nicht...

wo liegt das problem?

mfg
Hier gehts zum Orginal Eintrag "Header Problem" im Forum

Antworten

Warum überhaupt diese (kranke) Weiterleitung? Wieso nicht einfach include()? Weiterleitungen auf EIGENE Seiten sind total sinnlos.


2.

Checkboxen die nicht angeklickt sind werden nicht im POST-Array übertragen..
Standardvorgehensweise ist sonst sich irgendwo im PHP-Script alle Checkboxen in ein Array zu speichern und dann per isset zu testen, ob die jeweilge Checkbox angeklickt ist..
Bzw. noch besser wäre es natürlich dass du deine Logik dahingehend änderst, dass du Dir "nein" eh nicht merken musst. Ansonsten empfehlen sich Radio-Buttons, jeweils ein Ja-Nein Paar pro Frage


3.

Zitat:
BenniG. postete
Checkboxen die nicht angeklickt sind werden nicht im POST-Array übertragen..

ich habe aber 2 arrays... antwort und antwort2 :-) daher erstaunt es mich, dass es nicht funktioniert...


4.

wenn keine der Checkboxen aus antwort2 angeklickt ist existiert das Array antwort2 nicht in den POST-Daten..
vielleicht glaubst du mir so ;)
Code:                   In Zwischenablage kopieren (nur IE)
3">




5.

[quote]BenniG. postete
wenn keine der Checkboxen aus antwort2 angeklickt ist existiert das Array antwort2 nicht in den POST-Daten..
vielleicht glaubst du mir so ;)
Code:                   In Zwischenablage kopieren (nur IE)
4">

[/quote] danke für deine antwort...

ja, dass das array "antwort2" nicht existiert wenn keine daten per post übergeben werden ist mir auch klar :-)

aber das problem ist ja, dass wenn im array1 "antwort" daten übergeben werden und im array2 "antwort2" keine daten übergeben werden die funktion header funktioniert ABER wenn im array2 daten übergeben werden und im array1 nichts angekreuzt wurde dann funktioniert header nicht :-/

(ich hoffe du verstehst was ich meine :-) )


6.

Gibts denn eine Fehlermeldung?
Das schonmal probiert:
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: ini_set("display_errors",true); 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.

Außerdem hat Rana recht, Redirects innerhalb deiner eigenen Seite sind unnötig..
dazu kommt noch, dass Redirects immer absolut sein sollten (das RFC erähnt nur absolute Urls, dass die Browser auch relative Urls unterstüzen ist nicht verlässlich)..


7.

der debug mode gibt mir leider auch ncihts schlaues aus...

Notice: Undefined index: antwort in /home/ftp/web/vereine/login.php on line 1241

zeile 1241: if($_POST['antwort'] == "") {

das sollte mit dem problem nichts zu tun haben :-/


8.

Vielleicht die Klammerung.. So wie es oben in einem Beispiel ist wird immer versucht beide header-befehle zu schicken..
Ist da ein if, wo du dich vertan hast?


9.

Zitat:
das sollte mit dem problem nichts zu tun haben :-/
Doch - genau das ist Dein Problem. Es gibt kein Array antwort heißt das im Klartext. Nicht einmal eine Variable $_POST['antwort'] (und schon gar kein Array).


10.

Zitat:
Rana postete
Zitat:
das sollte mit dem problem nichts zu tun haben :-/
Doch - genau das ist Dein Problem. Es gibt kein Array antwort heißt das im Klartext. Nicht einmal eine Variable $_POST['antwort'] (und schon gar kein Array).
die notice kommt nicht mehr, aber trotzdem immernoch das selbe problem :(


11.

Ich sehe ohnenhin nur einen sehr verstümmelten Teil eines PHP Scripts, wo direkt am Anfang ein "else" steht und wo auch die Klammern am Ende nicht passen. So kann kein Mensch sehen was passiert.

Wieso ist die Meldung verschwunden?


12.

hier der ganze inhalt der php datei (login.php):

Code:                   In Zwischenablage kopieren (nur IE)
5">




13.

Code:                   In Zwischenablage kopieren (nur IE)
6">

Das war oben aber noch nicht drin.


14.

das sollte ja auch keine einfluss haben? :-)


15.

Ja, immmer schön ein @ vor Funktionen schreiben, damit man ja keine Fehlermeldung zu sehen bekommt. ;)

Und mal dumm nachgefragt: Welchen Sinn macht es, irgend etwas auszugeben, was der User wegen header sowieso nicht sieht? Und ob_start(); ist doch eine Krücke, um schlechte Programmierung auszubügeln.

*** Nobody ***


16.

wo ist denn hier das zugehörige if ?

Code:                   In Zwischenablage kopieren (nur IE)
7">

wo steht error_reporting(E_ALL); ?

wieso unterdrückst Du Fehlermeldungen mit @ ?

Wieso läßt Du Dir wichtige Variableninhalte nicht ausgeben ?


Hier gehts zum Orginal Eintrag "Header Problem" im Forum
 
phpforum.de | Impressum | Handy Bundles