Hallo.

We zijn bezig met een upload script. Maar op 1 of andere manier werkt het niet. Want zodra er "geSUBMIT" wordt dan voert ie de function niet uit.


<?php
//file_upload.php
$archive_dir = "uploads/";
function upload_form() {
   global $PHP_SELF;
?>
<FORM METHOD="POST" ENCTYPE="MULTIPART/FORM-DATA" 
   ACTION="<?php $PHP_SELF ?>">
   <INPUT TYPE="HIDDEN" NAME="action" VALUE="upload">
   Upload file!
   <INPUT TYPE="FILE" NAME="userfile">
   <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="upload">
</FORM>
<?php
}
function upload_file() {
   global $userfile, $userfile_name, $userfile_size, 
         $userfile_type, $archive_dir, $WINDIR;

   if(isset($WINDIR)) $userfile = str_replace("\\\\","\\", $userfile);
   
   $filename = basename($userfile_name);
   
   if($userfile_size <= 0) die ("$filename is empty.");

   if(!@copy($userfile, "$archive_dir/$filename"))
      die("Can't copy $userfile_name to $filename.");
   
   if(!isset($WINDIR) && !@unlink($userfile))
      die ("Can't delete the file $userfile_name.");

   echo "$filename has been successfully uploaded.<BR>";
   echo "Filesize: " . number_format($userfile_size) . "<BR>";
   echo "Filetype: $userfile_type<BR>";
}
?>
<?php
if($action == 'SUBMIT') upload_file();
else upload_form();
?>
omdat je $action 'upload' is en niet SUBMIT

beter is een check op je submitknop

if (isset($_POST['submit']))
{
etc
}


gebruik btw kleine letters, om fouten te voorkomen
Je script is verouderd. Je zal het moeten aanpassen. Gebruik $_POST en $_SERVER.
Mja, het komt uit het geweldige boek "Beginning PHP4" uit 1500 B.C. dat we van school moesten aanschaffen.
Dan zou ik de leraar er lekker flink mee om zijn oren slaan.;-)

Edit: Doe maar niet letterlijk, krijg je hoofdpijn van namelijk.
Vertel je school maar dat het een kutboek is en het onverantwoord is om daaruit te moeten leren...

<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
//formulier ontvangen, doe iets.
}else{
//laat formulier zien.
}
?>

Verder is het bijv:

$_SERVER['PHP_SELF']; en werken we tegenwoordig met $_FILES['file'] (en de array erachter om gegevens uit je file te halen).
Je moet inderdaad $_SERVER en $_POST gebruiken en je moet de variablen buiten de quotes houden.

En ik denk dat je die kerel best uit kunt leggen dat jij een betere(nieuwere) manier van programmeren gebruikt

edit: Je was me voor Arjan, met de iets minder subtiele uitleg van het zelfde punt
Ja dat snapt ie ook wel... Ik heb dat boek ook niet aangeschaft maar die gast waarmee ik samen aan het project werk wel. Want ik wist toch al dat het overbodig was met al die tutorials etc.. op internet. Maar we hebben nu een andere basis genomen om vanuit te beginnen. Maar bedankt voor de hulp.

Reageren