Oliver: Frage zu PHP-Code (Formmailer)

Hallo liebe Forenteilnehmer!

Ich hätte drei Fragen zu folgend verlinktem PHP-Code, der sich auf einen sogenannten "Formmailer" bezieht. Mein Formular in HTML-Code (HTML 4.1 tansistional) ist bereits fertig. Da ich Skriptsprachen bisher leider überhaupt nicht beherrsche, hätte ich drei Fragen, die dem "versierten PHP'ler" vielleicht ein Lächeln entlocken. ;-)
Für Eure Hilfe wäre ich daher aber umso dankbarer, denn jeder hat mal angefangen...

Hier findet Ihr den Code:
http://aktuell.de.selfhtml.org/artikel/php/form-mail/

1a. Steht der PHP Code, in dergleichen Datei, in der sich auch der HTML-Quelltext für das Formular befindet (also, wie im SELFHTML-Beispiel)? Und wenn ja, wie lautet dann die Dateiendung? Z.B. feedback.php ?

1b. Oder gehört der php-Code und der HTML-Code jeweils in eine SEPARATE Datei?

2. Den Hinweis bei SELFHTML hinsichtlich des "action"-Attributes des <form>-Tags habe ich nicht ganz verstanden.
Bleibt die Zeile...
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
....so stehen, oder muss da irgendeine Zeichenfolge "ersetzt" oder "abgeändert" werden? Anders gefragt:
was macht <?php print $_SERVER['PHP_SELF']; ?>

3. Kann ich den Quelltext meines HTML-Formulars auch in "nicht dynamischem" / bzw. "nicht-XML" (also z.B. in HTML 4.1 tansistional) schreiben, oder muss ich (wie im Beispiel bei SELFHTML) XML-Code verwenden?

