[GastForen Programmierung/Entwicklung JavaScript PHP Kontaktformular - Sende-Erfolgsmeldung als "Alert" - (Wie) geht das?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

PHP Kontaktformular - Sende-Erfolgsmeldung als "Alert" - (Wie) geht das?

homeedition
Beiträge gesamt: 197

20. Jun 2014, 10:49
Beitrag # 1 von 3
Bewertung:
(34721 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich habe ein PHP Kontaktformular und zur Zeit wird die Erfolgsmeldung, nach dem Senden, des Formulars in einer leeren Page angezeigt, da ich aber eine OnePage habe ist das sehr doof wenn, nach dem Senden, eine leere Page mit der Erfolgsmeldung angezeigt wird.

Deshalb möchte ich gerne dass nach dem Drücken auf den "Senden"-Button die Erfolgsmeldung "Ihre Nachricht wurde versendet" als Alert erscheint und die Seite nicht gewechselt wird.

Ist das Irgendwie möglich? - Das wäre super!

Hier mal das gesamte Formular-Script:
Code
<style type="text/css"> 

body {
text-align:center;
}
<!--
.titel {
font-family: 'Alegreya Sans SC', sans-serif;
font-size: 14pt;
font-weight: 400;
color: #000;
}
.inhalte {
font-family: 'Alegreya Sans', sans-serif;
font-size: 12pt;
font-weight: 400;
color: #000;
}
-->
</style>


<!-- .......................................................................... -->
<!-- Anfang Formular -->
<!-- .......................................................................... -->
<script language=JavaScript>
<!--
function isValid() {

var msg = "";

if (kontaktFormular.eMail.value.indexOf("@") < 1 ||
kontaktFormular.eMail.value.indexOf(".") < 1) {
msg += "- Die E-Mail-Adresse ist syntaktisch nicht korrekt.\n";
}

if(kontaktFormular.vorName.value == "") {
msg += "- Leeres Feld: Name:\n";
}

if(kontaktFormular.betreff1.value == "") {
msg += "- Leeres Feld: Betreff:\n";
}

if(kontaktFormular.nachricht.value == "") {
msg += "- Leeres Feld: Nachricht:\n";
}

if(msg == "") {
return true;
}
alert(msg);
return false;
}
-->
</script>
<?php

$formularAnzeigen = false;
if (!empty($_POST["senden"]) && (
empty($_POST["vorName"]) ||
empty($_POST["eMail"]) ||
empty($_POST["nachricht"]))) {
$formularAnzeigen = true;
echo '<span style="color: #FF0000; font-size: x-large;">Bitte alle Pflichtfelder ausfuellen.</span>';
} else if (!empty($_POST["senden"]) &&
!isEmail($_POST["eMail"])) {
$formularAnzeigen = true;
echo '<span style="color: #FF0000; font-size: x-large;">Die E-Mail-Adresse ist nicht korrekt.</span>';
} else if (empty($_POST["senden"])) {
$formularAnzeigen = true;
}
if ($formularAnzeigen) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href='http://fonts.googleapis.com/css?family=Alegreya+Sans:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,800,800italic,900,900italic' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Alegreya+Sans+SC:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,800,800italic,900,900italic' rel='stylesheet' type='text/css'>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Kontaktformular</title>
</head>
<body>
<form action="<?=$_SERVER[PHP_SELF]; ?>" method="post" name="kontaktFormular" class="titel" onSubmit="return isValid()">
<table width="750" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
<tr>
<td width="750" align="center" valign="top"><span class="titel">Anrede:</span><span class="inhalte"><br />
<select style="font-family: 'Alegreya Sans', sans-serif; font-size: 10pt; font-weight: 400; color: #000;" name="anrede">
<option <?=($_POST['anrede']=='Frau')?'selected':''?>>Frau</option>
<option <?=($_POST['anrede']=='Herr')?'selected':''?>>Herr</option>
</select>
</span></td>
</tr>
<tr>
<td align="center" valign="top"><br />
<span class="titel">*Name:</span><br />
<span class="inhalte">
<input name="vorName" type="text" style="font-family: 'Alegreya Sans', sans-serif; font-size: 10pt; font-weight: 400; color: #000;" value="<?=$_POST['vorName']; ?>" size="50" />
</span></td>
</tr>
<tr>
<td align="center" valign="top"><br />
<span class="titel">eMail*:</span><br />
<span class="inhalte">
<input name="eMail" type="text" id="eMail" style="font-family: 'Alegreya Sans', sans-serif; font-size: 10pt; font-weight: 400; color: #000;" value="<?=$_POST['eMail']; ?>" size="50" />
</span></td>
</tr>
<tr>
<td align="center" valign="top"><span class="inhalte"><br />
<br />
</span><span class="titel">Betreff:</span><span class="inhalte"><br />

<input name="betreff1" type="text" id="betreff1" style="font-family: 'Alegreya Sans', sans-serif; font-size: 10pt; font-weight: 400; color: #000;" value="<?=$_POST['betreff1']; ?>" size="50" />
</span></td>
</tr>
<tr>
<td align="center" valign="top"><span class="inhalte"><br />
</span><span class="titel">Nachricht*:</span><span class="inhalte"><br />

<textarea style="font-family: 'Alegreya Sans', sans-serif; font-size: 10pt; font-weight: 400; color: #000;" name="nachricht" cols="100" rows="8"><?=$_POST['nachricht']; ?>
</textarea>
</span></td>
</tr>
<tr>
<td align="center" valign="top" class="titel"><br />
M&ouml;chten Sie eine Kopie Ihrer Nachricht erhalten?<br />
<input style="font-family: 'Alegreya Sans', sans-serif; font-size: 10pt; font-weight: 400; color: #000;" name="kopie" type="checkbox" class="inhalte" value="checked" checked="checked" <?=$_POST['kopie']; ?> />
</td>
</tr>
<tr>
<td height="53" align="center" valign="top"><br /> <input style="font-family: 'Alegreya Sans', sans-serif; font-size: 10pt; font-weight: 400; color: #000;" name="senden" type="submit" class="titel" value="Nachricht senden" />
<br />
<?php
echo'';
} else {
$eMail = '

Anrede:
'.$_POST['anrede'].'

Name:
'.$_POST['vorName'].'

E-Mail:
'.$_POST['eMail'].'

Betreff:
'.$_POST['betreff1'].'

Nachricht:
'.$_POST['nachricht'].'

Kopie der Nachricht:
'.$_POST['kopie'].'';

if (@mail("meineemail@email.de",
"Neue Nachricht - Kontaktformular",
$eMail)) {
echo "Ihre Nachricht wurde versendet, vielen Dank!<br />";
} else {
echo "E-Mail-Verkehr funktioniert zur Zeit nicht<br />";
}
if ($_POST['kopie']) {
if (@mail($_POST['eMail'],
"Kopie Ihrer eMail",
$eMail)) {
echo "Sie haben eine Kopie Ihrer Nachricht zugesendet bekommen.<br />";
}
}
}

function isEmail($email) {
$nonascii = "\x80-\xff";
$nqtext = "[^\\$nonascii\015\012\"]";
$qchar = "\\[^$nonascii]";
$protocol = "(?:mailto:)";
$normuser = "[a-zA-Z0-9][a-zA-Z0-9_.-]*";
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";
$dom_mainpart = "[a-zA-Z0-9][a-zA-Z0-9._-]*\.";
$dom_subpart = "(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\.)*";
$dom_tldpart = "[a-zA-Z]{2,5}";
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";
$regex = "$protocol?$user_part\@$domain_part";
if (preg_match("/^$regex$/",$email)) {
return true;
}
return false;
}
?>

<!-- ............................................................... -->
<!-- Ende KontaktFormular -->
<!-- ............................................................... --></td>
</tr>
</table>
</form>
</body>
</html>


Vielleicht kann mir ja jemand helfen, vielen Dank :)
X

