PHP Frage zu Kontaktformular

ekubij

Cadet 4th Year
Registriert
Dez. 2008
Beiträge
92
Guten Tag miteinander

Ich habe noch einige Fragen zu meinem erstellten Kontaktformular:

Funktioniert die mail Funktion so? Reicht diese Überprüfung?


Kann mir jemand helfen? Hat es sonst noch Fehler?

PHP:
<?php
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo 'E-mail-Adresse ist OK!';
} else {
  echo "E-mail OK";
}
?>
<?php
$mail_empfaenger = "jeri_kubi_6@hotmail.ch"; 
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$email = $_POST['email'];
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];

mail($mail_empfaenger, $vorname, $nachname, $eamil, $betreff, $nachricht);
?>



<form action="kontakt.php" method="POST"> 

<table border="0" cellspacing="0" cellpadding="20">

<tr>
<td>Vorname: *</td>
<td><input name="vorname" type="text" style="width: 180px" /></td>
</tr>

<tr>
<td>Nachname: *</td>
<td><input name="nachname" type="text" style="width: 180px" /></td>
</tr>

<tr>
<td>Email: *</td>
<td><input name="email" type="text" style="width: 180px" /></td>
</tr>

<tr>
<td>Betreff: *</td>
<td>
<select name="betreff" style="width: 180px">
<option value="1">Werbung/Sponsoren</option>
<option value="2">Fehler auf der Website</option>
<option value="3">Profil Mutationen</option>
<option value="4">Sonstiges</option></select>
</tr>

<tr>
<td>Nachricht: *</td>
<td><textarea cols="50" rows="3" name="nachricht"></textarea></td>
</tr>

<tr>
<td colspan="2"><center><input type="submit" value="Senden" /></center></td>
</tr>

</table>

 
</form>

greez und danke für eure Hilfe
 
Zuletzt bearbeitet:
Danke für deine Antowrt abcb12

Den Link von dir habe ich mal angeschaut, aber ich sehe nicht ganz wo der Fehler ist, ausser dem $_POST habe ich eigentlich keinen grossen Unterschied gesehen.

Das Problem das ich jetzt noch habe, ist wenn man auf senden klickt kommt ein 404 Not Found Fehler. Weiss jemand von euch woran das liegt?

Wäre sehr dankbar für eure Unterstüzung

greez
 
Nunja, ich seh da so einige Probleme, das größte dürfte aber sein, dass die mail Funktion 5 Parameter erwartet, du aber 6 übergibst. An deiner Stelle würde ich Vorname und Nachname kombinieren, soll heißen einfach ein "." zwischen die Variablen.

Dann solltest du, wenn du schon Variablen wie $mail, $vorname etc. benutzt sie auch vorher deklarieren, ich weiß gar nicht ob du überhaupt Fehlermeldungen angestellt hast, aber sobald ich dein Skript mal bei mir mit Wampserver laufen lassen hab kamen mir ca. 7 Fehlermeldungen entgegen.

Zudem versucht filter_var(); eine E-Mail zu validieren, die noch gar nicht übergeben wurde. Guck dir dazu mal die Funktion isset(); an.

Und zu guter Letzt: Tabellen sind absolutes No-Go für solche Dinge, braucht man bei einem Formular eh nicht, da man die Inputs direkt mit CSS "stylen" kann.
 
Danke torek für deine Antowort

Und zu guter Letzt: Tabellen sind absolutes No-Go für solche Dinge, braucht man bei einem Formular eh nicht, da man die Inputs direkt mit CSS "stylen" kann.

das heisst diese inputs sollte ich direkt im css machen?

Ich habe das ganze jetzt nochmals überarbeitet. Leider kann ich erst am abend testen, da ich in der Firma nicht uploaden kann und fehler kann ich auch nicht anschauen, da mir das Programm fehlt.

Sieht jemand von euch no irgendwelche Fehler oder gibt es Verbessrungsvorschläge?

greetz


PHP:
<?php

// Wenn Formular abgeschickt wurde - senden ist der Name des Submit-Buttons
if(isset($_POST['senden'])) {

    // empfangene Werte in Variablen schreiben 
    $to = "jeri_kubi_6@hotmail.ch";
    $email = $_POST['email'];
    $betreff = $_POST['betreff'];
    $name = $_POST['name'];
   

    // leeres Array für evtl. Fehler vorbereiten
    $errors = array();

    // hier kommen die Überprüfungen - 
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo 'E-mail-Adresse ist OK!';
}   else {
    echo "E-mail OK";
}

    // ... HIer können noch weitere Überprüfungen rein


    // keine Fehler aufgetreten
    if(count($errors) == 0) {

        // Mail senden
        mail($to, $email, $betreff, $name);
    }
}

?> 
 
<!-- evtl. Fehler ausgeben 
<?php

if(isset($errors) && count($errors) > 0) {

    echo 'Folgende Fehler sind aufgetreten: <br />' . join("<br />", $errors);
}
?> 
-->

<form action="" method="post">

<table border="0" cellspacing="0" cellpadding="20"> 

<tr> 
<td>Vorname: *</td> 
<td><input name="name" type="text" style="width: 180px" /></td> 
</tr> 

<tr> 
<td>Nachname: *</td> 
<td><input name="name" type="text" style="width: 180px" /></td> 
</tr> 

<tr> 
<td>Email: *</td> 
<td><input name="email" type="text" style="width: 180px" /></td> 
</tr> 

<tr> 
<td>Betreff: *</td> 
<td> 
<select name="betreff" style="width: 180px"> 
<option value="1">Werbung/Sponsoren</option> 
<option value="2">Fehler auf der Website</option> 
<option value="3">Profil Mutationen</option> 
<option value="4">Sonstiges</option></select> 
</tr> 

<tr> 
<td>Nachricht: *</td> 
<td><textarea cols="50" rows="3" name="nachricht"></textarea></td> 
</tr> 

<tr> 
<td colspan="2"><center><input type="submit" value="Senden" /></center></td> 
</tr> 

</table> 


</form>
 
Zuletzt bearbeitet:
<input type="submit" name="senden" value="Abschicken">
 
Zurück
Oben