Antworten auf deine Fragen:
Neues Thema erstellen

Formularproblem

CrazyLopp

Hat es drauf

Hi ich habe mal wieder ein dummes Formular Problem und zwar folgendes:

Ich habe folgendes Htmlgerüst dafür:
HTML:
<form action="versenden.php" method="post">
		<fieldset>
			<legend>Kontaktformular</legend>
            <?PHP echo $errorMessage; ?>
            <p>
            <label for="name">Name:</label><br />
            <input class="k_eingabe" size="30" id="name" name="name" />
            </p>
            <br />
            <p>
            <label for="email">E-Mail:*</label><br />
            <input class="k_eingabe" size="30" id="email" name="email" />
            </p>
            <br />
            <p>
            <label for="betreff">Betreff:*</label><br />
            <input class="k_eingabe" size="30" id="betreff" name="betreff" />
            </p>
            <br />
            <p>
            <label for="message" class="title">Ihre Nachricht:*</label><br />
            <textarea class="k_eingabe" cols="50" rows="8" id="message" name="message"></textarea> 
            </p>
            <br />
            <p>
            <input class="button" id="submit" name="submit" type="submit" value="Absenden" />
            &nbsp;&nbsp;&nbsp;Mit * markierte Felder müssen ausgefüllt werden.
            </p>
		</fieldset>
	</form>

welches ich mit Hilfe von include in eine bestehende Seite einbaue...
So und das hier ist der passende php Code dafür:

PHP:
<?
// Wir legen eine Variable mit deiner E-Mail
$ihremail = "testo@test.de";
// Lege nun eine leere Variable für Fehler an (wird später benötigt)
$error = "";
// Inhalt aus den Formularen übertragen "Name"
$name = $_POST['name'];
// Inhalt aus den Formularen übertragen "Email"
$email = $_POST['email'];
// Inhalt aus den Formularen übertragen "Betreff"
$betreff = $_POST['betreff'];
// Inhalt aus den Formularen übertragen "Nachricht"
$text = $_POST['message']; // Text
$Submit = $_POST['submit']; // Sende Button
// Wir bauen eine Funktion die soll die Absender E-Mail überprüfen, ob die gültig ist
// das machen wir mit eregi() wir prüfen nicht nur ob "@" und "." vorhanden ist sondern auch
// 2 bustaben vor "@" und nach dem "@" da sind.
function mailcheck($mail) {
  $mail = eregi("^[a-z0-9]+([-_.]?[a-z0-9])
+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}", $mail); // Hier läuft das ab
  return $mail; // wir geben die E-Mail zurück
}
    // Jetzt prüfen wir ob die Felder ausgefüllt wurden mit if(empty)
    //wenn das feld "Name" nicht ausgefüllt wurde geben wir der leeren $error Inhalt
    // Also die Ausgabe "Sie haben keinen Namen angegeben."
    if(empty($name)) $error .= "<li>Sie haben keinen Namen angegeben.</li>";
    // das gleiche mit "Email"
    if(empty($email)) $error .= "<li>Sie haben keine E-Mail angegeben.</li>";
    // hier setzen wir unsere oben gebaute Funktion ein wenn E-Mail nicht stimmt dann fehlerausgabe
    if(!mailcheck($email)) $error .= "<li>Ihre E-Mail ist ungültig</li>";
    // für das Feld "Betreff"
    if(empty($betreff)) $error .= "<li>Es wurde kein Betreff ausgewählt.</li>";
    // für Nachricht
    if(empty($text)) $error .= "<li>Sie haben kein Text angegeben.</li>";
    // if(empty($error)) d.h wenn $error leer ist also alles normal ausgefüllt wurde und der Button "Absenden" angeklickt wurde
    // Dann springt das runter und wir holen uns die übertragene Daten
        if(empty($error) && $Submit == "Absenden" ) {
    // wir machen das ganze in eine Variable "$nachricht"
    $nachricht = "Email von ".$name."nn".
                "Name: ".$name."n".
                "Email: ".$email."nn".
                "Betreff: ".$betreff."n".
                "Nachricht: ".$text;
    $subject = "$betreff";
    $nachricht1 = $email . "nn" . $nachricht;
    // hier setzen wir unsere mail() funktion ein das muss genau so ausehen
    // mail($anwem,$subject,$den den ganzen inhalt, unbedingt "FROM:" also von wem)
    mail($ihremail,$subject,$nachricht1,"FROM: $email");
    }
    // hier fragen wir wieder ein Error ein:
if(empty($error)) {
    // wir geben dann hier ein dass alles ok ist
    echo "<b>Nachricht wurde erfolgtreich verschickt</b><br>
                  <ul>
                  <li>Name: $name</li>
                  <li>Email: $email</li>
                  <li>Betreff: $betreff</li>
                  <li>Nachricht: $text</li>
                  </ul>";
    // Wenn es nicht stimmt
    } else {
    echo "Folgender Fehler ist aufgetreten<br><p>Ihre Nachricht konnte nicht gesendet werden:<ul>$error</ul></p>";
}
?>


und folgende Fehlermeldung wird mir ausgegeben obwohl meine E-Mailadresse zu 100% richtig ist und auch wenn ich oben in der php Datei eine richtige eingebe wird es nicht akzeptiert....

Deprecated: Function eregi() is deprecated in /Applications/XAMPP/xamppfiles/htdocs/neunzehn91/versenden.php on line 20
Folgender Fehler ist aufgetreten

Ihre Nachricht konnte nicht gesendet werden:

* Ihre E-Mail ist ungültig


und auf Line 20/21 steht folgendes in der php datei:

PHP:
$mail = eregi("^[a-z0-9]+([-_.]?[a-z0-9])
+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}", $mail);



Habt Ihr eine Idee?
 

Indium1

Nicht mehr ganz neu hier

AW: Formularproblem

Schon mal so versucht?:
PHP:
$mail = eregi("^[a-z0-9]+([-_.]?[a-z0-9])+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}", $mail);

Falls das nicht funktioniert andere Frage:

Benutzen Sie vielleicht php 5.3, wenn ja dann könnte es sein das die ereg funktion hier nicht mehr funktioniert!

Also entweder auf php 5.2 umstellen oder preg_match() benutzen!

Ach ja, und was ist mit der Sicherheit hier?

echo "<b>Nachricht wurde erfolgtreich verschickt</b><br>
<ul>
<li>Name: $name</li>
<li>Email: $email</li>
<li>Betreff: $betreff</li>
<li>Nachricht: $text</li>
</ul>";



Geben Sie mal folgenden Code in Ihr Formular ein:

<script>alert('XSS!');</script>

Sie haben hier wohl htmlspecialchars und ENT_QUOTES vergessen
Siehe: PHP: htmlspecialchars - Manual


POST Request mit isset prüfen ob übermittelt wurde oder vorhanden ist! Beispiel:


if (isset($_POST['blablabla']))
{
//echo 'blablabla wurde gesendet';
//... weiterer Code
}
else
{
//echo 'blablabla wurde nicht gesendet';
exit();
}


Gruß,

Indium1
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben