Datenschutz Impressum

NOF-Schule | Forum

zur Schule NOF-NetObjects-Tutorials von Tommy Herrmann


Kontaktformular via Formular-Handler
#16
Hi Tommy,

alles klar.

Gruss Dietmar
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#17
Hi Thommy,
bin nun langsam doch am verzweifeln.
Habe gestern noch bis nach Mitternacht versucht das Problem zu lösen. Leider vergeblich. Ich lande zum Schluss immer wieder auf die Hinweisseite, dass die Mail raus ist und man sich beim Absender melden wird. Ich habe versucht auf eine andere Seite zu verweisen. Habe versucht zu verlinken laut Generator (erste der 3 Auswahlmöglichkeiten), alles vergebens.Kommt das Script eventuell gar nicht bis zum Punkt der Öffnung der hinterfragten Seite (okkontakt.html) und zeigt mir deshalb diesen Satz auf weissem Hintergrund ohne dann weitere Befehle abzuarbeiten. Fragen über Fragen. Ist schon blöd, wenn man nur ansatzweise Pascal gelernt hat. PHP wäre wohl sinnvoller gewesen.
Mit freundlichen Grüssen
Dietmar Brusch
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#18
Moin,

sorry - war den ganzen Tag unterwegs Sad

Ich hatte Dir das gestern nicht ganz richtig gesagt - das mit dem "include" inkludiert natürlich eine Seite, die dann auf der gleichen Seite mit eingebunden werden würde Sad


Was Du willst ist eine automatische Weiterleitung auf eine Erfolgsseite. Ich habe diese jetzt hier mal "gesendet.html" genannt und für Dich das als Beispiel nochmals hier ausprobiert.

http://www.nof-tutorials.com/Test-Formul...erleitung/

Wähle also auf der 1. Seite vom "Formular-Generator" > "Automatische Weiterleitung" (die Sekunden kannst Du dort dann auch einstellen, jetzt steht es unverändert auf 6 Sekunden oder man klick vorher auf den Link).

Hier mein verwendeter Code. Es ist alles fertig, Du musst nur noch eine Seite "gesendet" erstellen und Deine eMail eintragen bei der Variable "$Mailto":

Zitat:$Mailto = "name@example.com";

PHP-Code:
<!DOCTYPE html>
<
html lang="de">
 <
head>
 
 <meta charset="UTF-8">
 
 <title></title>

 
 <style>
 
 bodytextarea {
 
  font-familyVerdanaSans-Serif;
 
  font-size14px;
 
 }

 
 span.pflichtfeld {
 
  font-size12px;
 
  colorRed;
 
 }

 
 span.hilfetext {
 
  font-size10px;
 
  font-styleOblique;
 
 }

 
 blockquote {
 
  width475px;
 
 }
 
 </style>

 </
head>
<
body>

<?
php
/*
   Aktion: Formulardaten als E-Mail versenden.
   Formular - PHP 5.4+, Zeichenkodierung: UTF-8

   Erstellt mit dem Formular Generator (02.02.2018) - 
   http://www.nof-tutorials.com/Webbausteine-Formular-Generator/formulargenerator.php

   Bitte testen Sie das Formular ausführlich und
   beachten Sie die Hinweise im Quelltext!
*/

// PHP Fehlermeldungen (1 um das Formular zu testen) anzeigen.
error_reporting(1); // (0/1)

// Weiterleitung - Nach dem absenden des Formulars,
// gelangt der Benutzer über einen Link auf folgende Seite:
$Weiterleitung "gesendet.php";

// Automatische Weiterleitung
$Autoweiterleitung 6// Zeit in Sekunden

$name = isset($_POST["name"]) ? strip_tags(trim($_POST["name"])) : ""// Name
$email = isset($_POST["email"]) ? strip_tags(trim($_POST["email"])) : ""// E-Mail
$betreff = isset($_POST["betreff"]) ? strip_tags(trim($_POST["betreff"])) : ""// Betreff
$nachricht = isset($_POST["nachricht"]) ? strip_tags(trim($_POST["nachricht"])) : ""// Nachricht
$KopieCk = isset($_POST["Kopie"]) ? " checked='checked'" null// E-Mail Kopie

// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = ["name"=>"""email"=>"""betreff"=>"""nachricht"=>"""sicherheit"=>""];
if (isset(
$_POST["submit"])) {
 
$Fehler["name"] = strlen($_POST["name"]) < " Bitte füllen Sie dieses Feld aus!" "";
 
$Fehler["email"] = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false " Geben Sie eine gültige E-Mail-Adresse ein!" "";
 
$Fehler["betreff"] = strlen($_POST["betreff"]) < " Bitte füllen Sie dieses Feld aus!" "";
 
$Fehler["nachricht"] = strlen($_POST["nachricht"]) < 10 " Bitte füllen Sie dieses Feld aus (min. 10 Zeichen)!" "";
 
$Fehler["sicherheit"] = (md5($_POST["zip"]) != $_POST["zip2"]) ? "Die Rechenaufgabe ist leider falsch!" "";
}

// Sicherheitsabfrage - Rechenaufgabe
$Z0 = [mt_rand(19), mt_rand(19)];
$Z1 max($Z0); $Z2 min($Z0);
$Spam $Z1 " + &#" . (48 $Z2) . ";";
$Schutz md5($Z1 $Z2);

// Formular erstellen
$Formular "
<form action='" 
$_SERVER["SCRIPT_NAME"] . "' method='post'>

<p>
 <label> Name:
<span class='pflichtfeld'>✲ " 
$Fehler["name"] . "</span><br>
  <input type='text' name='name' value='" 
$name "' size='35' required='required'>
 </label>
</p>

<p>
 <label> E-Mail:
<span class='pflichtfeld'>✲ " 
$Fehler["email"] . "</span><br>
  <input type='email' name='email' value='" 
$email "' size='35' required='required'>
 </label>
</p>

<p>
 <label> Betreff:
<span class='pflichtfeld'>✲ " 
$Fehler["betreff"] . "</span><br>
  <input type='text' name='betreff' value='" 
$betreff "' size='45' required='required'>
 </label>
</p>

<p>
 <label> Nachricht:
 <span class='pflichtfeld'>✲ " 
$Fehler["nachricht"] . "</span><br>
 <textarea name='nachricht' cols='40' rows='8' required='required'>" 
$nachricht "</textarea>
 </label>
</p>

<p>
 <label> 
 <input type='checkbox' name='Kopie'" 
$KopieCk ">
 Eine Kopie dieser Nachricht an meine E-Mail Adresse
 </label>
</p>

<p>
 <label> Sicherheitsabfrage: 
 <span class='pflichtfeld'>✲ " 
$Fehler["sicherheit"] . "</span><br>
 <em>" 
$Spam "</em> = 
 <input type='text' name='zip' size='4' pattern='[0-9]{1,2}' required='required' autocomplete='off'>
 </label>
 <input type='hidden' name='zip2' value='" 
$Schutz "'>
 <br><span class='hilfetext'> Bitte lösen Sie die Rechenaufgabe. </span><br>
</p>

<p>
 <br>
 <input type='submit' name='vorschau' value='Vorschau' formnovalidate='formnovalidate'> - 
 <input type='submit' name='submit' value='Formular absenden'>
</p>

<p>
 <small>Bitte alle mit <span class='pflichtfeld'>✲</span>
 markierten Felder ausfüllen.</small>
</p>

</form>
"
;

// Vorschau
if (isset($_POST["vorschau"])) {
 echo 
strip_tags("<blockquote>
 <h4>Vorschau</h4>
 <b>Name:</b> 
$name <br>
 <b>E-Mail:</b> 
$email <br>
 <b>Betreff:</b> 
$betreff <br>
 <b>Nachricht:</b> <br>" 
nl2br($nachricht) . "
 </blockquote>"
"<blockquote><h4><b><br>");
}

