Guten Tag,
Ich habe folgendes Problem. Ich habe ein Uploadformular, wo ich den Besuchern meiner Seite die Möglichkeit gebe, ein Bild hochzuladen. Das klappt auch alles wunderbar. Nun möchte ich aber noch, das der User seinen Namen eingeben muss und der mir dann ebenfalls in der Mail mitgeschickt wird. Ich hab schon sehr viel getestet, komme aber nicht weiter.
Hier das Uploadformular
Datei auswählen Dein Name Sicherheitscode
Das Inputfeld „Name“ habe ich ja einfach hinbekommen…nun das Actionformular:
<?php $zielordner='upload/'; // ggf. Schreibrechte (CHMOD) erteilen!$upload\_limitieren=0; // mögliche Werte 0 und 1 (aus/an) $upload\_groesse=500; // in Kilobyte $mailsenden=1; // mögliche Werte 0 und 1 (aus/an) $emailadresse='[[email protected]](mailto:[email protected])'; $betreff='Neuer Upload'; $captcha\_verwenden=1; // mögliche Werte 0 und 1 (aus/an) $ip\_sperre=0; // mögliche Werte 0 und 1 (aus/an) $ip\_sperrzeit=10; // in Minuten $erlaubte\_dateiendungen=array('jpg','jpeg','gif','png'); $erlaubte\_mimetypen=array("text/plain","image/pjpg","image/pjpeg","image/gif","image/jpg","image/peng","image/jpeg","image/bmp","image/x-windows-bmp","image/tiff","image/x-tiff","application/plain", "application/x-photoshop","application/octet-stream","application/postscript","application/xms-word","application/mspowerpoint","application/powerpoint","application/vnd.ms-powerpoint","application/x-mspowerpoint","application/excel","application/x-excel","application/vnd.ms-excel","application/x-msexcel","application/zip","application/x-zip","application/x-compressed","application/x-zip-compressed","audio/mid","audio/mp3","application/x-winamp-plugin","interface/x-winamp-skin","audio/x-mp3"); $e[0]="Uploadfehler: Die erlaubte Dateigröße $upload\_groesse kb ist überschritten"; $e[1]="Uploadfehler: Die Dateiendung ist nicht erlaubt."; $e[2]="Uploadfehler: Der Mime-Typ der Datei ist fehlerhaft oder wird nicht unterstützt."; $e[3]="Beim Upload ist ein Fehler aufgetreten."; $e[4]="Uploadfehler: Keine Datei ausgewählt oder unbestimmter Fehler aufgetreten"; $e[5]="Der Sicherheitscode (Captcha) ist nicht korrekt"; $e[6]="Die IP-Sperre ist für $ip\_sperrzeit Minuten aktiv."; $e[200]="Der Upload war erfolgreich. Dein Bild wird nach erfolgreicher Prüfung freigeschalten. Du wirst in 3 Sekunden weitergeleitet. Sollte das nicht funktinieren, klicke bitte auf zurück."; $datum=date("d.m.Y"); $uhrzeit=date("H:i"); $ausgabe=''; if($captcha\_verwenden==1){ session\_start(); if(isset($\_POST['cap'])){$eingabe=mig($\_POST['cap']); if($eingabe=="" || $eingabe!=$\_SESSION['cod']){$fehler=1; $ausgabe=$e[5].' ';}} } //endcaptchaprüfung if($ip\_sperre==1){ ########################## $ip\_sperrzeit\_sec=$ip\_sperrzeit\*60; // Ordner ipsperre durchscannen $oeffnevz = openDir('ipsperre'); while($filename = readDir($oeffnevz)){ if($filename != "." && $filename != ".."){ // datei entfernen if(file\_exists('ipsperre/'.$filename)){$tsofthefile=filemtime('ipsperre/'.$filename)+$ip\_sperrzeit\_sec; // fileatime funkt. scheinbar bei MS nicht richtig daher filemtime if($tsofthefile';} //speichern (erst nach erfolgreichem Upload) /\* $nix=''; $iplog = fopen('ipsperre/'.$ip1, "w+"); fwrite($iplog, $nix); fclose($iplog); \*/ } ########################## } //endipsperre if(!isset($fehler)){ $uploadresult=dotheupload('uploadfile', $zielordner, $upload\_limitieren, $upload\_groesse, $erlaubte\_dateiendungen, $erlaubte\_mimetypen, $e, $ip\_sperre); ## das dotheupload spuckt Array aus ## [0] wert 0 = Feld nicht gefüllt, kein Upload vorgenommen wert 1= Upload vorgenommen ## [1] wert 0 = Upload nicht erfoglreich wert 1= Upload erfolgreich ## [2] pfad und dateiname ## [3] string mit gesammelten Fehlermeldungen ## [4] Dateiendung (ohne Punkt) #print\_r($uploadresult); if($uploadresult[0]==1){//Uploaddatei vorhanden if($uploadresult[1]==0){$ausgabe.=$uploadresult[3];} else{ ############################### ## Mailsenden if($mailsenden==1 && $emailadresse!="" && $betreff!=""){ $mailtext=" Upload ausgeführt am $datum, $uhrzeit Uhr Datei: $uploadresult[2] "; @mail($emailadresse, $betreff, $mailtext, $Name, "\nFrom: $emailadresse "); # manche Provider fordern aus Spamschutzgründen einen Zusatz (-f) im Mailbefehl. Sollte der # Mailversand trotz mailsenden=1 nicht funktionieren, entfernen Sie das Rautesymbol (#) vor dem # folgenden Mailbefehl: # @mail($emailadresse, $betreff, $mailtext, $Name, "\nFrom: $emailadresse ","-f $emailadresse"); ############# /\* $testmail = fopen("mail.txt", "w+"); fwrite($testmail, $mailtext); fclose($testmail); \*/ ############# } //endmailsenden ################################ $ausgabe.=$e[200];} }else{$ausgabe.=$e[4];} } //Fehler bei Captcha oder IP vorhanden echo $ausgabe; echo ' [zurück](javascript:history.back();) '; function dotheupload($feldname, $zielpfad, $upload\_limitieren, $size\_kb, $allowed\_endings=array(), $from\_mime=array(), $e=array(),$ip\_sperre){ $errnumbers=''; $ucffeldname=ucfirst($feldname); if($upload\_limitieren==1){ //Limitierung eingeschaltet if($\_FILES[$feldname]['size'] \> (1000\*$size\_kb)){$errnumbers.=$e[0].' '; $fehler=1;} } if(!$\_FILES[$feldname]['name']){$fehler=1; $interner\_hinweis=0; /\* Uploadfeld nicht gefüllt \*/ }else{ $interner\_hinweis=1;} if(!$\_FILES[$feldname]['error'] && !isset($fehler)){ // $endung = strrchr($\_FILES[$feldname]['name'],'.'); // sucht das letzte Vorkommen e. Punktes $endung\_mp = strtolower($endung); // Endung mit Punkt $endung = str\_replace(".", "", strtolower($endung)); // Punkt weg $mime = $\_FILES[$feldname]['type']; ## Prüfung ob erlaubte Dateiendung okay geht if(!in\_array($endung, $allowed\_endings)){$errnumbers.=$e[1].' '; $fehler=1;} if(!in\_array($mime, $from\_mime)){$errnumbers.=$e[2].' '; $fehler=1;} $zielname=str\_replace($endung\_mp, "", $\_FILES[$feldname]['name']); ## Sonderzeichen rausfiltern $zielname= strtolower(preg\_replace('/[^a-zA-Z0-9\_.+-]/', '', $zielname)); $pfile=$zielpfad.$zielname.'.'.$endung; if(!isset($fehler)){ ## falls vorhanden, suffix dran, wieder prüfen $i=0; while(file\_exists($pfile)){ $pfile=$zielpfad.$zielname.'\_'.$i.'.'.$endung; $i++;} ## ODER ## checken ob eine so benannte datei schon existiert #if(file\_exists($pfile)){$errnumbers.=$e[3].' '; $fehler=1;} } if(!isset($fehler)){ ## uploadvorgang @move\_uploaded\_file($\_FILES[$feldname]['tmp\_name'], $pfile); @chmod($pfile, 0644); ## datei exisitert nicht? if(!file\_exists($pfile)){$errnumbers.=$e[3].' '; $fehler=1;} ## wenn Datei exitiert, aber Dateigröße 0Byte, dann weglöschen und ERROR ausgeben. if (get\_size($pfile)=="0"){@unlink($pfile); $errnumbers.=$e[3].' '; $fehler=1; } } // wenn bis hierher kein Fehler dann alles roger! if(!isset($fehler)){$result=1; session\_start(); session\_unset(); session\_start(); ########################## if($ip\_sperre==1){ $ip1=$\_SERVER['REMOTE\_ADDR']; if($ip1==""){if(getenv(HTTP\_X\_FORWARDED\_FOR)){ $ip=getenv('HTTP\_X\_FORWARD\_FOR');}else{$ip=getenv('REMOTE\_ADDR');}} if($ip1!=""){$nix=''; $iplog = fopen('ipsperre/'.$ip1, "w+"); fwrite($iplog, $nix); fclose($iplog); }} ########################## } else {$result=0;} ########################## } $ergebnisse=array( '0' =\> $interner\_hinweis, '1' =\> $result, '2' =\> $pfile, '3' =\> $errnumbers, '4' =\> $endung ); return $ergebnisse; } //endfunction function get\_size($path) { if(!is\_dir($path))return filesize($path); $dir = opendir($path); while($file = readdir($dir)) { if(is\_file($path."/".$file))$size+=filesize($path."/".$file); if(is\_dir($path."/".$file) && $file!="." && $file !="..")$size +=get\_size($path."/".$file); } return $size; } function mig($get){ $get=htmlentities(strip\_tags($get)); $get=trim($get); return $get;} ?\> Wo kommt jetzt der Befehl für den Namen rein? Muss es eine "IF-Anweisung" sein? Ich habe es schon probiert, aber irgendwie komme ich da nicht weiter, da es ein fertiges Script war. Vielen Dank für die Mühe