Problem Kontaktformular

  • Hallo!


    Ich habe ein Problem mit meinem Kontaktformular, was hinten und vorne keinen Sinn macht!

    php-code

    html-code:

    Folgendes:

    Exakt so, wie es oben steht, funktioniert das Formular Problemlos auf einer Seite von mir.
    Auf einer weiteren Seite will exakt dieses Forumal einfach nicht auf die "Danke.html" weiterleiten! Nachdem man "senden" drückt, bleibt der Bildschirm einfach weiß und es passiert nichts mehr! Die Email kommt an.

    Fakt ist:
    1 Die Adresse/Pfad zur "danke.html" ist korrekt!
    2:Auch mit direktem Link zur "danke.html" mit http oder auch nur www. nützt nix!
    3: Beide Seiten liegen auf dem gleichen Provider (2ftp Zugänge). Privder unerstützt also die Funtkion und Probleme sind auch nicht vorhanden!
    4: Auf der einen Seite geht es und auf der anderen nicht, was absolut keinen Sinn macht!


    Wer kann mir sagen, was hier los ist?
    Mach ich was falsch? Wenn ja, was?

    Da ich kein Profi bin, bitte ich um möglichst leicht verständliche Hilfe :)

    Thx schonmal vorab!


    PS: Er schmeißt mir bei Eingabe von

    Zitat


    error_reporting(E_ALL);
    ini_set("display_errors", true);

    folgendes aus:

    Notice: Undefined index: Name in /home/u0088629688/public_html/Kontakt2.php on line 10

    Notice: Undefined index: Email in /home/u0088629688/public_html/Kontakt2.php on line 10


    Aber warum?

    2 Mal editiert, zuletzt von jojo87 (18. Mai 2009 um 12:35)

  • 1. Es wäre besser, wenn die die PHP-Tags statt Quote benutzen würdest.
    2. Du zeigst uns 2 Teile deines Scriptes, allerdings bleibt uns so der Zusammenhang fremd
    3. $_SERVER['PHP_SELF'] ist schlecht, füttere google mit PHP_SELF XSS

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    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 3 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.

  • Tolle Antwort^^

    Hift mir als nicht Profi richtig weiter^^


    Zitat

    Du zeigst uns 2 Teile deines Scriptes, allerdings bleibt uns so der Zusammenhang fremd

    Das ist das Script! Was sollte da deiner Meinung nach fehlen? Php und html Teil sind doch vorhanden......was fehlt?

    Zitat

    Richtig debuggen

    Toll wie du diesen Text immer und immer wieder allen möglichen Usern an den Kopf wirfst^^

    Zumal:

    Zitat

    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);

    z.B völlig überflüssig zu erwähnen ist, da:

    bereits geschehen wie du siehst^^..also was soll das?


    Da dies ein Hilfeforum darstellen soll, kann man doch bitte etwas mehr erwarten oder wie? Schließlich sind wir hier nicht alle Vollprofis! Und wenn du keinen Bock hast, dann laß es lieber ganz!

    Keinverständnishab*


    Zitat


    3. $_SERVER['PHP_SELF'] ist schlecht, füttere google mit PHP_SELF XSS

    Kann es daran liegen, daß die Seite nicht weitergeleitet wird, da es ja innerhalb der 2ten bestehenden Seite von mir genau so Problemlos funktioniert?

    Und um nochmal auf die Fehlermedlung zurück zu kommen:
    Notice: Undefined index: Name in /home/u0088629688/public_html/Kontakt2.php on line 10

    Notice: Undefined index: Email in /home/u0088629688/public_html/Kontakt2.php on line 10

    Was bedeutet das?

  • Zitat


    1. Es wäre besser, wenn die die PHP-Tags statt Quote benutzen würdest.

    Er meint die Forentags, welche für php-code da sind: Ich habe das für dich editiert, den Unterschied siehst du ja selber.

    Zitat


    Notice: Undefined index: Name in /home/u0088629688/public_html/Kontakt2.php on line 10

    Notice: Undefined index: Email in /home/u0088629688/public_html/Kontakt2.php on line 10

    In Zeile 10 wird auf ein Array-Element

    PHP
    $array['Name']
    und
    $array['Email']

    zugegriffen, obwohl diese nicht gesetzt sind.
    Generell prüft man zuerst mit isset(), ob Variablen gestzt sind, bevor man diese verwendet.

    Da ich deinem Code keinen sochen Zugriff sehe, vermute ich, dass du uns hier nicht den richtigen Code gezeigt hast.

    Mit dem header()-Befehl fällt mir spontan nix ein.

    Gruß,
    jojo

    Edit: Natürlich gibt es diese Zugriffe, man man man, bin ich heute blind.
    Dass nach solchen Fehlermeldungen kein header() mehr gesendet wird, ist ja wohl auch klar :roll:


    2 Mal editiert, zuletzt von jojo87 (18. Mai 2009 um 12:51) aus folgendem Grund: Blindheit am Mittag

  • Tolle Antwort


    Stimmt!


    Hift mir als nicht Profi richtig weiter


    Dann ist ja gut!


    Das ist das Script! Was sollte da deiner Meinung nach fehlen? Php und html Teil sind doch vorhanden......was fehlt?


    Und warum reißt du das hier auseinander?


    Toll wie du diesen Text immer und immer wieder allen möglichen Usern an den Kopf wirfst


    Richtig, damit kann man in der Regel 50% aller Fehler selber beheben!


    z.B völlig überflüssig zu erwähnen ist, da:
    bereits geschehen wie du siehst^^..also was soll das?


    Jau, error_reporting hast du hoch gedreht, mehr nicht!


    Da dies ein Hilfeforum darstellen soll, kann man doch bitte etwas mehr erwarten oder wie?


    Mach' mal beide Augen ganz fest zu, was du dann siehst, kannst du in einem Forum erwarten!


    Und wenn du keinen Bock hast, dann laß es lieber ganz!


    Ich habe keinen Bock, mir so eine Buchstabenwüste anzusehen! Wenn du nicht in der Lage bist, deinen Quellcode ordentlich zu posten, dann ist das dein Problem!


    Kann es daran liegen, daß die Seite nicht weitergeleitet wird, da es ja innerhalb der 2ten bestehenden Seite von mir genau so Problemlos funktioniert?


    Was?


    Und um nochmal auf die Fehlermedlung zurück zu kommen:
    Notice: Undefined index: Name in /home/u0088629688/public_html/Kontakt2.php on line 10

    Notice: Undefined index: Email in /home/u0088629688/public_html/Kontakt2.php on line 10


    Du könntest ja mal nachdenken! Wenn das Script das erste Mal aufgerufen wird, gibt es dann Werte im POST-Array? Eher nicht, oder?

  • http://www.gidf.de/Notice:%20Undefined%20index
    So schwer ist das doch nicht, oder?

    Bandits Debug-Anleitung ist sehr sinnvoll. Du solltest dir da nicht nur den einen Punkt 2 raussuchen den du gemacht hast. Die restlichen Punkte ignorierst du ja gepflegt wie man an deinem Quellcode sieht. Also hat er es scheinbar noch nicht oft genug gepostet.

    Zitat


    Notice: Undefined index: Name in /home/u0088629688/public_html/Kontakt2.php on line 10

    Notice: Undefined index: Email in /home/u0088629688/public_html/Kontakt2.php on line 10


    Danach wird dir kein "Headers already sent" ausgespuckt?

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Danach wird dir kein "Headers already sent" ausgespuckt?


    Nein.

    Das mit:

    PHP
    $array['Name']
    und
    $array['Email']

    habe ich so nicht gewusst. Ich war der Meinung, daß es sich auf
    die Angabe innerhalb's

    HTML
    <label><span class="Stil1">Name:</span><br /></label>
                <input name="Name" type="text" id="Name" size="40" />
                <br>
    <label>Vorname<br></label>

    bezieht und sich daraus die Daten holt.


    Also ist das der Grund, daß keine Weiterleitung erfolgt?
    Es geht ja nicht darum, daß dieses Formular nicht funktioniert, sondern daß schlicht die Weiterleitung nicht an die angegebene Seite funktioniert, was ansonsten bisher nie ein Problem war und daher für mich keinen Sinn ergibt.


    @Bandit:

    Zitat

    Mach' mal beide Augen ganz fest zu, was du dann siehst, kannst du in einem Forum erwarten!

    Freut mich, daß du selber darsellst, wie deine Einstellung zu dem Forum hier ist!
    Und mit genau dieser Einstellung gehst du hier auch die Sache an....
    Großkotzig, arrugant und nur wenig hilfsbereit. Da fragt man sich--was willst du hier, wenn du keinen Bock hast Leuten zu helfen, die nicht so viel Ahnung von der Materie haben.....

    Zitat

    Ich habe keinen Bock, mir so eine Buchstabenwüste anzusehen! Wenn du nicht in der Lage bist, deinen Quellcode ordentlich zu posten, dann ist das dein Problem!

    Dann lass es einfach.....hat dich keiner gezwungen sich hierzu zu äußern^^


  • Freut mich, daß du selber darsellst, wie deine Einstellung zu dem Forum hier ist!


    Ich erkläre dir das mal, da du das ja anscheinend nicht verstehst: In einem Forum kannst du auf Hilfe hoffen, mehr nicht! Hilfe erwarten kannst du, wenn du dafür bezahlst, was du aber hier nicht tust! Jetzt klar?


    Und mit genau dieser Einstellung gehst du hier auch die Sache an....


    Woher willst du das wissen?


    Großkotzig, arrugant


    Das heißt arrogant! Und stimmen tut das auch nicht, ich bin nur ehrlich!


    und nur wenig hilfsbereit.


    Ich habe hier bestimmt schon mehr geholfen als du! Ich muss mir von einem Troll solche Sprüche nicht anhören. In einem anderen Forum schreibt jemand immer bei solchen Dingen:

    Zitat

    Wenn du DAU hier noch mal Hilfe bekommen möchtest, solltest du deine große Klappe um 100% minimieren


    Könnte bei dir auch zutreffen!

  • Schau mal: Anführungszeichen(php)

    Schau mal, ob die Stelle mit dem header wirklich erreicht wird. Lass dir davor was ausgeben. Dann kommt ein Fehler beim header-Aufruf und du siehst, ob es klappt.
    Wenn das immer noch nichts nützt kannst du mal mit LiveHttpHeaders oder FireBug die angekommenen Header-Informationen überprüfen.

    Wie war das eigentlich mit dem PHPMailer??

    @Bandit
    Dich zwingt keiner, hier zu helfen...
    Mittlerweile schickt er doch alle nötigen Informationen!

  • @ The_User:
    Also die Angaben in deinem Link kamen mir sehr spanisch vor, da ich bisher von jedem erfahrenen PHP-Entwickler (auch sehr performance-lastige Anwendungen) gehört habe, dass der Geschwindigkeitsunterschied bei Verwendung von " statt ' nur minimal ist.
    Ich habe deine Script da mal exakt kopiert und sowohl auf lokalem Wamp, als auch auf einem Managed Server von domainfactory durchlaufen lassen.

    Ergebnis lokal:

    Zitat

    Einfache Anführungszeichen: 0.0065679550170898s
    Doppelte Anführungszeichen: 0.0099749565124512s


    Da ist zwar ein kleiner Unterschied, aber nichtmal annähernd 3-fache Dauer.

    Ergebnis Managed Server:

    Zitat

    Einfache Anführungszeichen: 0.0099408626556396s
    Doppelte Anführungszeichen: 0.010456085205078s


    Das ist die Laufzeit nahezu identisch.

    Dann habe ich das Script einfach mal im Ablauf getauscht, zuerst " und dann '.

    Ergebnis lokal:

    Zitat

    Doppelte Anführungszeichen: 0.0071289539337158s
    Einfache Anführungszeichen: 0.0072078704833984s


    Da sind auf einmal " minimal schneller.

    Ergebnis Managed Server:

    Zitat

    Doppelte Anführungszeichen: 0.010548114776611s
    Einfache Anführungszeichen: 0.010170936584473s


    Zwar einen Tucken schneller, der Unterschied ist aber marginal.


    Mit was für ner PHP-Version hast du das denn getestet? Bei mir waren es lokal php5.2.9 und auf dem managed server php5.2.6

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Ansich ist " langsamer als ' weil er bei " den String auch nach Variablen durchsucht...

    Das ist aber so minimal und unwichtig.

    Wenn einmal eine falsche DB abfrage macht/zu viel macht, das macht ein Script langsam

  • Das mag minimal sein aber es ist unnötig. Mit einfachen Anführungszeichen und . ist die Struktur klarer und es ist schneller ohne irgendwelche Nachteile.

    Sorry, aber ich finde

    PHP
    $sql="SELECT foo FROM bar WHERE id='".$id."'";


    übersichtlicher als

    PHP
    $sql='SELECT foo FROM bar WHERE id=\''.$id.'\'';

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  • Das mag minimal sein aber es ist unnötig. Mit einfachen Anführungszeichen und . ist die Struktur klarer und es ist schneller ohne irgendwelche Nachteile.


    Wie die Struktur klarer ist, ist wohl subjektive Ansichtssache. Ich benutze viel lieber " und bette Variablen {} ein. Damit komme ich am besten klar.
    Und der Geschwindigkeitsunterschied ist eben nur minimal, und nicht 3-fache Dauer.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Du machst es mit {}?
    Lauter so sinnlose Features. Ein String-Literal soll ein String-Literal sein und nicht irgendeine gigantische Funktion.
    Weshalb sinnlos Geschwindigkeit rauswerfen, wenn man "." hat.

  • sorry wenn ich falsch liege.

    Kein Problem :)

    $_POST ist vom Aufbau her wie ein array. Der Themenersteller prüft also grundsätzlich nur ob irgendwelche POST Daten vorhanden sind (= ob ein Formular mit POST Werten an sein Skript geschickt wurde). Zusätzlich könnte er, so wie du es vorgezeigt hast, auf spezifische Werte innerhalb des POST arrays zugreifen (jedoch nicht ganz gleich, denn du hast die if-Klammer schon nach $_POST['name'] geschlossen, es müsste aber nach "was auch immer" kommen).

    4 Mal editiert, zuletzt von phore (19. Mai 2009 um 17:37)

  • Du machst es mit {}?
    Lauter so sinnlose Features. Ein String-Literal soll ein String-Literal sein und nicht irgendeine gigantische Funktion.
    Weshalb sinnlos Geschwindigkeit rauswerfen, wenn man "." hat.


    Hm also jetzt bist du pinklich, will mal ein PHP Script von dir sehen, wetten das du da gröbere schnitzer als ' oder " in dem Programm hast ... vorallem mit mysql