Ergebnis 1 bis 7 von 7

Thema: Inserttag im externen Formular nutzen möglich?

  1. #1
    Contao-Fan Avatar von varix
    Registriert seit
    26.03.2010.
    Ort
    Berlin
    Beiträge
    626

    Standard Inserttag im externen Formular nutzen möglich?

    Hallo Leute,

    ich habe für ein externes Newsletterprogramm (Supermailer) ein Formular (An- und Abmeldung), dass ich per Insertag einbinde. Auch die Übergabe/Erzeugung des token funktioniert soweit.
    Die Verarbeitung des Formulars findet in der newsletter.php statt, die im Ordner templates liegt. Dementsprechend steht im Formular action="newsletter.php"

    HTML-Code:
    <?php 
    $token = $this->replaceInsertTags('{{request_token}}'); 
    ?>
    
     <!--Newsletteranmeldung beginnt hier-->
    <form method="POST" action="newsletter.php">
    <input type="hidden" name="REQUEST_TOKEN" value="<?PHP echo $token;?>">
      <p><b>Newsletter An-/
      Abmeldung</b></p>
      <p>Ihre E-Mail-Adresse:<br>
      <input type="text" name="EMail" size="37"></p>
      <p>Sie möchten sich für
      unseren Newsletter</p>
      <p><input type="radio" value="subscribe" checked name="Action">
      anmelden<br>
      <input type="radio" name="Action" value="unsubscribe"> abmelden</p>
      <p>[nbsp]</p>
      <p>
      <input type="submit" value="Abschicken" name="SubmitBtn">
      </p>
    </form>
    <!--Newsletteranmeldung endet hier-->
    Hier kommt es natürlich zu einen unerlaubten Zugriff. Also habe ich es ersetzt durch:
    HTML-Code:
    <form method="POST" action="{{file::newsletter.php}}">
    Da es sich aber um ein externes Formular handelt, sind die Instettags nicht bekannt. Wie kann ich diesen {{file::newsletter.php}} importieren?

    varix

  2. #2
    Contao-Fan Avatar von varix
    Registriert seit
    26.03.2010.
    Ort
    Berlin
    Beiträge
    626

    Standard

    Hat kenier eine Idee, wie ich den Inserttag {{file::...}} in einem externen Formular bei action="{{file::....}} verwenden kann?

  3. #3
    Contao-Nutzer Avatar von geraldo
    Registriert seit
    30.05.2011.
    Ort
    Calheta de São Miguel
    Beiträge
    141

    Standard

    Hallo Varix

    Ich war genauso weit wie du gekommen. Nicht mit Supermailer, sondern ich musste ein Mailformular einbinden. Glüchlicherweise hatte ich gesucht nach
    "contao insert tag form action", denn bei Google zwei Zeilen weiter oben stand die Lösung.
    HTML-Code:
    <form action="index.php/Kontakt.html" id="f1" method="post" enctype="application/x-www-form-urlencoded">
    Man kann in der form action auch ein .html angeben, wenn es denn eine action durchführt. und ein Modul, das ein php-script aufruft, kann man in html aufrufen.

    Erfasse ein Modul, dass dein Script aufruft und binde es in deine aufrufende Seite ein. Dein Newsletter php legt's Du mit er Endung .tpl in templates ab. Dann flutscht das.
    Hoffe geholfen zu haben.
    Geraldo

    Ergänzung für NewBies wie mich
    Wenn Du Dein Script mit Parameter aufrufst, solltest Du natuerlich auch im php den Parameter wieder anziehen, ansonsten verliest Du z.B. beim Reload im Fehlerfall Deinen den Kontext
    z.B. BOWSER: http://pfad/anfrage-formular.html?show=RR-01
    im PHP dann z.B.
    PHP-Code:
    switch (@$_REQUEST["show"]) { case ...} 
    HTML-Code:
    <form method="post" class="yform columnar" action="/pfad/anfrage-formular.html?show=<?php echo $_GET["show"];?>"
    Geraldo
    Geändert von geraldo (16.11.2011 um 13:10 Uhr) Grund: Ergänzung für NewBies wie mich
    Cumprimentos von Geraldo
    Reiseträume

  4. #4
    Contao-Nutzer
    Registriert seit
    10.12.2015.
    Beiträge
    31

    Standard

    Hallo,

    ich muss diesen Fred mal ausgraben. Ich versuche, das Supermailer Script in eine Contao 3.5.x einzubinden.

    Die Einbindung des Formulars habe ich wie Varix gelöst. Nun habe ich aber immer noch das Problem, dass beim Absende Button nix passiert... außer 404 Fehlerseite.

    Ich habe versucht, Geraldos Hinweise umzusetzen, aber da passiert auch nichts weiter.

    HTML-Code:
    <form action="newsletter.php" id="f1" method="post" enctype="application/x-www-form-urlencoded">
    oder

    HTML-Code:
    <form action="newsletter.tpl" id="f1" method="post" enctype="application/x-www-form-urlencoded">
    erzeugt nur eine weiße Seite

    Das ist der abgewandelte Original Code

    HTML-Code:
    <!--Newsletteranmeldung beginnt hier-->
    <form method="POST" action="newsletter.php">
      <p><font face="Verdana, Arial, Helvetica" size="1"><b>Newsletter An-/
      Abmeldung</b></font></p>
      <p><font face="Verdana, Arial, Helvetica" size="1">Ihre E-Mail-Adresse:<br>
      <input type="text" name="EMail" size="37"></font></p>
      <p><font face="Verdana, Arial, Helvetica" size="1">Sie möchten sich für
      unseren Newsletter</font></p>
      <p><font face="Verdana, Arial, Helvetica" size="1"><input type="radio" value="subscribe" checked name="Action">
      anmelden<br>
      <input type="radio" name="Action" value="unsubscribe"> abmelden</font></p>
      <p>&nbsp;</p>
      <p><font face="Verdana, Arial, Helvetica" size="1">
      <input type="submit" value="Abschicken" name="SubmitBtn"></font>
      <span style="font-size:7pt">Powered&nbsp;by&nbsp;
      <a href="http://www.supermailer.de" target="_blank">SuperMailer</a></span>
      </p>
    </form>
    <!--Newsletteranmeldung endet hier-->
    Kann mir jemand helfen und sagen, wie die eigentliche newsletter.php ausgeführt werden kann?? Alle Dateien liegen im Ordner "templates".

    Danke!

  5. #5
    Contao-Fan Avatar von Ainschy
    Registriert seit
    24.06.2009.
    Ort
    Wenden
    Beiträge
    796
    Partner-ID
    5666
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Deine newletter.php muss in deinem Fall im Dokument-Root liegen. Das Template Verzeichnis ist nicht von Außen aufrufbar.

  6. #6
    Administratorin Avatar von lucina
    Registriert seit
    19.06.2009.
    Ort
    Kiel (DE)
    Beiträge
    7.339
    Partner-ID
    152
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich hatte das vor einiger Zeit mal anders gelöst und wollte den Supermailer weder ins Domainroot noch woanders in Contao-Verzeichnis haben, da ich das aus Sicherheitsgründen einzig über die IP-Adresse des Webservers von Contao aus erreichbar machen wollte. Folglich habe ich den Supermailer in einem nur restriktiv zugänglichen Verzeichnis mit einer Subdomain geparkt (da ist es dann egal wo es auf dem Server liegt ...) und ein Formular aus /templates mit {{file::meinSupermailerFormuler.php}} in die Seite eingebunden.

    Mein Template dazu sah in etwa so aus:
    PHP-Code:
    <!-- Newsletteranmeldung beginnt hier-->
    <form method="POST" action="https://meinesicheredomain.ch/meinsupermailernewsletterscript.php" enctype="application/x-www-form-urlencoded" class="form-inline">
    <input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formSubmit?>" />
    <input type="hidden" name="Action" value="subscribe" />
    <!-- ein paar andere hässliche dinge -->
      <p><b>Newsletter-Anmeldung</b></p>
      <div class="form-group">
    <input type="text" class="text form-control" name="EMail" size="37" placeholder="Ihre E-Mail-Adresse">
    <input type="submit" value="Abschicken" name="SubmitBtn" class="meineCSSKlasse">
    </div>
    </form>
    <!--Newsletteranmeldung endet hier-->
    Vermutlich hätte man das auch direkt aus dem Formgenerator hinbekommen können ... ;-)

  7. #7
    Contao-Nutzer
    Registriert seit
    10.12.2015.
    Beiträge
    31

    Standard

    Zitat Zitat von Ainschy Beitrag anzeigen
    Deine newletter.php muss in deinem Fall im Dokument-Root liegen. Das Template Verzeichnis ist nicht von Außen aufrufbar.
    DANKE! Das war der Fehler, der bei Supermailer nicht eindeutig beschrieben ist.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •