Hallo zusammen,
bin bei php noch ein ziemlicher Neuling und habe nun folgendes Problem: ich brauche ein Formular, bei dem man optional auch ein Bild hochladen kann. Habe ich mir jetzt aus mehreren zusammengesucht, funktioniert auch ganz gut. Allerdings so nur solange, wie man auch ein Bild angibt. Läßt man das Feld frei, kommt eine Fehlermeldung. Es wäre schön, wenn jemand eine Lösung hätte.
Zuerst das Formular:
<form action="mailding.php" method="post" enctype="multipart/form-data">
<table border="0" cellpadding="0" cellspacing="0" width="375">
<tr>
<td colspan="2">Die mit * gekennzeichneten Felder sind Pflichtfelder.<br>
<br>
<br>
</td>
</tr>
<tr>
<td>Anrede:*</td>
<td><select name="anrede" size="1">
<option>- bitte wählen -</option>
<option>Herr</option>
<option>Frau</option>
</select></td>
</tr>
<tr>
<td>Vorname:*</td>
<td><input name="vorname" size="20" type="text"></td>
</tr>
<tr>
<td>Nachname:*</td>
<td><input name="nachname" size="20" type="text"></td>
</tr>
<tr>
<td>Geburtsdatum:*</td>
<td><input name="tag" size="2" type="text" value="TT">.<input name="monat" size="4" type="text" value="MM">.<input name="jahr" size="4" type="text" value="JJJJ"></td>
</tr>
<tr>
<td>Straße/Postfach:*</td>
<td><input name="strasse" size="20" type="text"></td>
</tr>
<tr>
<td>PLZ:*</td>
<td><input name="plz" size="20" type="text"></td>
</tr>
<tr>
<td>Ort:*</td>
<td><input name="ort" size="20" type="text"></td>
</tr>
<tr>
<td>Land:*</td>
<td><input name="land" size="20" type="text"></td>
</tr>
<tr>
<td>Telefon:*</td>
<td><input name="telefon" size="20" type="text"></td>
</tr>
<tr>
<td>Telefax:</td>
<td><input name="telefax" size="20" type="text"></td>
</tr>
<tr>
<td>Mobil:</td>
<td><input name="mobil" size="20" type="text"></td>
</tr>
<tr>
<td>email:*</td>
<td><input name="email" size="20" type="text"></td>
</tr>
<tr>
<td>Foto (.jpg oder .gif)</td>
<td><input type=file name=datei></td>
</tr>
<tr>
<td colspan="2"><br>
<br>
<br>
</td>
</tr>
</table>
<input name="abschicken" type="submit" value="Abschicken"> <input name="loeschen" type="reset" value="Löschen">
</form>
Und jetzt die php-Datei:
<html>
<head>
<title>Kontakt-Formular</title>
</head>
<body>
<?php
if($abschicken)
{
if(empty($anrede) || empty($vorname) || empty($nachname) || empty($tag) || empty($monat) || empty($jahr) || empty($strasse) ||empty($plz) || empty($ort) ||
empty($land) || empty($telefon) || empty($email) )
{
echo "Bitte gehen Sie zurück und füllen Sie gekennzeichneten* Felder aus!";
}
else
{
while(list($feld,$wert)=each($HTTP_POST_VARS))
{
if($feld!="abschicken")
{
$botschaft.=ucfirst($feld).": $wert\n";
}
}
$grenze="grenzlinie";
$name_des_bildes=$HTTP_POST_FILES['datei']['name'];
$headers ="MIME-Version: 1.0\r\n";
$headers.="From: $mailaddi\n";
$headers.="Content-Type: multipart/mixed;\n\tboundary=$grenze\n";
$botschaft="\n--$grenze\n";
$botschaft.="Content-transfer-encoding: 7BIT\r\n";
$botschaft.="Content-type: text/plain\n\n";
$botschaft.= "Anrede: $anrede\nVorname: $vorname\nNachname: $nachname\nWohnort: $ort\nGeburtstdatum: $tag.$monat.$jahr\nStrasse: $strasse\nPLZ: $plz\nOrt: $ort\nLand: $land\nTelefon: $telefon\nTelefax: $telefax\nMobil: $mobil\n$email: ";
$botschaft.="\nDatum/Zeit: ";
$botschaft.=date("d.m.Y H:i:s");
$botschaft.="\n\n";
$botschaft.="\n--$grenze\n";
$botschaft.="Content-Type: application/octetstream;\n\tname=$name_des_bildes\n";
$botschaft.="Content-Transfer-Encoding: base64\n";
$botschaft.="Content-Disposition: attachment;\n\tfilename=$name_des_bildes\n\n";
$zeiger_auf_datei=fopen("$datei","rb");
$inhalt_der_datei=fread($zeiger_auf_datei,filesize("$datei"));
fclose($zeiger_auf_datei);
$inhalt_der_datei=chunk_split(base64_encode($inhalt_der_datei));
$botschaft.=$inhalt_der_datei;
$botschaft.="\n\n";
$botschaft.="--$grenze";
mail("[email protected]","Casting-Anmeldung",$botschaft,$headers);
print "Formular wurde versandt";
}
}
}
else
{
echo "Ein Fehler ist aufgetreten.";
}
?>
</body>
</html>
Ich würde mich wirklich ssehr freuen, wenn mir jemand helfen könnte !!!
;D

