Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Brauche Dringend Hilfe bei Formular (php)

silmarfil

New member
Registriert
10. Juni 2004
Beiträge
1
Reaktionspunkte
0
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&auml;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&szlig;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&ouml;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&uuml;ck und f&uuml;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 ;) :) ;D :) :D
 
Bitte... ist eine Hack-Lösung. Da aber der ganze Code nicht optimal ist, reicht
das aus. Du überprüfst z.B. noch nicht einmal die Gültigkeit der E-Mail Adresse.

Nuja, habe eine Abfrage hinzugefügt, mit der Dein Problem behoben wird.

Code:
$botschaft.=date("d.m.Y H:i:s");  
$botschaft.="\n\n";
$botschaft.="\n--$grenze\n";
if($zeiger_auf_datei=fopen("$datei","rb")){
  $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";
  $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";
 
Zurück
Oben