// Formular abgesendet
if (isset($_POST["submit"])) {

 
// Sind keine Benutzer-Eingabefehler vorhanden
 
if (implode(""$Fehler) == "") {

 
 // Daten als E-Mail versenden (Vorschlag) - Bitte anpassen!

 
 // Zeitzone und das aktuelle Datum setzen
 
 // http://de3.php.net/manual/de/timezones.europe.php
 
 date_default_timezone_set("Europe/Berlin");
 
 $Datum date("d.m.Y H:i");

 
 // Empfänger E-Mail
 
 $Mailto "name@example.com";

 
 // Inhalt der E-Mail setzen
 
 $Text "   Gesendet am: $Datum Uhr
   Name: 
$name
   E-Mail: 
$email
   Betreff: 
$betreff
   Nachricht: 
$nachricht
  "
;

 
 // E-Mail versenden
 
 mb_internal_encoding("UTF-8");
 
 $Betreff mb_encode_mimeheader($betreff"UTF-8""Q");
 
 $Kopfzeile "MIME-Version: 1.0;\nFrom: " mb_encode_mimeheader($name"UTF-8""Q") .
 
  "<" $email ">" "\nContent-Type: text/plain; Charset=UTF-8;\n";

 
 if (mail($Mailto$Betreff$Text$Kopfzeile)) {

 
  echo "<p>Vielen Dank, die Nachricht wurde versendet.</p>";
 
 }
 
 else {

 
  // Wenn die Daten nicht versendet werden konnten,
 
  // wird die E-Mail-Adresse für den direkten Kontakt eingeblendet.
 
  echo "<p>Beim Senden der Nachricht ist ein Fehler aufgetreten!<br>" 
 
  "Bitte wenden Sie sich direkt an: <a href='mailto:" $Mailto "'>" $Mailto "</a></p>";
 
 }

 
 // E-Mail Kopie versenden (Vorschlag) - Bitte anpassen!
 
 if (isset($_POST["Kopie"])) {

 
  // Diese Nachricht wird an die E-Mail-Adresse des Besuchers gesendet.

 
  // Name/Signatur
 
  $Signatur "";

 
  // Betreff
 
  $Betreff "Kopie einer Nachricht";

 
  // Inhalt der E-Mail setzen
 
  $Text "   Vielen Dank für Ihren Besuch bei ...
   Wir haben folgende Nachricht erhalten:

   Name: 
$name
   E-Mail: 
$email
   Betreff: 
$betreff
   Nachricht: 
$nachricht

   Mit freundlichen Grüßen
    
$Signatur  
   "
;

 
  // E-Mail Kopie versenden
 
  $Betreff mb_encode_mimeheader($Betreff"UTF-8""Q");
 
  $Kopfzeile "MIME-Version: 1.0;\nFrom: " mb_encode_mimeheader($Signatur"UTF-8""Q") .
 
   "<" $Mailto ">" "\nContent-Type: text/plain; Charset=UTF-8;\n";
 
  if (mail($email$Betreff$Text$Kopfzeile)) {
 
   echo "<p>Sie erhalten eine Kopie der Nachricht an Ihre E-Mail-Adresse.</p>";
 
  }
 
 }

 
 // Automatische Weiterleitung
 
 echo "<script>window.setTimeout('location.href=\"" $Weiterleitung "\"', " $Autoweiterleitung "*1000);</script>
  <noscript><meta http-equiv='refresh' content='" 
$Autoweiterleitung "; URL=" $Weiterleitung "'></noscript>
  <p>Automatische Weiterleitung in " 
$Autoweiterleitung " Sekunden &hellip;<br>
   <a href='" 
$Weiterleitung "' target='_top'>Weiter</a></p>";
 }
 else {

 
 // Formular und Benutzer-Eingabefehler ausgeben
 
 echo $Formular;
 }
}
else {

 
// Formular ausgeben
 
echo $Formular;
}
?>

</body>
</html> 


