Pit: PHP upload register_globals = Off

Hallo:

Ich bekomme mit POST gar nichts übermittelt.

Und mit GET nur $_GET["file_upload"].

phpinfo(), http://selfaktuell.teamone.de/artikel/phpasp/php-uploadcheck/index.htm etc. haben mich leider auch nicht weitergebracht.

Pit

<html>
<head>
<title>
</title>
</head>
<?php

if(isset( $_GET["file_upload"]))
{
print "path: ".$_GET["file_upload"]."<br>";
print "name: ".$_GET["file_upload_name"]."<br>";
print "size: ".$_GET["file_upload_size"]." bytes<br>";
print "type: ".$_GET["file_upload_type"]."<p>";

if($_GET["file_upload_type"] == "image/gif")
{

$file_upload_directory = "upload";

copy ( $_GET["file_upload"], "$file_upload_directory/$file_upload_name");

print "<img src="".$file_upload_directory."/".$file_upload_name."">";

}

}
?>
<body>
<form enctype="multipart/form-data" action="<?php print $_SERVER["PHP_SELF"]; ?>" method="GET">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<!-- 100000 Bytes entspricht 100KB. -->

<!--

php.ini
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

-->

<input type="file" name="file_upload"><br>
<input type="submit" value="Datei hochladen">
</form>
</body>
</html>

  1. Tach

    <form enctype="multipart/form-data" action="<?php print $_SERVER["PHP_SELF"]; ?>" method="GET">

    Ein Upload ist ein klassischer Fall für "POST" ;-)

    Ciao,

    Harry

    1. Tach

      <form enctype="multipart/form-data" action="<?php print $_SERVER["PHP_SELF"]; ?>" method="GET">

      Ein Upload ist ein klassischer Fall für "POST" ;-)

      Ciao,

      Harry

      Hab' ich am Anfang auch derinstehen gehabt,
      das Script hat auch immer mit register_globals = On prima geklappt.

      Aber jetzt hab' ich PHP upgedated und register_globals steht standardmäßig auf Off und nichts klappt.

      method="POST" übermittelt nichts an $_POST["file_upload"].

      method="GET"> übermittelt an $_GET["file_upload"],
      aber in $_GET["file_upload_name"], $_GET["file_upload_size und $_GET["file_upload_type"] steht nichts.

      O.K. ich könnte register_globals auf On stellen,
      aber das muss doch irgenwie funktionieren,
      oder ?

      Pit

      1. Moinsen

        method="POST" übermittelt nichts an $_POST["file_upload"].

        Vielleicht hilft Dir ja das hier weiter:
        http://www.php.net/manual/en/features.file-upload.php

        Evtl. darfst Du Dich auch über nen extra dicken und extra lustigen, dafür extra lang nicht behobenen PHP-Bug freuen:
        http://bugs.php.net/bug.php?id=17958

        Ciao,

        Harry

        1. Moin!

          method="POST" übermittelt nichts an $_POST["file_upload"].

          Vielleicht hilft Dir ja das hier weiter:
          http://www.php.net/manual/en/features.file-upload.php

          Evtl. darfst Du Dich auch über nen extra dicken und extra lustigen, dafür extra lang nicht behobenen PHP-Bug freuen:
          http://bugs.php.net/bug.php?id=17958

          Oder einfach mal in $_FILES nachgucken - da stehen die hochgeladenen Dateien nämlich alle drin - wie eine kurze Kontrollausgabe der von extern übergebenen Daten per

          phpinfo(INFO_VARIABLES)

          sofort gezeigt hätte.

          Merke: Bei Formular- und Übergabeproblemen immer erst mit phpinfo() nachgucken, was PHP an Daten kriegt, und wie man auf sie zugreift!

          - Sven Rautenberg

          1. _FILES["file_upload"] Array
            (
                [name] => 03_upload.gif
                [type] => image/gif
                [tmp_name] => C:\WINNT\TEMP\php16.tmp
                [error] => 0
                [size] => 2123
            )

            Vielen Dank.

            PIT

          2. Moin

            Ich hab da einen schönes Testscript dafür, daß ich einfach immer in die Seiten reinkopiere:

            -----------------------------------------------------------
            $x=Array("_GET", "_POST", "_FILE", "_SESSION", "_COOKIE");
            echo "<pre>\n";
            for($i=0, $j=count($x); $i<$j; $i++)
            { echo "$".$x[$i].":\n";
              print_r($$x[$i]);
              echo "\n\n"; }
            echo "</pre>";
            unset($x);
            -----------------------------------------------------------

            Ciao,

            Harry

            1. Auch Moin!

              Ich hab da einen schönes Testscript dafür, daß ich einfach immer in die Seiten reinkopiere:


              $x=Array("_GET", "_POST", "_FILE", "_SESSION", "_COOKIE");
              echo "<pre>\n";
              for($i=0, $j=count($x); $i<$j; $i++)
              { echo "$".$x[$i].":\n";
                print_r($$x[$i]);
                echo "\n\n"; }
              echo "</pre>";
              unset($x);

              -----------------------------------------------------------
                 phpinfo(INFO_VARIABLES);
                 -----------------------------------------------------------

              Sieh selbst: Meins ist kürzer und umfassender ($_SERVER und $_ENV werden auch noch ausgegeben ;) ).

              - Sven Rautenberg