tangotaenzer: switch - funktion

Hi, liebe Leute,

habe mir heute unter http://aktuell.de.selfhtml.org/artikel/php/form-mail/

php-code geladen, dann in einer Test-Datei ausprobiert und gefreut, dass alles funktioniert.

Nun wollte ich ihn in die Webseite einbinden über die switch-Funktion

...

case 2:
    include("kontakt.php");
    break;

...

und schon klappt es nicht mehr. Rufe ich aber separat die Datei auf, funktioniert wieder alles. Hat einer eine Idee woran das liegt?? und wie man Abhilfe schaffen kann??

Danke und viele Grüße

  1. Hello,

    und schon klappt es nicht mehr. Rufe ich aber separat die Datei auf, funktioniert wieder alles. Hat einer eine Idee woran das liegt?? und wie man Abhilfe schaffen kann??

    Wenn Du uns sagen würdest, welches Ergebnis du erwartet hast und welches Du stattdessen bekommen hast, dann wären wir schon einen Schritt weiter.

    In welches File hast Du denn das hineingeschrieben?

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hi Tom,

      Noch mal anders formuliert

      ich habe den Code von http://aktuell.de.selfhtml.org/artikel/php/form-mail/ in die Datei kontakt.php kopiert. Diese Datei rufe ich bei Bedarf wenn also jemand eine Mail schreiben will auf über  (http://meineseite.php/content.php?id=2)

      switch ...

      ...

      case 2:
          include("kontakt.php");
          break;

      ...

      Das funktioniert aber nicht. Es erscheint zwar das Formular, man kann dort auch Daten eintragen, die werden dann aber nicht an die E-Mail-Adresse geschickt. Und das ist aber das was ich will!!!

      Rufe ich die Datei aber auf über http://meineseite.php/kontakt.php funktioniert der Code in der Datei wunderbar und man kann problemlos eine Mail senden.

      Hoffe jetzt ist das Problem klarer.

      viele Grüße

      1. Hello,

        das bedeutet also, dass Du in eine (hoffentlich) vollständige und valide HTML-Seite, die in Deinem Falle von PHP erzeugt wird, eine andere vollständige HTML-Seite, die auch von PHP erzeugt wird, einbindest.

        Du hast dann also zwei Mal den Document-Type, zweimal den <head>-Bereich, zweimal ... usw.

        Denk mal darüber nach, ob das so sinnvoll ist.
        Wenn es _nicht_ sinnvoll ist, was müsste man dann tun?

        :-)

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Hi,

          na klar alles vollständig, auch valide, aber nichts doppelt!!!

          Ich rufe die Datei nur unterschiedlich auf, mal mit switch (wie schon zuvor beschrieben, dann klappt es nicht, und mal direkt (wie auch schon beschrieben) und dann klappt es. Ich möchte, dass es aber auch mit switch klappt!

          Viele Grüße

          1. Hello,

            na klar alles vollständig, auch valide, aber nichts doppelt!!!

            Ich rufe die Datei nur unterschiedlich auf, mal mit switch (wie schon zuvor beschrieben, dann klappt es nicht, und mal direkt (wie auch schon beschrieben) und dann klappt es. Ich möchte, dass es aber auch mit switch klappt!

            Dann gib uns doch mal einen Link auf die Seite, bevor wir hier lange reden.

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Hallo Tangotänzer,

              | Ich rufe die Datei nur unterschiedlich auf, mal mit switch (wie schon zuvor beschrieben, dann klappt es nicht, und mal direkt (wie auch schon beschrieben) und dann klappt es. Ich möchte, dass es aber auch mit switch klappt!

              demnach arbeitet die Prozedur switch nicht korrekt.

              Dann gib uns doch mal einen Link auf die Seite, bevor wir hier lange reden.

              Ersatzweise kannst Du auch die Bedingung, die switch abzuarbeiten hat, nebst allen dazugehörigen Variablen und wie Du diese bildest, posten.

              Gruß aus Berlin!
              eddi

              --
              Wer mit Kanonen auf Spatzen schießt, mag zwar immernoch Augen für die Tauben auf dem Dach haben, aber keine Hand mehr zum reichen.

              Gruß aus Berlin!
              eddi

              --
              Wer mit Kanonen auf Spatzen schießt, mag zwar immernoch Augen für die Tauben auf dem Dach haben, aber keine Hand mehr zum reichen.
              1. Hallo eddi,

                Ersatzweise kannst Du auch die Bedingung, die switch abzuarbeiten hat, nebst allen dazugehörigen Variablen und wie Du diese bildest, posten.

                was bedeutet bitte posten?

                Ebenfalls Gruß aus Berlin!

                1. Re:

                  was bedeutet bitte posten?

                  Posting

                  Wie sieht es denn mit dem Hinweis von ChrisB aus?

                  Gruß aus Berlin!
                  eddi

                  --
                  Wer mit Kanonen auf Spatzen schießt, mag zwar immernoch Augen für die Tauben auf dem Dach haben, aber keine Hand mehr zum reichen.
                  1. Hi

                    Wie sieht es denn mit dem Hinweis von ChrisB aus?

                    ja, der ist gut, den hatte ich vorher noch nicht gelesen. Auf jeden Fall hat er Durchblick. Aber es ist ganz offensichtlich die Wissensstände sind nicht gleich und mir erschließt sich noch nicht die fertige Lösung.

                    Viele Grüße

                2. @@tangotaenzer:

                  nuqneH

                  was bedeutet bitte posten?

                  Warum fragst du das nicht Tante Wikipedia?

                  „Arbeitsplatz, von dem man erwartet, dass er die Existenz des Inhabers in befriedigender Weise sichert und dass er vom Inhaber angemessen ausgefüllt wird.“

                  Qapla'

                  --
                  Bildung lässt sich nicht downloaden. (Günther Jauch)
  2. Hi,

    Nun wollte ich ihn in die Webseite einbinden über die switch-Funktion
        case 2:
        include("kontakt.php");
        break;
    und schon klappt es nicht mehr.

    Natürlich entstehen schnell Probleme, wenn man Code einfach per Copy&Paste übernimmt, ohne seine Funktionsweise verstanden zu haben.

    Rufe ich aber separat die Datei auf, funktioniert wieder alles. Hat einer eine Idee woran das liegt??

    Wenn du das erste mal über content.php?id=2 dein Script aufrufst, dann steht im Script $_GET['id'] zur Verfügung, und dein case 2 im switch bindet das include-File ein.

    In dem darin enthaltenen Formular wird $_SERVER['PHP_SELF'] als Zieladresse angegeben - das dürfte aber nur "content.php" sein, der GET-Parameter fehlt hier.
    Dann schickst du das Formular ab, deine content.php bekommt aber keinen Parameter id übergeben - und kann deshalb auch nicht per switch-case das include-File erneut einbinden.

    Und schon steht jemand, der Copy&Paste mit Programmieren verwechselt, mit offenem Mund da, und kann seiner Verwunderung nur noch durch ein "klappt nich" Ausdruck verleihen.

    und wie man Abhilfe schaffen kann??

    Passende Adresse im action-Attribut des Formulars ausgeben lassen.
    Entweder fix und statisch - oder mal überlegen/informieren, wie man dort dynamisch für die Ausgabe der richtigen Adresse sorgen könnte. (Dabei Sicherheit nicht ausser Acht lassen, sonst gibt's schnell eine XSS-Lücke.)

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hi chrisB,

      Natürlich entstehen schnell Probleme, wenn man Code einfach per Copy&Paste übernimmt, ohne seine Funktionsweise verstanden zu haben.

      Das ist wohl war, aber irgendwie muss man sich ja diesem Thema nähern! Und schliesslich gibt es ja Leute wie Dich im Forum, die hilfreich zur Seite stehen!

      Wenn du das erste mal über content.php?id=2 dein Script aufrufst, dann steht im Script $_GET['id'] zur Verfügung, und dein case 2 im switch bindet das include-File ein.

      In dem darin enthaltenen Formular wird $_SERVER['PHP_SELF'] als Zieladresse angegeben - das dürfte aber nur "content.php" sein, der GET-Parameter fehlt hier.
      Dann schickst du das Formular ab, deine content.php bekommt aber keinen Parameter id übergeben - und kann deshalb auch nicht per switch-case das include-File erneut einbinden.

      aha, jetzt und hier steht mir der Mund offen. Vorhin war ich eher so ein bißchen verzweifelt. Jetzt dämmert es ein wenig.

      Und schon steht jemand, der Copy&Paste mit Programmieren verwechselt, mit offenem Mund da, und kann seiner Verwunderung nur noch durch ein "klappt nich" Ausdruck verleihen.

      oh, nein, das verwechsel ich nicht. Ich denke oft genug an das Zitat "... denn sie wissen nicht was sie tun", wenn ich vor dem Rechner sitze und irgendetwas ausprobiere.

      Passende Adresse im action-Attribut des Formulars ausgeben lassen.
      Entweder fix und statisch - oder mal überlegen/informieren, wie man dort dynamisch für die Ausgabe der richtigen Adresse sorgen könnte. (Dabei Sicherheit nicht ausser Acht lassen, sonst gibt's schnell eine XSS-Lücke.)

      ok, vielleicht wird es ja auch nach einmal darüber schlafen klarer.

      Auf jeden Fall vielen Dank für Deine Hinweise!!!

      Viele Grüße