Wolltest Du das direkt in ein Textfeld von NOF einbauen, dann benötigst Du nur den PHP-Teil, also von:

PHP-Code:
<?php

... bis

?>
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#19
Danke Thommy,

probiere ich gleich mal.
Mit freundlichen Grüssen
Dietmar Brusch
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#20
Hi Thommy,
ich nerve glaube ich langsam. Kann ich die fertige "gesendet.html" eventuell anzeigen lassen und wenn ja, wie mache ich das. Wenn nicht müsste ich mir dann doch die "gesendet.php" erst erstellen.
Mit freundlichen Grüssen
Dietmar Brusch
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#21
Moin,

so ganz verstehe ich Deine Frage jetzt gerade nicht. Hier mal ein Screenshot von diesem kleinen Test-Projekt, das ich gestern für Dich erstellt hatte.


.jpg  NOF-Formularseite.JPG (Größe: 37,98 KB / Downloads: 11)


In diesem Beispiel ...

http://www.nof-tutorials.com/Test-Formul...erleitung/

... habe ich nur 3 Seiten:

1. index.html - Startseite (Home) ganz oben

2. Kontakt.php - diese Seite (Kontakt) habe ich auf die Erweiterung .php umgestellt, da hier der PHP-Teil aus dem vom "Formular-Generator" generierten Formular eingebaut ist.

> Menü > Bearbeiten > Benutzerdefinierte Namen > Dateierweiterung > .php wählen


.jpg  Dateierweiterung.JPG (Größe: 20,26 KB / Downloads: 4)


3. gesendet.html - das (gesendet) ist die sogenannte Erfolgsseite, auf die aus dem PHP-Skript weitergeleitet wird.

Ich habe hier die gleiche Publizierungs-Struktur gewählt wie Du, nämlich "Nach Asset-Typ". Bei dieser Struktur legt NOF ein Verzeichnis "html" für alle Unterseiten an. Die beiden unteren Seiten "Kontakt" und "gesendet" liegen also in diesem, gleichen Verzeichnis "html".

Nur die Seite "Kontakt.php" muss die Dateierweiterung .php tragen, da ja nur diese Seite auch das PHP-Skript beinhalt und daher PHP verarbeitet werden muss, die Erfolgsseite "gesendet.html" ist doch dagegen eine ganz normale, in NOF aufgezogene, Seite.

Normalerweise würde man jetzt die Seite "gesendet.html" nur anzeigen, nachdem das Formular auch gesendet wurde, denn diese soll ja nur ein Hinweis auf den erfolgreichen Versand sein. Natürlich kann man diese auch alleine aufrufen, solange Du diese erstellt und auch bereits publiziert hast:

http://www.nof-tutorials.com/Test-Formul...endet.html

Wie diese Erfolgsseite nun heißt, ist doch vollkommen egal. Du könntest diese auch meinetwegen "kontakt_ok" benennen und diese würde dann von NOF als "kontakt_ok.html" an den Server publiziert werden. Dann müsstest Du eben im Skript, anstelle von "gesendet.html", "kontakt_ok.html" als Erfolgsseite eintragen.

P.S.:

... übrigens - ein Forum hat den Zweck, dass man Fragen stellt und Leute diese (hoffentlich) beantworten. Dafür ist ein Forum da und da kann man mit Fragen nicht "nerven" Smiling
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#22
Hi Thommy,

ich glaube ich gebe es bald auf.

Erhalte jetzt folgende Fehlermeldung der Weiterleitung.

"Parse error: syntax error, unexpected '$Weiterleitung ' (T_VARIABLE) in /customers/6/6/a/mgv-dorfitter.de/httpd.www/kontakt.php on line 48"

Ich komme garnicht erst ins Formular.

Die Zeile 48 lautet:             $Weiterleitung = "html/kontakt_ok.html";

Ich habe den relativen Pfad auch schon mit "./html/kontakt_ok.html" und mit "/html/kontakt_ok.html" probiert. Er findet die Datei einfach nicht.

