hilfdirselbst.ch
Facebook Twitter gamper-media
Anonym
Beiträge: 22827
16. Dez 2003, 00:11
Beitrag #1 von 3
Bewertung:
(4297 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

nochmal Formmailer


Ok, nochmal mein PHP-Formular!

Ich habs jetzt in eine Datei gepackt!

hier ist der quellcode: http://www.anthroweb.de/test.htm

Könnt ihr mal drüber schauen und mir Fehler sagen?

wie zu sehen, habe ich irgendwo noch nen Syntax-Error den ich nicht finde. Kann mir jemand helfen?

Wie muss die for-Schleife für die Checkboxen aussehen und wo kommt die genau rein?

Ich will das gleiche auf ein größeres Formular anwenden (so mit 20 Variablen, haltet ihr das für ne gute Idee das so zu machen). Ich habe leider keine Idee wie Arrays funktionieren!

Da ich noch Fehler habe, weiß ich nicht wie die Ausgabe ist. Ich möchte gerne, dass das ausgefüllte(!) Formular zu sehen ist mit. Oben drüber sollte dann stehen: "Angaben unvollständig. Bitte füllen Sie alle Pflichtfelder aus!" Funktioniert das mit meiner Variante, oder wie muss das angepasst werden?

Vielen Dank Euch!

Alex

PS: das mit dem rotmarkieren der nicht ausgefüllte Pflichtfelder habe ich jetzt mal gelassen! Top
 
X
oesi50  A  S
Beiträge: 2315
16. Dez 2003, 01:57
Beitrag #2 von 3
Beitrag ID: #62571
Bewertung:
(4290 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

nochmal Formmailer


ich habe mal was als Gedankenanregung gebaut. Ich hoffe es hilft.

Code
<?php 

if (isset($_POST["senden"])) {

$anrede = $_POST["anrede"];
$name = $_POST["name"];
$vname = $_POST["vorname"];
$email = $_POST["email"];
$interesse = $_POST["interessen"];
$betreff = $_POST["betreff"];
$bemerkung = $_POST["bemerkung"];
$zugang = $_POST["zugang"];

# Spammschutz
# vom Aufruf bis zum Abschicken dürfen nur 1800 Sekunden vergangen sein
# alles andere ist Spam
if (time() - $zugang > 1800){
echo "Spammer!";
exit;
}
# Spammschutz Ende

$fehler = 0;

if ($anrede == "") {
$anredefehler = "<b>Fehler</b>";
$fehler = 1;
}
if( $name == "") {
$namefehler = "<b>Fehler</b>";
$fehler = 1;
}
if( $vorname == ""){
$vornamefehler = "<b>Fehler</b>";
$fehler = 1;
}
if( $email == "") {
$emailfehler = "<b>Fehler</b>";
$fehler = 1;
}
if( $betreff == "") {
$betrefffehler = "<b>Fehler</b>";
$fehler = 1;
}
if( $bemerkung == "") {
$bemerkungfehler = "<b>Fehler</b>";
$fehler = 1;
}

# checkbox prüfen
$interessefehler = "<b>Fehler</b>";
$anzahl = 3; # Anzahl der Checkboxen
for ($i = 0; $i < $anzahl; $i++){
if ($interesse[$i] != ""){
$interessefehler = '';
last;
}
}
if ($interessefehler){
$fehler = 1;
}
# ende checkboxprüfung

if ($fehler){
echo "
<font color='#FF0000'>
<b>Angaben unvollständig. Bitte füllen Sie alle Pflichtfelder aus!</b>
</font>
<br><br>";
}
else {

$empfaenger = "test@test.de";
$nachricht = "Anrede: $anrede \n
Name: $name \n
Vorname: $vorname \n\n
E-Mail: $email \n\n
Interessen: $interessen \n\n
Bemerkungen: $bemerkung \n";
mail($empfaenger, $betreff, $nachricht);
header("Location: thankyou.php");
exit;
}
}

?>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>Kontaktformular</title>
</head>
<body bgcolor="#ffffff">
<form name="test" method="post" action="formtest.php">
<table width="50%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" width="50%">Anrede<strong><font color=#ff0000>*</font></strong></td>
<input type="hidden" name="zugang" value="<? echo $zugang ? $zugang : time() ?>">
<td><input type="radio" name="anrede" value="herr" <? echo ($anrede==herr) ? "CHECKED" : "" ?> >
Herr<input type="radio" name="anrede" value="frau" <? echo ($anrede==frau) ? "CHECKED" : ""?> >
Frau <? echo $anredefehler?></td>
</tr>
<tr>
<td valign="top" width="50%">Name:<strong><font color=#ff0000>*</font></strong></td>
<td><input size=20 name=name value="<? echo $name ?>"><? echo $namefehler?></td>
</tr>
<tr>
<td valign="top" width="50%">Vorname:<strong><font color=#ff0000>*</font></strong></td>
<td><input size=20 name=vorname value="<? echo $vorname ?>"><? echo $vornamefehler?></td>
</tr>
<tr>
<td valign="top" width="50%">E-Mail:<strong><font color=#ff0000>*</font></strong></td>
<td>
<input type="text" name="email" size="30" maxlength="50" value="<? echo $email ?>">
<?echo $emailfehler?>
</td>
</tr>
<tr>
<td valign="top" width="50%">Interessen:<strong><font color=#ff0000>*</font></strong></td>
<td>
<table width="80%" border="0" cellspacing="0">
<tr>
<td width="8%">
<input type="checkbox" name="interessen[0]" value="sport" <? echo ($interessen[0]) ? "CHECKED" : "" ?>>
</td>
<td width="92%">Sport</td>
</tr>
<tr>
<td width="8%">
<input type="checkbox" name="interessen[1]" value="internet" <? echo ($interessen[1]) ? "CHECKED" : "" ?>>
</td>
<td width="92%">Internet</td>
</tr>
<tr>
<td width="8%">
<input type="checkbox" name="interessen[2]" value="musik" <? echo ($interessen[2]) ? "CHECKED" : "" ?>>
</td>
<td width="92%">Musik <? echo $interessefehler?></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top" width="50%">Betreff:<strong><font color=#ff0000>*</font></strong></td>
<td><select name="betreff">
<option></option>
<option <? echo ($betreff=="Vorschlag") ? "SELECTED":""?>>Vorschlag</option>
<option <? echo ($betreff=="Angebot") ? "SELECTED":""?>>Angebot</option>
<option <? echo ($betreff=="Feedback") ? "SELECTED":""?>>Feedback</option>
</select>
<? echo $betrefffehler?>
</td>
</tr>
<tr>
<td colspan="2" valign="top">
Bemerkung:<strong><font color=#ff0000>*</font></strong><br>
<textarea name="bemerkung" rows="4" cols="73"><? echo $bemerkung ?></textarea>
<? echo $bemerkungfehler ?>
</td>
</tr>
<tr>
<td colspan="2" valign="top"></td>
</tr>
<tr>
<td valign="top" width="50%"></td>
<td><input type="submit" name="senden" value="Senden"></td>
</tr>
</table>
<p></p>
</form>
</body>
</html>


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)
als Antwort auf: [#62570]
(Dieser Beitrag wurde von oesi50 am 16. Dez 2003, 01:58 geändert)
Top
 
Alex
Beiträge: 48
16. Dez 2003, 08:42
Beitrag #3 von 3
Beitrag ID: #62576
Bewertung:
(4289 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

nochmal Formmailer


WOW, super!!!

Vielen, vielen Dank Oesi. Ich schau mir das gleich mal an.

Thx a lot

Alex
als Antwort auf: [#62570] Top