Vielen Dank für Eure Hilfe!

  1. Hi,

    1a. Steht der PHP Code, in dergleichen Datei, in der sich auch der HTML-Quelltext für das Formular befindet (also, wie im SELFHTML-Beispiel)? Und wenn ja, wie lautet dann die Dateiendung? Z.B. feedback.php ?

    Nach einem ersten Blick würde ich sagen: gleiche Datei.
    feedback.php wäre nicht die Dateiendung, sondern der ganze Name.
    Namen sind aber eigentlich Schall und Rauch. Du könntest die Datei irgendwie nennen, solange sie der Server, bzw. PHP entsprechend parst und verarbeitet. Das ist eine Konfigurationsfrage. Für den Anfang ist es für dich vielleicht einfacher, sie einfach danach zu benennen, welchen Zweck sie erfüllt und ihr eine .php Endung zu verpassen.

    1b. Oder gehört der php-Code und der HTML-Code jeweils in eine SEPARATE Datei?

    Kann man machen, muss man aber nicht. Warum denkst du, man müsse das so machen?

    1. Den Hinweis bei SELFHTML hinsichtlich des "action"-Attributes des <form>-Tags habe ich nicht ganz verstanden.
      Bleibt die Zeile...
      <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
      ....so stehen, oder muss da irgendeine Zeichenfolge "ersetzt" oder "abgeändert" werden? Anders gefragt:
      was macht <?php print $_SERVER['PHP_SELF']; ?>

    <?php leitet einen PHP Code-Block ein;  ?> schliesst ihn ab.

    print ist ein Befehl und könnte was genau bewirken?

    $_SERVER['PHP_SELF']  ist eine Variable, Variablen werden in PHP immer mit $ notiert. Im speziellen ist dies eine automatisch vom Server befüllte Variable, die wohl die URL zu sich selbst beinhaltet.

    Wenn der Browser die Seite empfängt, sieht das dann evt. so aus:
    <form action="http://your.domain.example/feetback.php" method="post">

    -> DU ... AUSPROBIEREN !

    1. Kann ich den Quelltext meines HTML-Formulars auch in "nicht dynamischem" / bzw. "nicht-XML" (also z.B. in HTML 4.1 tansistional) schreiben, oder muss ich (wie im Beispiel bei SELFHTML) XML-Code verwenden?

    Einfaches 4.1 transitional sollte auch einfach gehen, nicht jeder ist XHTML-Fetischist. Mit "dynamisch" hat das aber überhaupt nichts zu tun.

    Vielleicht solltest du dir einfach mal ein (gutes) Buch für PHP zulegen um dich in die Grundlagen dieser Programmier/Interpretersprache einzuarbeiten:
    http://www.amazon.de/PHP-für-Dummies-Christian-Baun/dp/3826629825

    Ciao, Frank

    1. Hi Frank,

      für Deine sehr guten und verständlichen Erläuterungen sage ich zunächst: Besten Dank!
      Ich werde es in den nächsten Tagen ausprobieren, denn zunächst muss ich meinen Tarif wechseln, um PHP überhaupt nutzen zu können.

      1b. Oder gehört der php-Code und der HTML-Code jeweils in eine SEPARATE Datei?
      Kann man machen, muss man aber nicht. Warum denkst du, man müsse das so machen?

      Mitunter denke ich an solche "Kleinigkeiten" einfach und spreche sie an, bevor Missverständnisse entstehen, weil jemand von etwas ausgeht, was sich tatsächlich anders darstellt. Vielleicht bin ich mitunter zu strukturiert. ;-)

      Wenn ich das "so" machen würde (zwei separate Dateien), was müsste ich dann im HTML-Formular notieren, damit die PHP-Datei "gefunden" wird und verarbeitet werden kann?

      -> DU ... AUSPROBIEREN !

      Mach ich, versprochen! :-)

      Vielleicht solltest du dir einfach mal ein (gutes) Buch für PHP zulegen um dich in die Grundlagen dieser Programmier/Interpretersprache einzuarbeiten.

      Ich nehme Deinen Rat zu Herzen. Aber Du kennst das sicher selbst: Mitunter braucht man eine Lösung, hat aber von der Sache, die die Lösung beinhaltet, wenig bis keine Ahnung und hat dummer Weise noch weniger Zeit. Ich arbeite aber an meiner "Wissenslücke". :-)

      Dir nochmals herzlichen Dank!

      Viele Grüße
      Oliver

      1. Hallo,

        zu deiner Rückfrage; Wenn du das Formular und den PHP Code zum Verschicken in verschiedene Dateien packst, was dann als form-action stehen muss:

        Der relative oder absolute Pfad zu der PHP-Datei, welche die Formulareingaben verarbeitet, also z.b. <form action="feetback.php" ...>

        Das hat aber dann etwas Nachteile, wenn du bei Fehleingaben (Validierung von eingetragenen Daten) das Formular nochmal gefüllt anzeigen willst, weil du dann nicht unbedingt die gesendeten Formulardaten als Variablen wieder zur Verfügung hast.

        Für den Anfang, lass es so, wie es ist. Später, wenn du mit der Arbeitsweise vertrauter bist, könntest du dich damit beschäftigen, den HTML Code für das Formular als "Template" auszulagern.

        Ciao, Frank

        P.S: ich hab eigentlich nicht wirklich viel Ahnung von PHP, hab mir lediglich auch nur mal den SelfHTML Formmailer für meine HP kopiert und angepasst. ;)

        1. Hallo Frank,

          ich habe den PHP-Code nun direkt in mein HTML-Formular eingebaut, so wie im SELFHTML-Beispiel, und mit dem Namen "feedback.php" versehen. Auf dem Server des Hosters kann ich die Datei noch nicht ausprobieren, saget ich ja gestern bereits. Wenn ich die Datei aber in einem Browser (Netscape oder IE) auf meinem Arbeitsplatzrechner aufrufe, sehe ich den PHP-Code aber leider im oberen Teil meines Formulars! Mache ich etwas verkehrt, oder liegt das daran, dass auf meinem Arbeitsplatzrechner kein PHP installiert ist?

          Gruß
          Oliver

          1. Hallo,

            ja, es liegt daran, dass du keinen Apachen (oder ähnliche Webserversoftware) und kein PHP bei dir lokal installiert hast. Wenn es keinen Server mit PHP gibt, dann tut dieser auch nichts und interpretiert die <?php ... ?> Codeabschnitte nicht.

            Da musst du wohl noch ein paar Tage warten bis dein Provider die Umstellung durchgezogen hat, oder du installierst dir ein XAMP (LAMP oder WAMP) Paket.

            Ciao, Frank