PHP Kontaktformular - Sende-Erfolgsmeldung als "Alert" - (Wie) geht das?

Intermedia
Beiträge gesamt: 1287

20. Jun 2014, 16:54
Beitrag # 2 von 3
Beitrag ID: #528673
Bewertung:
(34674 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

also was du da vor hast wird mit diesem Ansatz nicht funktionieren, da das Formular sonst nicht verschickt wird.

Sowas kann man mit Ajax realisieren, das bedeutet von vorne anfangen.

Du hältst dich auch nicht an das EVA Prinzip und machst dir die Arbeit dadurch nur unnötig schwer.

Dann fallen mir auf Anhieb noch Sicherheitslücken auf.

Lies dir das mal durch: http://blog.oncode.info/...-site-scripting-xss/

und dann das: http://www.robo47.net/...ist-tot-es-lebe-mail

Deine Validierung der E-Mail ist auch sehr abenteuerlich. ;-)
Sowas kann PHP von sich aus: http://php.net/...mples.validation.php


Was den Einsatz von Tabellen betrifft, ist das hier sowas von überflüssig.... ;-)


http://www.aurahysil.de?hds Mit Aurahysil Freizeit schaffen - Beschichtungen der besonderen Art - http://www.intermedia-bg.de?hds INTERMEDIA bürogemeinschaft


als Antwort auf: [#528655]

PHP Kontaktformular - Sende-Erfolgsmeldung als "Alert" - (Wie) geht das?

homeedition
Beiträge gesamt: 197

26. Jun 2014, 10:09
Beitrag # 3 von 3
Beitrag ID: #528873
Bewertung:
(34605 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank erstmal :)
Ich werde es mal mit ajax versuchen :)


als Antwort auf: [#528673]

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
25.01.2021 - 26.01.2021

Digicomp Academy AG, Bern oder Zürich
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

In diesem Basic-Kurs lernen Sie das Wichtigste über den Aufbau und die Funktionsweise von Photoshop. Zusammen mit den notwendigen Grundlagen von Farbenlehre bis Bildauflösung lernen Sie zudem die kreativen Möglichkeiten von Photoshop kennen.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/PHOTM1

Veranstaltungen
25.01.2021 - 26.01.2021

Digicomp Academy AG, Zürich oder virtuell
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

Im Kurs lernen Sie die Schritte vom Import des Rohmaterials bis zum fertig exportierten Clip kennen. Dazu zählen die Materialverwaltung, das Trimmen für Roh- und Feinschnitt, Blenden, Titel und Effekte und eine Übersicht über die wichtigsten Formate.

Preis: CHF 1'700.-
Dauer: 2 Tage

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/AP6

Neuste Foreneinträge


Exel ohne leeres Tabellenblatt starten

Illustrator Skript Übersatztext - Hilfe benötigt

[GREP] beliebige Zeichen finden und durch selbe Anzahl an Leerzeichen oder Anzahl Zeichen "x" ersetzen

Text- oder Grafikrahmen nach Position und Größe suchen und ändern

InDesign 2021 – Suchen/Ersetzen: Farbe

Langsamer MacMini

Netzwerklaufwerke verbinden -> Bei nicht verfügbar Fehlermeldung unterdrücken

Balken hinter einen Bildteil

Geteiltes Album

Verschiedene Netzwerke Handeln
medienjobs