Andreas Korthaus: Formular mit PHP

Beitrag lesen

Hi!

print "<FORM ENCTYPE="multipart/form-data" ACTION="post.php" METHOD="POST" NAME="posting">\n";
print "Datei anhängen: <input type="file" name="datei" size="40"\n>";
print "<INPUT TYPE="SUBMIT" CLASS="ibut" name="action" VALUE="Absenden">\n";
print "</FORM>\n";

Sowas sollte man nicht machen, lieber:
<?php
// php-code
?>
<FORM ENCTYPE="multipart/form-data" ACTION="post.php" METHOD="POST" NAME="posting">
...
<?php
// mehr PHP-Code
?>

afaik ist das so auch erheblich schneller, wobei das hier irrelevant sein dürfte.

if ( $HTTP_POST_VARS['action'] == "Absenden" ){
$post = $SQL->putquery("INSERT INTO $TBLthread (name,date,lastpost,subject,message,logip,type) VALUES ('$username','$tstamp','$tstamp','$subject','$message','$logip','$form_thtype')");

$filename = $_FILES['datei']['name'];
$filesize = $_FILES['datei']['size'];
$mimetype = $_FILES['datei']['type'];

if ( isset($filename) ){

das bringt nichts weil Du $filename immer setzt, auch wenn es leer ist.

if ( $filesize<300000 ){
    copy("$datei", "uploads/$datei_name");

das solltest Du lassen, hierfür gibt es die Funktion move_uploaded_file(), Du solltest Dir mal:
http://www.dclp-faq.de/q/q-formular-upload-php4.html und http://www.php.net/manual/de/features.file-upload.php ansehen.

Der gleiche Code, nur für eine andere MySQL-Tabelle funktioniert, doch dieser nicht.

Wie unterscheiden sich die Tabellen? Ist das auf demselben Server? Funktioniert der connect zur DB? funktioniert die DB - Abfrage?
Und was genau heißt "funktioniert nicht"? Wird die Datei hochgeladen? Wird irgendwas in der DB verändett? Weißt Du genau an welcher Code ausgeführt wird, also hast Du geprüft welche If-Abfragen gewählt werden? Weißt Du ob die Datei hochgeladen wurde und nur nicht kopiert wurde...

Es liegt wohl an dem ENCTYPE="multipart/form-data", wenn ich das rausnehme, gehts,

was geht was sonst nicht geht?

nur der Fileupload geht dann nicht mehr.

Genau, weil der eben dies erfordert.

Was bewirkt eigenlich ENCTYPE="multipart/form-data, und warum funktioniert es bei mir nicht?

Siehe Links oben.

Grüße
Andreas