• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kontaktformular

Status
Für weitere Antworten geschlossen.
hey,

nur mal so als idee:

warum verzichtest du nicht ganz auf die javascript geschichte und wertest die eingegebenen daten über php aus. dann kannst du auch leichter sie von freak angesprochenen sicherheitsfunktionen einbauen.
 
Werbung:
Ich hab doch geschrieben, dass ich gerne auf das javascript verzichten würde. Mein Ziel ist es doch, dass die Fehlerausgabe über dem Kontaktformular erscheint also skizze (und dies geht ja mit php oder?)

Du hast deine Vornamen nicht eingegeben
Du hast keine gültige Email angegeben
___________________________________________________________
Kontaktformular:
Vorname:
Nachname: Muster
Email:martin
Betreff: Betreff
Nachricht: asdfasdasasdasd

Nur leider weiß ich nicht wie die jeweiligen php Befehle funktionieren, für so eine Fehlerausgabe. Also vielleicht könntet ihr mir eine Seite bzw. den Code dafür geben. Ich versuche gerade php zu lernen, und dies ist mein erstes "Projekt" mit php. Bisher habe ich immer nur mit html gearbeitet (bin aber auch drain noch lang kein Meister). Aber da ich im Internet gelsen habe, dass ein kontaktforumlar mit html nur sehr schwer zu realisieren ist bzw gar nicht, habe ich mir gedacht machst halt ein Kontaktformukar mit php und lernst dabei ein wenig die Sprache
 
hey,

habe mich jetzt extra mal rangesetzt und versucht das für dich zu machen, ob es gleich funktioniert kann ich dir nicht sagen, habs nicht getestet, aber im prinzip sollte es gehen. erstmal ohne sicherheitsfunktionen:

PHP:
<?php
$allesok = 0;