bin bei php noch ein ziemlicher Neuling und habe nun folgendes Problem: ich brauche ein Formular, bei dem man optional auch ein Bild hochladen kann. Habe ich mir jetzt aus mehreren zusammengesucht, funktioniert auch ganz gut. Allerdings so nur solange, wie man auch ein Bild angibt. Läßt man das Feld frei, kommt eine Fehlermeldung. Es wäre schön, wenn jemand eine Lösung hätte.
Zuerst das Formular:
<form action="mailding.php" method="post" enctype="multipart/form-data">
<table border="0" cellpadding="0" cellspacing="0" width="375">
<tr>
<td colspan="2">Die mit * gekennzeichneten Felder sind Pflichtfelder.<br>
<br>
<br>
</td>
</tr>
<tr>
<td>Anrede:*</td>
<td><select name="anrede" size="1">
<option>- bitte wählen -</option>
<option>Herr</option>
<option>Frau</option>
</select></td>
</tr>
<tr>
<td>Vorname:*</td>
<td><input name="vorname" size="20" type="text"></td>
</tr>
<tr>
<td>Nachname:*</td>
<td><input name="nachname" size="20" type="text"></td>
</tr>
<tr>
<td>Geburtsdatum:*</td>
<td><input name="tag" size="2" type="text" value="TT">.<input name="monat" size="4" type="text" value="MM">.<input name="jahr" size="4" type="text" value="JJJJ"></td>
</tr>
<tr>
<td>Straße/Postfach:*</td>
<td><input name="strasse" size="20" type="text"></td>
</tr>
<tr>
<td>PLZ:*</td>
<td><input name="plz" size="20" type="text"></td>
</tr>
<tr>
<td>Ort:*</td>
<td><input name="ort" size="20" type="text"></td>
</tr>
<tr>
<td>Land:*</td>
<td><input name="land" size="20" type="text"></td>
</tr>
<tr>
<td>Telefon:*</td>
<td><input name="telefon" size="20" type="text"></td>
</tr>
<tr>
<td>Telefax:</td>
<td><input name="telefax" size="20" type="text"></td>
</tr>
<tr>
<td>Mobil:</td>
<td><input name="mobil" size="20" type="text"></td>
</tr>
<tr>
<td>email:*</td>
<td><input name="email" size="20" type="text"></td>
</tr>
<tr>
<td>Foto (.jpg oder .gif)</td>
<td><input type=file name=datei></td>
</tr>
<tr>
<td colspan="2"><br>
<br>
<br>
</td>
</tr>
</table>
<input name="abschicken" type="submit" value="Abschicken"> <input name="loeschen" type="reset" value="Löschen">
</form>
Und jetzt die php-Datei:
<html>
<head>
<title>Kontakt-Formular</title>
</head>
<body>
<?php
if($abschicken)
{
if(empty($anrede) || empty($vorname) || empty($nachname) || empty($tag) || empty($monat) || empty($jahr) || empty($strasse) ||empty($plz) || empty($ort) ||
empty($land) || empty($telefon) || empty($email) )
{
echo "Bitte gehen Sie zurück und füllen Sie gekennzeichneten* Felder aus!";
}
else
{
while(list($feld,$wert)=each($HTTP_POST_VARS))
{
if($feld!="abschicken")
{
$botschaft.=ucfirst($feld).": $wert\n";
}
}
$grenze="grenzlinie";
$name_des_bildes=$HTTP_POST_FILES['datei']['name'];
$headers ="MIME-Version: 1.0\r\n";
$headers.="From: $mailaddi\n";
$headers.="Content-Type: multipart/mixed;\n\tboundary=$grenze\n";
$botschaft="\n--$grenze\n";
$botschaft.="Content-transfer-encoding: 7BIT\r\n";
$botschaft.="Content-type: text/plain\n\n";
$botschaft.= "Anrede: $anrede\nVorname: $vorname\nNachname: $nachname\nWohnort: $ort\nGeburtstdatum: $tag.$monat.$jahr\nStrasse: $strasse\nPLZ: $plz\nOrt: $ort\nLand: $land\nTelefon: $telefon\nTelefax: $telefax\nMobil: $mobil\n$email: ";
$botschaft.="\nDatum/Zeit: ";
$botschaft.=date("d.m.Y H:i:s");
$botschaft.="\n\n";
$botschaft.="\n--$grenze\n";
$botschaft.="Content-Type: application/octetstream;\n\tname=$name_des_bildes\n";
$botschaft.="Content-Transfer-Encoding: base64\n";
$botschaft.="Content-Disposition: attachment;\n\tfilename=$name_des_bildes\n\n";
$zeiger_auf_datei=fopen("$datei","rb");
$inhalt_der_datei=fread($zeiger_auf_datei,filesize("$datei"));
fclose($zeiger_auf_datei);
$inhalt_der_datei=chunk_split(base64_encode($inhalt_der_datei));
$botschaft.=$inhalt_der_datei;
$botschaft.="\n\n";
$botschaft.="--$grenze";
mail("[email protected]","Casting-Anmeldung",$botschaft,$headers);
print "Formular wurde versandt";
}
}
}
else
{
echo "Ein Fehler ist aufgetreten.";
}
?>
</body>
</html>
Ich würde mich wirklich ssehr freuen, wenn mir jemand helfen könnte !!!