Ich habe die Kontaktseite in "Formular" umgenannt (um nicht zweimal kontakt.php zu verwenden- einmmal als Seite und einmal im Inlineframe) und dann auf die Erweiterung .php umgestellt.
Mit freundlichen Grüssen
Dietmar Brusch
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#23
Du, ich kann Dir da jetzt auch nicht wirklich mit dem Aufbau Deiner Seite helfen Sad

Deine Seite ist "Nach Asset-Typ" aufgebaut und dementsprechend müsstest Du in NOF eine Seite "Kontakt" mit dem Einbau des PHP-Skriptes für das Formular und eine Seite "kontakt_ok" als Erfolgsseite anlegen.

Im Skript steht dann lediglich:

PHP-Code:
$Weiterleitung "kontakt_ok.html"

... mehr nicht. Was kann man da groß falsch machen :eek:
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#24
(03.02.2018, 13:25)hug_o schrieb: Erhalte jetzt folgende Fehlermeldung der Weiterleitung.

"Parse error: syntax error, unexpected '$Weiterleitung ' (T_VARIABLE) in /customers/6/6/a/mgv-dorfitter.de/httpd.www/kontakt.php on line 48"

Ich komme garnicht erst ins Formular.

Die Zeile 48 lautet:             $Weiterleitung = "html/kontakt_ok.html";

Da hast du einen Fehler in PHP gemacht! Vielleicht ein Anführungszeichen (") überschrieben?
Das kann schon vor der Zeile 48 passiert sein!
Gruß Werner
werner-zenk.de - Tipps und Lösungen rund um HTML, CSS, JavaScript und PHP
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#25
Hi Werner,

war heute den ganzen Tag unterwegs. Werde mich gleich nochmal meinem Problem widmen. Erst einmal schönen Dank.
Mit freundlichen Grüssen
Dietmar Brusch
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#26
Hallo Thommy, hallo Werner,

ich habe es jetzt geschafft das Formular so einzubinden, wie ich es wollte.
Die Zuweisung des relativen Pfades war ganz einfach falsch bei mir.
Ich habe es jetzt so gemacht, dass ich aus der Ebene des Formulars, 2 Ebenen nach unten auf die Hauptebene verweise und dann in die gewünschte Ebene des html-Ordners. Hier dann zur Seite Aktuelles.html, da ja die Info der Weitergabe der Email schon als Textfeld erscheint (../../html/aktuelles.html).

Ich danke Euch ganz herzlich für alle Informationen.
Mit freundlichen Grüssen
Dietmar Brusch
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#27
thumbs up
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  NOF 13 Kontakt Handler SerAxel 2 27 Gestern, 16:45
Letzter Beitrag: Rancher
  SSL-Zertifikat: Was ändert sich für das Formular? kommanet 12 377 25.06.2018, 15:45
Letzter Beitrag: kommanet
  Formular mit htaccess Gezoba 5 247 13.04.2018, 11:42
Letzter Beitrag: Gezoba
  formular einfügen hubsi 7 399 11.12.2017, 12:05
Letzter Beitrag: Tommy Herrmann
  Kontaktformular dittrich 3 553 02.09.2017, 18:43
Letzter Beitrag: dittrich
  Kontaktformular (Datenübermittlung) Kornab 2 449 15.04.2017, 08:13
Letzter Beitrag: Kornab
  Formular-Handler, Schriftgröße ändern PeterT 1 856 16.02.2017, 17:32
Letzter Beitrag: Tommy Herrmann
  Formular-Handler PeterT 3 620 10.02.2017, 14:28
Letzter Beitrag: PeterT
  Formular Handler, Fehler 701 Dieter53 17 1.730 09.02.2017, 21:47
Letzter Beitrag: Dieter53
  Formular Werkzeug encanto 57 3.692 22.12.2016, 13:23
Letzter Beitrag: encanto



Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
nach oben An den Anfang der Seite scrollen
NetObjects Fusion Infos, Downloads und Updates Diese Website wird durch Bot-Trap vor Spam geschützt!