if (isset($_GET['submit']) {

//Hier alle Get-Variablen speichern
$bla = $_GET['bla'];

  if ($bla == '') {
    echo 'Fehler: Kein bla eingegeben';
  } else if ($bla2 == '') {
    echo 'Fehler: Kein bla2 eingegeben';  
  } else if {//Für jede Variable einmal
  } else $allesok = 1;

}

if ($allesok == 0) {

//Hier dein Formular einfügen

}

if ($allesok == 1) {

//Hier wird gesendet

} 
?>
 
Werbung:
K danke erstmal, dass du dich rangesetzt hast, aber leider versteh ich den Code nicht so ganz. Ich hab doch 2 Dateien: Kontakt.php und kontakt-auswerte. Die Daten von Kontakt.php werden an kontakt-auswerten.php übergeben, und dort ausgewertet. Dein Code ist aber nur als eine php Datei ausgelegt. Kann ich nicht einfach anstatt dem Java script Teil, deine Fehlerausgabe benutzen? Weil mein kontakt-auswerten.php ist ja ählich aufgebaut.
Also soweit ich das dann mit meinen Kenntnissen umsetzen kann wäre mit einer Datei:

Code:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kontaktformular</title>
<link href="Kontakt.css" rel="stylesheet" type="text/css" />
</head>
<body>
[COLOR=#000000][COLOR=#0000bb]<?php
$allesok [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700];

if (isset([/COLOR][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'submit'[/COLOR][COLOR=#007700]]) {

[/COLOR][COLOR=#ff8000]//Hier alle Get-Variablen speichern[/COLOR][/COLOR]
$submit = $_POST['submit'];
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];
$email = $_POST['email'];
$strasse = $_POST['strasse'];
$plz = $_POST['plz'];
$homepage = $_POST['homepage'];

[COLOR=#000000][COLOR=#007700]if ([/COLOR][COLOR=#0000bb]$vorname [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#dd0000]''[/COLOR][COLOR=#007700]) {
    echo [/COLOR][COLOR=#dd0000]'Fehler: Kein Vorname eingegeben'[/COLOR][COLOR=#007700];
  } else if ([/COLOR][COLOR=#0000bb]$nachname [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#dd0000]''[/COLOR][COLOR=#007700]) {
    echo [/COLOR][COLOR=#dd0000]'Fehler: Kein Nachname eingegeben'[/COLOR][COLOR=#007700];  
[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]} else if ([/COLOR][COLOR=#0000bb]$email [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#dd0000]''[/COLOR][COLOR=#007700]) {
    echo [/COLOR][COLOR=#dd0000]'Fehler: Keine Email eingegeben'[/COLOR][COLOR=#007700];[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]
} else if ([/COLOR][COLOR=#0000bb]$betreff [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#dd0000]''[/COLOR][COLOR=#007700]) {
    echo [/COLOR][COLOR=#dd0000]'Fehler: Kein Betreff eingegeben'[/COLOR][COLOR=#007700];
[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]} else if ([/COLOR][COLOR=#0000bb]$nachricht [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#dd0000]''[/COLOR][COLOR=#007700]) {
    echo [/COLOR][COLOR=#dd0000]'Fehler: Keine Nachricht eingegeben'[/COLOR][COLOR=#007700];[/COLOR][/COLOR]
[COLOR=#000000][COLOR=#007700]} else [/COLOR][COLOR=#0000bb]$allesok [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700];

}

if ([/COLOR][COLOR=#0000bb]$allesok [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700]) {
[/COLOR][/COLOR][COLOR=#000000][COLOR=#ff8000]//Hier dein Formular einfügen
[/COLOR][/COLOR]<form action="kontakt.php?action=send" method="POST">
<div class="Komplett">
  <div class="Linkeseite">Vorname*
    <input name="vorname" type="text" class="Textfeld" id="Vorname" />
    <br />
    Nachname*
    <input name="nachname" type="text" class="Textfeld" id="Name" />
    Email*
    <input name="email" type="text" class="Textfeld" id="Email" />
    <br />
    Betreff*
    <input name="betreff" type="text" class="Textfeld" id="Betreff" />
  </div>
  <div class="Rechte">Telefon
    <input name="telefon" type="text" class="Textfeld" id="Telefon" />
    Strasse
    <input name="strasse" type="text" class="Textfeld" id="Strasse" />
    <br />
    PLZ/Ort
    <input name="plz" type="text" class="Textfeld" id="PLZ" />
    <br />
    Homepage<br />
    <input name="homepage" type="text" class="Textfeld" id="Homepage" />
  </div>
  <p><br />
  </p>
  <p>&nbsp; </p>
  <p>Ihre Nachricht:*<br />
    <textarea name="nachricht" class="Nachricht" id="Nachricht"></textarea>
    <br />
  </p>
  </p>
  Die mit * markierten Felder sind Pflichtfelder
  <p>&nbsp; </p>
  <div>
    <div align="center">
      <input name="submit" type="submit" class="Button" id="submit" value="Absenden" />
      <input name="reset" type="submit" class="Button" id="reset" value="Zuruecksetzen" />
    </div>
  </div>
</div>
</form>
[COLOR=#000000][COLOR=#007700]}[/COLOR][/COLOR]

if ($submit == "Absenden") {
 # E-Mail-Adresse
 $an ="[email protected]";

[COLOR=#000000][COLOR=#007700]if ([/COLOR][COLOR=#0000bb]$allesok [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700]) {

[/COLOR][COLOR=#ff8000]//Hier wird gesendet[/COLOR][/COLOR]

 # Nachricht der E-Mail-Adresse
 $text ="Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n
 ====\n $nachricht\n====\n\nSie können $vorname $nachname unter dieser $email erreichen.
 \n Weitere Daten zum Absender: \n Strasse: $strasse \n Postleizahl/Ort $plz \n Homepage: $homepage"
 ;
 mail($an,$betreff,$text,"From: ".$email);
 echo "<b>Ihre Nachricht wurde gesendet!</b>";
}
</body>
</html>
Irgendwo ist wieder ein Fehler oder eine } fehlt oder ?> wieder wahrscheinlich, aber ich weiß es im mom noch nicht besser.
Hoffentlich könnt ihr mir sagen, was jetzt noch fehlt


 
Zuletzt bearbeitet:
mit meinem vorschlag brauchst du keine 2 datein mehr. das übernimmt dann eine, weil wenn du deine fehler auswertung an die 2. datei übergibst, hast du da wieder dein formular nicht drin, verstehst du?

du hast leider wirklich noch ein paar fehler in deinem script drin.


PHP:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kontaktformular</title>
<link href="Kontakt.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
$allesok = 0;

if (isset($_POST['submit']) {

//Hier alle Get-Variablen speichern
$submit = $_POST['submit'];
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];
$email = $_POST['email'];
$strasse = $_POST['strasse'];
$plz = $_POST['plz'];
$homepage = $_POST['homepage'];

if ($vorname == '') {
 echo 'Fehler: Kein Vorname eingegeben';
} else if ($nachname == '') {
 echo 'Fehler: Kein Nachname eingegeben';  
} else if ($email == '') {
 echo 'Fehler: Keine Email eingegeben'; 
} else if ($betreff == '') {
 echo 'Fehler: Kein Betreff eingegeben';
} else if ($nachricht == '') {
 echo 'Fehler: Keine Nachricht eingegeben'; 
} else $allesok = 1;

}

if ($allesok == 0) {
//Hier dein Formular einfügen
echo '
<form action="kontakt.php" method="POST">
<div class="Komplett">
  <div class="Linkeseite">Vorname*
    <input name="vorname" type="text" class="Textfeld" id="Vorname" />
    <br />
    Nachname*
    <input name="nachname" type="text" class="Textfeld" id="Name" />
    Email*
    <input name="email" type="text" class="Textfeld" id="Email" />
    <br />
    Betreff*
    <input name="betreff" type="text" class="Textfeld" id="Betreff" />
  </div>
  <div class="Rechte">Telefon
    <input name="telefon" type="text" class="Textfeld" id="Telefon" />
    Strasse
    <input name="strasse" type="text" class="Textfeld" id="Strasse" />
    <br />
    PLZ/Ort
    <input name="plz" type="text" class="Textfeld" id="PLZ" />
    <br />
    Homepage<br />
    <input name="homepage" type="text" class="Textfeld" id="Homepage" />
  </div>
  <p><br />
  </p>
  <p>&nbsp; </p>
  <p>Ihre Nachricht:*<br />
    <textarea name="nachricht" class="Nachricht" id="Nachricht"></textarea>
    <br />
  </p>
  </p>
  Die mit * markierten Felder sind Pflichtfelder
  <p>&nbsp; </p>
  <div>
    <div align="center">
      <input name="submit" type="submit" class="Button" id="submit" value="Absenden" />
      <input name="reset" type="submit" class="Button" id="reset" value="Zuruecksetzen" />
    </div>
  </div>
</div>
</form>';
}

if ($submit == "Absenden") {
 # E-Mail-Adresse
 $an ="[email protected]";

if ($allesok == 1) {

//Hier wird gesendet

 # Nachricht der E-Mail-Adresse
 $text ="Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n
 ====\n $nachricht\n====\n\nSie können $vorname $nachname unter dieser $email erreichen.
 \n Weitere Daten zum Absender: \n Strasse: $strasse \n Postleizahl/Ort $plz \n Homepage: $homepage"
 ;
 mail($an,$betreff,$text,"From: ".$email);
 echo "<b>Ihre Nachricht wurde gesendet!</b>";
}
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Ah k. Danke erstmal wieder. Ich lad mal kurz die Dtaei hoch und schau ob alles funktioniert

Aber nochmal ne Frage :) :
Wie leite ich nach erfolgreicher übertrageung an eine von mir bestimmte seite (.z.B. www.test.de/Kontakterfolgreich.htm)?
UND
Wie mach ich das Formular jetzt sicherer? Ich will nicht, dass Spam Mails versendet werden
UND
Wie prüfe ich, dass eine gültige email angegeben wurde? also das ein "@" und ein "." darin vorkommen

Danke

EDIT:
Ich habs hochgeladen, aber irgendwo ist noch ein Fehler: http://projektpfinz.pr.ohost.de/test/Kontakt.php
 
Werbung:
verstehe nicht ganz was du mit hinleiten meinst? was ist der gedanke dahinter?

zur sicherheit musst du die eingaben überprüfen. dafür benutzt man in der regel reguläre ausdrücke. z.b. prüft man dabei ob der name nur aus buchstaben besteht oder die postleitzahl nur aus zahlen etc.
die idee dabei ist, dass man eingaben eines benutzer nie trauen darf.
so geistern im netz viele bots rum, die versuchen ein formular auszufüllen und abzusenden. dabei kann es wenn man nicht aufpasst und prüft passieren, wie vorher schon erwähnt, das der mail header erweitert wird. damit könnte man dann z.b. nicht nur dir die mail schicken, sondern viele leute als CC oder BCC, also weitere empfänger eintragen. und schon ist dein formular eine spammaschine
 
zur Sicherheit: Und was muss ich da im Einzelnen im Code erweitern kann mir nicht vorstellen, wie du das meinst mit dem eingaben überprüfen (ich prüf doch auch schon ob Pflichtfelder ausgefüllt wurden

zum "weiterleiten": Wenn man auf den Absenden Knopf drückt kommt im mom jetzt noch eine weise Seite mit "Nahricht wurde verschickt (bzw. im mom geht das Kontaktformular grad nicht, siehe oben). Ich will jetzt aber, das wenn man absenden drückt und die nachricht erfolgreich versendet wurde, ich auf eine von mir gemachte Seite verlinkt wird (z.b auf meine Startseite der Homepage)

Zum Problem: Das Kontaktformular geht grad gar nicht (http://projektpfinz.pr.ohost.de/test/Kontakt.php ). kommt nur ein Fehler: d.h. irgendwo ist noch ein Fehler im Code

Zum Email Prüfen: Im mom wird nur geprüft ob was eingegeben wurde. Wie kann ich prüfen, dass die Email Adresse auch gültig ist (d.h ein "@ undein "." müssen drin vorkommen ; nicht das einer schreibt bei email: MaxMuster

so sieht Code jetzt aus

Code:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kontaktformular</title>
<link href="Kontakt.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
$allesok = 0;

if (isset($_POST['submit']) {

//Hier alle Get-Variablen speichern
$submit = $_POST['submit'];
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];
$email = $_POST['email'];
$strasse = $_POST['strasse'];
$plz = $_POST['plz'];
$homepage = $_POST['homepage'];

if ($vorname == '') {
echo 'Fehler: Kein Vorname eingegeben';
} else if ($nachname == '') {
echo 'Fehler: Kein Nachname eingegeben';  
} else if ($email == '') {
echo 'Fehler: Keine Email eingegeben';
} else if ($betreff == '') {
echo 'Fehler: Kein Betreff eingegeben';
} else if ($nachricht == '') {
echo 'Fehler: Keine Nachricht eingegeben';
} else $allesok = 1;

}

if ($allesok == 0) {
//Hier dein Formular einfügen
echo '
<form action="kontakt.php" method="POST">
<div class="Komplett">
  <div class="Linkeseite">Vorname*
    <input name="vorname" type="text" class="Textfeld" id="Vorname" />
    <br />
    Nachname*
    <input name="nachname" type="text" class="Textfeld" id="Name" />
    Email*
    <input name="email" type="text" class="Textfeld" id="Email" />
    <br />
    Betreff*
    <input name="betreff" type="text" class="Textfeld" id="Betreff" />
  </div>
  <div class="Rechte">Telefon
    <input name="telefon" type="text" class="Textfeld" id="Telefon" />
    Strasse
    <input name="strasse" type="text" class="Textfeld" id="Strasse" />
    <br />
    PLZ/Ort
    <input name="plz" type="text" class="Textfeld" id="PLZ" />
    <br />
    Homepage<br />
    <input name="homepage" type="text" class="Textfeld" id="Homepage" />
  </div>
  <p><br />
  </p>
  <p>&nbsp; </p>
  <p>Ihre Nachricht:*<br />
    <textarea name="nachricht" class="Nachricht" id="Nachricht"></textarea>
    <br />
  </p>
  </p>
  Die mit * markierten Felder sind Pflichtfelder
  <p>&nbsp; </p>
  <div>
    <div align="center">
      <input name="submit" type="submit" class="Button" id="submit" value="Absenden" />
      <input name="reset" type="submit" class="Button" id="reset" value="Zuruecksetzen" />
    </div>
  </div>
</div>
</form>';
}



if ($allesok == 1) {

//Hier wird gesendet

# Nachricht der E-Mail-Adresse
$text ="Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n
====\n $nachricht\n====\n\nSie können $vorname $nachname unter dieser $email erreichen.
\n Weitere Daten zum Absender: \n Strasse: $strasse \n Postleizahl/Ort $plz \n Homepage: $homepage"
;
mail($an,$betreff,$text,"From: ".$email);
echo "<b>Ihre Nachricht wurde gesendet!</b>";
}
</body>
</html>
 
ok sorry mein fehler habe dir scheinbar eine falsche version gepostet, einen fehler habe ich gesehn, um sicher zu gehen das nicht noch mehr falsch ist hier die funktionierende:

PHP:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kontaktformular</title>
<link href="Kontakt.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
 $allesok = 0;

if (isset($_POST['submit'])) {
 //Hier alle Get-Variablen speichern
 $submit = $_POST['submit'];
 $vorname = $_POST['vorname'];
 $nachname = $_POST['nachname'];
 $betreff = $_POST['betreff'];
 $nachricht = $_POST['nachricht'];
 $email = $_POST['email'];
 $strasse = $_POST['strasse'];
 $plz = $_POST['plz'];
 $homepage = $_POST['homepage'];

 if ($vorname == '') {
  echo 'Fehler: Kein Vorname eingegeben';
 } else if ($nachname == '') {
  echo 'Fehler: Kein Nachname eingegeben';  
 } else if ($email == '') {
  echo 'Fehler: Keine Email eingegeben'; 
 } else if ($betreff == '') {
  echo 'Fehler: Kein Betreff eingegeben';
 } else if ($nachricht == '') {
  echo 'Fehler: Keine Nachricht eingegeben'; 
 } else $allesok = 1;
}

if ($allesok == 0) {
//Hier dein Formular einfügen
    echo '
    <form action="kontakt.php?action=send" method="POST">
    <div class="Komplett">
  <div class="Linkeseite">Vorname*
    <input name="vorname" type="text" class="Textfeld" id="Vorname" />
    <br />
    Nachname*
    <input name="nachname" type="text" class="Textfeld" id="Name" />
    Email*
    <input name="email" type="text" class="Textfeld" id="Email" />
    <br />
    Betreff*
    <input name="betreff" type="text" class="Textfeld" id="Betreff" />
  </div>
  <div class="Rechte">Telefon
    <input name="telefon" type="text" class="Textfeld" id="Telefon" />
    Strasse
    <input name="strasse" type="text" class="Textfeld" id="Strasse" />
    <br />
    PLZ/Ort
    <input name="plz" type="text" class="Textfeld" id="PLZ" />
    <br />
    Homepage<br />
    <input name="homepage" type="text" class="Textfeld" id="Homepage" />
  </div>
  <p><br />
  </p>
  <p>&nbsp; </p>
  <p>Ihre Nachricht:*<br />
    <textarea name="nachricht" class="Nachricht" id="Nachricht"></textarea>
    <br />
  </p>
  </p>
  Die mit * markierten Felder sind Pflichtfelder
  <p>&nbsp; </p>
  <div>
    <div align="center">
      <input name="submit" type="submit" class="Button" id="submit" value="Absenden" />
      <input name="reset" type="submit" class="Button" id="reset" value="Zuruecksetzen" />
    </div>
  </div>
    </div>
    </form>';
}

if ($allesok == 1) {

//Hier wird gesendet

 # Nachricht der E-Mail-Adresse
 $text ="Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n
 ====\n $nachricht\n====\n\nSie können $vorname $nachname unter dieser $email erreichen.
 \n Weitere Daten zum Absender: \n Strasse: $strasse \n Postleizahl/Ort $plz \n Homepage: $homepage";
 $an ="bla@kecks"; 
 mail($an,$betreff,$text,"From: ".$email);
 echo "<b>Ihre Nachricht wurde gesendet!</b>";
} ?>
</body>
</html>
der fehler war übrigens hier

PHP:
if (isset($_POST['submit'])) {
klarer fall von klammer vergessen, daher auch mein tipp an dich mit dem neuen editor :D


bevor ich mich jetzt zu sehr damit beschäftige kriegst du erstmal was zum lesen ;)
Reguläre Ausdrücke (Regular Expressions / RegEx) - PHP - Tutorials @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & Hilfe
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
K danke jetzt geht das Formular endlich. Danke für deine Hilfe. Ich werde mir den Link mal durchlesen.
Könntest du mir vielleicht die anderen Fragen noch beantworten? Bitte Bitte, dann bin ich auch ruhig :)
 
Zuletzt bearbeitet:
naja also eine gute sicherheit erreichst du schon damit,indem du halt auf buchstaben und zahlen und evtl ein paar sonderzeichen wie - _ etc prüfst, du musst halt verhindern, das man in die felder zeichen eingeben kann die sich als code interpretieren lassen z.b. ' " ; wie genau kann ich dir leider nicht helfen, damit habe ich mich noch nicht weit genug beschäftigt. bei google wirst du denke ich was finden.

mit deinem problem zwecks weiterleitung kann ich dir leider auch nicht helfen, weil ich mich damit noch nicht beschäftigt habe.
 
Zum Email Prüfen: Im mom wird nur geprüft ob was eingegeben wurde. Wie kann ich prüfen, dass die Email Adresse auch gültig ist (d.h ein "@ undein "." müssen drin vorkommen ; nicht das einer schreibt bei email: MaxMuster

Hallo,

schau mal hier - so kannst Du ganz einfach eine E-Mail prüfen.

PHP:
/**
 * Validates a given E-Mailadress.
 *
 * @param $emailAdress (String) - The given E-Mailadress.
 *
 * @return $isValid (Boolean) - True if the E-Mailadress is valid, otherwise false.
 */
function validateEMail($emailAdress = null)
{
    // Local attributes
    $isValid = false;
    
    if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $emailAdress)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/', $emailAdress)))
    {
    $isValid = true;     
    }
        
    return $isValid;
}

Nun kannst Du folgendes z.B. überprüfen

PHP:
$eMailI = "[email protected]";
$emailII = "maxmustermann.de";

// Wird true bzw. 1 ausgeben
if(validateEMail($eMailI) === true)
{
    echo true;
}
else
{
    echo false;
}

// Wird false bzw. 0 oder gar nichts ausgeben
if(validateEMail($eMailII) === true)
{
    echo true;
}
else
{
    echo false;
}
 
Werbung:
Ja Danke, aber wie kann ich diesen Code jetzt bei mir einfügen? Also dass wen die Email nicht gültig ist er ausgibt: "Bitte gültige Email angeben"
 
Ja Danke, aber wie kann ich diesen Code jetzt bei mir einfügen? Also dass wen die Email nicht gültig ist er ausgibt: "Bitte gültige Email angeben"

Hallo,

was ist an der Integration des o.g. Beispiels so schwierig ?!
Du hast eine Funktion gegeben, die Du einfach nur in Deine Datei kopieren brauchst. Nachdem das Formular abgesendet wurde, musst Du nur prüfen ob der EMail POST in Deinem Fall

PHP:
$email
valide ist.

Beispiel für Deinen code (Bitte beachte das ich nur die Prüfungen ausgeschnitten habe, den Rest musst Du ergänzen.)

PHP:
function validateEMail($emailAdress = null)
{
    // Local attributes
    $isValid = false;
    
    if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $emailAdress)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/', $emailAdress)))
    {
    $isValid = true;     
    }
        
    return $isValid;
}

if ($vorname == '') 
{
      echo 'Fehler: Kein Vorname eingegeben';
} 
else if ($nachname == '') 
{
      echo 'Fehler: Kein Nachname eingegeben';  
} 
else if ($email == '' || validateEMail($email) !== true) 
{
      echo 'Fehler: Keine Email eingegeben';
} 
else if ($betreff == '') 
{
      echo 'Fehler: Kein Betreff eingegeben';
} 
else if ($nachricht == '') 
{
     echo 'Fehler: Keine Nachricht eingegeben';
} 
else 
{
    $allesok = 1;
}
 
$allesok = 1;


noch sind register globals nicht deaktiviert. :)

finde die form des lösens aber recht mies, ich würde für jeden einen array anlegen

$form['vorname']['regex'] = 'xyz';
$form['vorname']['error'] = 'Bitte ...';
 
Werbung:
@ boehseronkel:
Ich hab das jetzt eingefügt anstatt meinem: Jetzt kommt allerdings ein Fehler:
Parse error: syntax error, unexpected $end in /usr/export/www/hosting/projektpfinz/HP/Kontakt.php on line 121

siehe:

Mein Code lautert jetzt:
Code:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kontaktformular</title>
<link href="Kontakt.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
$allesok = 0;

if (isset($_POST['submit'])) {

$submit = $_POST['submit'];
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];
$email = $_POST['email'];
$strasse = $_POST['strasse'];
$plz = $_POST['plz'];
$homepage = $_POST['homepage'];
$telefon = $_POST['telefon'];

function validateEMail($emailAdress = null)
{
    // Local attributes
    $isValid = false;
    
    if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $emailAdress)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/', $emailAdress)))
    {
    $isValid = true;     
    }
        
    return $isValid;
}

if ($vorname == '')
{
      echo 'Fehler: Kein Vorname eingegeben';
}
else if ($nachname == '')
{
      echo 'Fehler: Kein Nachname eingegeben';  
}
else if ($email == '' || validateEMail($email) !== true)
{
      echo 'Fehler: Keine Email eingegeben';
}
else if ($betreff == '')
{
      echo 'Fehler: Kein Betreff eingegeben';
}
else if ($nachricht == '')
{
     echo 'Fehler: Keine Nachricht eingegeben';
}
else
{
    $allesok = 1;
} 

if ($allesok == 0) {
//Formular 
    echo '
    <form action="Kontakt.php" method="POST">
    <div class="Komplett">
  <div class="Linkeseite">Vorname*
    <input name="vorname" type="text" class="Textfeld" id="Vorname" />
    <br />
    Nachname*
    <input name="nachname" type="text" class="Textfeld" id="Name" />
    Email*
    <input name="email" type="text" class="Textfeld" id="Email" />
    <br />
    Betreff*
    <input name="betreff" type="text" class="Textfeld" id="Betreff" />
  </div>
  <div class="Rechte">Telefon
    <input name="telefon" type="text" class="Textfeld" id="Telefon" />
    Strasse
    <input name="strasse" type="text" class="Textfeld" id="Strasse" />
    <br />
    PLZ/Ort
    <input name="plz" type="text" class="Textfeld" id="PLZ" />
    <br />
    Homepage<br />
    <input name="homepage" type="text" class="Textfeld" id="Homepage" />
  </div>
  <p><br />
  </p>
  <p>&nbsp; </p>
  <p>Ihre Nachricht:*<br />
    <textarea name="nachricht" class="Nachricht" id="Nachricht"></textarea>
    <br />
  </p>
  </p>
  Die mit * markierten Felder sind Pflichtfelder
  <p>&nbsp; </p>
  <div>
    <div align="center">
      <input name="submit" type="submit" class="Button" id="submit" value="Absenden" />
      <input name="reset" type="submit" class="Button" id="reset" value="Zuruecksetzen" />
    </div>
  </div>
    </div>
    </form>';
}

if ($allesok == 1) {



# Nachricht der E-Mail-Adresse
$text ="Kontaktanfrage von $vorname $nachname:\nNachricht:\n
===========================\n $nachricht\n===========================\n\nSie können $vorname $nachname unter dieser Email erreichen:$email
\n Weitere Daten zum Absender:\n Telefon: $telefon \n Strasse: $strasse \n Postleizahl/Ort $plz \n Homepage: $homepage";
$an ="[email protected]";
mail($an,$betreff,$text,"From: ".$email);
echo "<b>Ihre Nachricht wurde gesendet!</b>";
} ?>
</body>
</html>
 
Zuletzt bearbeitet:
Hallo,

da wird dann wohl eine Klammer irgendwo fehlen ...
Schau mal hier ...

PHP:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kontaktformular</title>
<link href="Kontakt.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php

function validateEMail($emailAdress = null)
{
    // Local attributes
    $isValid = false;
    
    if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $emailAdress)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/', $emailAdress)))
    {
        $isValid = true;     
    }
        
    return $isValid;
}


$allesok = 0;

if (isset($_POST['submit'])) 
{
    $submit = $_POST['submit'];
    $vorname = $_POST['vorname'];
    $nachname = $_POST['nachname'];
    $betreff = $_POST['betreff'];
    $nachricht = $_POST['nachricht'];
    $email = $_POST['email'];
    $strasse = $_POST['strasse'];
    $plz = $_POST['plz'];
    $homepage = $_POST['homepage'];
    $telefon = $_POST['telefon'];

    if ($vorname == '')
    {
        echo 'Fehler: Kein Vorname eingegeben';
    }
    else if ($nachname == '')
    {
        echo 'Fehler: Kein Nachname eingegeben';  
    }
    else if ($email == '' || validateEMail($email) !== true)
    {
        echo 'Fehler: Keine Email eingegeben';
    }
    else if ($betreff == '')
{
        echo 'Fehler: Kein Betreff eingegeben';
    }
    else if ($nachricht == '')
    {
        echo 'Fehler: Keine Nachricht eingegeben';
    }
    else
    {
        $allesok = 1;
    }
}

if ($allesok == 0) 
{
    //Formular 
    echo '
    <form action="Kontakt.php" method="POST">
    <div class="Komplett">
  <div class="Linkeseite">Vorname*
    <input name="vorname" type="text" class="Textfeld" id="Vorname" />
    <br />
    Nachname*
    <input name="nachname" type="text" class="Textfeld" id="Name" />
    Email*
    <input name="email" type="text" class="Textfeld" id="Email" />
    <br />
    Betreff*
    <input name="betreff" type="text" class="Textfeld" id="Betreff" />
  </div>
  <div class="Rechte">Telefon
    <input name="telefon" type="text" class="Textfeld" id="Telefon" />
    Strasse
    <input name="strasse" type="text" class="Textfeld" id="Strasse" />
    <br />
    PLZ/Ort
    <input name="plz" type="text" class="Textfeld" id="PLZ" />
    <br />
    Homepage<br />
    <input name="homepage" type="text" class="Textfeld" id="Homepage" />
  </div>
  <p><br />
  </p>
  <p>&nbsp; </p>
  <p>Ihre Nachricht:*<br />
    <textarea name="nachricht" class="Nachricht" id="Nachricht"></textarea>
    <br />
  </p>
  </p>
  Die mit * markierten Felder sind Pflichtfelder
  <p>&nbsp; </p>
  <div>
    <div align="center">
      <input name="submit" type="submit" class="Button" id="submit" value="Absenden" />
      <input name="reset" type="submit" class="Button" id="reset" value="Zuruecksetzen" />
    </div>
  </div>
    </div>
    </form>';
}

if ($allesok == 1) 
{
    # Nachricht der E-Mail-Adresse
    $text ="Kontaktanfrage von $vorname $nachname:\nNachricht:\n
    ===========================\n $nachricht\n===========================\n\nSie können $vorname $nachname unter dieser Email erreichen:$email
    \n Weitere Daten zum Absender:\n Telefon: $telefon \n Strasse: $strasse \n Postleizahl/Ort $plz \n Homepage: $homepage";
    $an ="[email protected]";
    mail($an,$betreff,$text,"From: ".$email);
    echo "<b>Ihre Nachricht wurde gesendet!</b>";
} 
?>
</body>
</html>
 
Vielen Dank, jetzt funktionierts so wie ichs will.
Nur hab ich noch nicht ganz verstanden, wie ich das jetzt sicher mache
 
Werbung:
Code:
[COLOR=#000000][COLOR=#007700] finde die form des lösens aber recht mies, ich würde für jeden einen array anlegen[/COLOR][/COLOR]

anstatt immer nur rumzumeckern solltest du mal ein funktionierendes beispiel bringen, weil wenn du die beiträge gelesen hättest, wäre dir wohl aufgefallen, dass er damit rein gar nichts anfangen kann.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben