Total frustriert..formmailer

  • Ist es eigentlich nicht möglich ein komplexeres Formular in Wordpress einzubinden?

    Das Aussehen habe ich eigentlich schon. Ich habe ein Formular erstellt und ihm dann einen template namen zugeordnet, dann eine Page erstellt und das ganze als template verwendet ohne text einzufügen.

    Das ganze sieht so aus:
    http://12.42.108.47/winner-tennis.ch/wordpress/?page_id=11

    Nur leider klappt das versenden nicht. Kann mir da jemand helfen?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Nunja, woher soll WP bei dem Form-Return
    <form action="/~admin128/wordpress/index.php" method="post"> denn wissen, was es machen soll ;) Ich nehme an, das die action-URI nur auf die index.php Deine BLogs verweist... Damit WP aber das - sofern ich Dich recht verstehe - Coding in Deiner Seite ausführt, muß der Action-Tag auf Deine Seite verweisen. Also entweder

    <form action="/~admin128/wordpress/index.php?page_id=0815" method="post"> wobei '0815' die numerische ID Deiner Seite ist, oder wenn Du mit Permalinks arbeitest
    <form action="/~admin128/wordpress/kontakt_formular/" method="post">

    Durch das URL-Rewrite der Permalinks wird dann automatisch die index.php mit den entsprechenden Parametern aufgerufen.

    Wenn Dir Permalinks nichts sagen, wirst Du wahrscheinlich nicht damit arbeiten und solltest den entsprechenden Teil ignorieren.

    vG

    Arno

    PS Ich weiß allerdings gar nicht, ob in/auf statischen Seiten Code ohne weiteres Ausführbar ist, oder ob dieser vorher in einem Plugin gekapselt werden sollte.

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • das ist ja interessant..hätte ich auch alleine draufkommen können, dass ich den sourcode online mal anschauen könnte..

    im script sieht dieser Teil wie folgt aus:

    <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
    hmm...

    ich hab das phpexec plugin installiert, dass php script in pages aktiviert.

  • Dann sollte

    (ohne Permalink)
    <form action="<?php print $_SERVER['PHP_SELF']; ?>"?page_id=".<?php echo $_GET['page_id']; ?> method="post">

    oder

    (mit Permalink)
    <form action="<?php print $_SERVER['PHP_SELF']; ?>"?pagename=".<?php echo $_GET['pagenme']; ?> method="post">

    eigentlich helfen können.

    vG

    Arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • Johannes, das sieht genau so aus wie psxmail und contactform.

    Arno, das ganze funktioniert nun (das Mail wird verschickt). Bekomme aber leider nun einen headerfehler (da der nun ja zweimal versandt wird..).

    http://12.42.108.47/winner-tennis.ch/wordpress/?page_id=19

    Mal sehen, ob ich den wegbring. Diese Linie scheint das Problem zu sein:
    header("Location: $strReturnhtml");
    Die kann ich aber natürlich nicht weglassen..

    Vielen Dank für das Feedback ihr zwei :)

    Einmal editiert, zuletzt von Tascha (5. Dezember 2005 um 08:46)

  • Doch kannst Du... Es erfordert "nur" einen Umbau des Codes...

    Aus der

    if($_POST) {
    ....
    ....
    }-Klammerung

    machst Du eine

    if($_POST) {
    ....
    ....
    } else { ?>
    <?php }-Klammerung

    und packst das eigentliche Formular in den else-Zweig.

    Anstelle von

    header("Location: $strReturnhtml");
    exit;

    gibst Du zwischen

    ?> ..... <?php

    Eine Versandtbestätigung aus, wobei Du das ganze ab mail() so gestaltest:

    if(mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)) {
    // Mail erfolgreich versand
    ?> ....... Erfolgsmeldung (HTML) ...... <?php
    } else {
    ?> ....... Mißerfolgsmeldung (HTML) .... <?php
    } else { ?> ... Ausgabe Mailformular (HTML) .....
    <?php }

    } ?>-Klammerung

    vG

    Arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

    Einmal editiert, zuletzt von Arno Simon (5. Dezember 2005 um 09:48)

  • Wow - erstmal vielen Dank, dass du dir die Zeit nimmst und mir so ins Detail hilfst.

    Natürlich ist das viel Code und ich als Laie habe sicherlich irgendwo eine Klammer oder sonst einen Input vergessen..

    Mein Code sieht nun so aus - wobei ich nicht sicher bin, ob ich alle deine Anweisungen richtig verstanden habe:

    (Die phpcode-tags sind für phpexec)

    <phpcode><?php


    if($_POST)
    {
    $strMailtext = "";

    while(list($strName,$value) = each($_POST))
    {
    if(is_array($value))
    {
    foreach($value as $value_array)
    {
    $strMailtext .= $strName.$strDelimiter.$value_array."\n";
    }
    }
    else
    {
    $strMailtext .= $strName.$strDelimiter.$value."\n";
    }
    }

    if(get_magic_quotes_gpc())
    {
    $strMailtext = stripslashes($strMailtext);
    }

    if(mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)){
    // Mail erfolreich versandt
    ?>Ihr E-Mail wurde erfolgreich versendet<?php
    } else {
    ?>Die Mail konnte nicht versendet werden<?php
    }else {?><form action="/~admin128/wordpress/index.php?page_id=19" method="post">
    <!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. -->
    <dl>
    <dt><br /><strong>Name und Vorname:</strong></dt>
    <dt>
    <input type="text" name="Versender" />
    </dt>
    <dt><br /><strong>Telefon Privat:</strong></dt>
    <dt>
    <input type="text" name="telprivat" />
    </dt>

    <dt><br /><strong>Telefon Gesch&auml;ft:</strong></dt>
    <dt>
    <input type="text" name="telgeschaeft" />
    </dt>
    <dt><br />
    <strong>Ihre E-Mail:</strong></dt>
    <dt>
    <input type="text" name="E-Mail" />
    </dt>
    <dt><br />
    <strong>Ich m&ouml;chte folgende Kurse besuchen:</strong></dt>
    <dt>
    <input type="checkbox" name="Kurs[]" value="Privat" />Privat <input type="checkbox" name="Kurs[]" value="Gruppe" />Gruppe <input type="checkbox" name="Kurs[]" value="Halbprivat" />Halbprivat <input type="checkbox" name="Kurs[]" value="Women" />Women<input type="checkbox" name="Kurs[]" value="Junioren" />Junioren <input type="checkbox" name="Kurs[]" value="Bambino" />Bambino</dt>
    <dt><br />

    <strong>Ich beurteile mich als:</strong></dt><dt> <input type="radio" name="Level" value="leicht Fortgeschritten" />leicht Fortgeschritten<input type="radio" name="Level" value="Fortgeschritten" />Fortgeschritten <input type="radio" name="Level" value="Tournierspieler" />Tournierspieler</dt><dt><br />
    <strong>Wunschtag 1. Priorität:</strong></dt>
    <dt>
    <input type="text" name="Prioritaet1" />
    </dt>
    <dt><br />
    <strong>Wunschtag 2. Priorität:</strong></dt>
    <dt>
    <input type="text" name="Prioritaet2" />
    </dt>
    <dt><br />
    <strong>Haben Sie weitere Bemerkungen oder Informationen:</strong></dt>
    <dt>
    <textarea name="Bemerkungen" rows="3" cols="20">Bemerkungen</textarea>
    </dt>
    </dl>
    <!-- Ende der Beispielangaben -->
    <p>
    <input type="submit" value="Senden" />
    <input type="reset" value="Abbrechen" />
    </p>
    </form><?php }

    }
    ?>
    </phpcode>

  • Was ist denn jetzt Dein Problem? Erfolgt eine Fehlermeldung, wenn ja --> welche?

    vG

    Arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • yup (sorry)


    Parse error: parse error, unexpected T_ELSE in /var/www/html/wordpress/wp-content/plugins/phpexec.php(61) : eval()’d code on line 52

  • Sorry, kann ich hier und jetzt nicht austesten. Da müste Dich bis heute Abend jemand anders unterstützen, da ich auf der Arbeit bin (habe im Beruf (leider) nichts mit PHP etc. pp. am Hut).

    Aber Deine Vermutung wird schon richtig sein: da muß irgendwo eine Klammer fehlen....

    Dann kann ich mir das näher ansehen. Lass mir mal bitte den Link zu dem Plugin zukommen, das Du für die PHP-Codeausführung verwendest.

    vG

    Arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • Habe mir das ganze gerade nun doch kurz angesehen und das Coding neu ausgerichtet sowie etwas überarbeitet:



    Fehler 1: Der erste Zweig von If($_POST)... war nicht abgeschlossen. Daher die Fehlermeldung (oben korrigiert)
    Fehler 2: (nicht rausgenommen) Entweder 2 Zeilen über "Wunschtag 1. Priorität" oder 1 Zeile darunter ist ein <dt>-Tag zuviel. Der HTML-Code ist so nicht valide.

    vG

    Arno

    PS Die Einrückung/Ausrichtung (nach Entscheidungsebenen) geht leider beim Pasten in das Forum verloren....

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

    Einmal editiert, zuletzt von Arno Simon (5. Dezember 2005 um 13:24)

  • OH MEIN GOTT!! Es funktioniert!

    Vielen Dank!!
    Ich habe echt die letzten Wochen bloss admit zugebracht dieses Dings hinzukriegen. Ich weiss gar nicht was ich sagen soll.

    Ich stehe echt tief in deiner Schuld.
    Keine Sorge, das mit der Ausrichtung ist einfach zu lösen :)

    Noch eine kleine Seitenfrage: Wäre es möglich mit htmlentities die Umlaute im E-Mail auszugeben, oder kann man da nichts machen?

    Einmal editiert, zuletzt von Tascha (5. Dezember 2005 um 13:10)

  • Sorry, aber für das Problem würde ich an Deiner Stelle in einem anderen Forumsbereich einen neuen Beitrag aufmachen. Da kann ich Dir nix zu sagen.

    vG

    Arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!