[Variablen] $file_name = Konstante?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Variablen] $file_name = Konstante?

    Hallo an alle!

    hab mein Bilduploadscript jetzt wieder mal hervorgeholt und wollte da einige Sachen ändern bzw. optimieren. Doch irgendwie fehlt mir der Rote Faden zu der Variable $file_name.
    Hab mal ein anderes Script von irgendeiner Webseite genommen da meines für hier zu lang wäre - zum Verständniss meines NichtVerständnisses reicht auch das:
    PHP-Code:
    Create a form in your html file.

    <
    form method="post" action="file.php"
    <
    input type="File" name="FileToUpload"
    <
    input type="submit" value="submit">
    <
    input type="reset" value="reset">
    </
    form>

    Create a file called file.php and put these codes in it

    if (
    $File_name){
      if (
    copy($FileToUpload"./photos/$File_name")){
        echo 
    'File Name :' $File_name .';
        echo '
    File Size :' . $File_size .';
        echo 
    'The file was successfully uploaded!';}
      else
        echo 
    'Your file could not be copied.';
    unlink($FileToUpload); 
    Mein Problem an der Stelle ist wieso ist "if ($File_name)" true wenn ich eine Datei hochgeladen habe?
    Woher weiss PHP wie die Datei heisst die übergebene Variable heisst doch $FileToUpload oder?
    Muss demnach eine Upload Konstante sein oder lieg ich jetzt vollkommen daneben?

    Danke schonmal!

    CU
    LooM

    PS.: hatte zwar im Forum gesucht dennoch niemand ist bisher auf diese Variable eingegangen.
    PSS.: bei Blindheit meinerseits bitte bloss mal kurz einen Link zur Erklärung reinstellen, Danke.

  • #2
    keine Ahnung wo du das Beispiel ausgegraben hast, aber vergiss lieber alles und fang von vorne an...
    http://de3.php.net/manual/de/features.file-upload.php

    Der gepostete Code ist so minderwertig, dass man ihn schon fast als was besonderes ansehen könnte

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      HI ghostgambler.

      ich weiss ich weiss ich sollte das $_FILES Array fuer solche Sachen nutzen.
      Doch wieso so kompliziert wenn ich nur eine Datei hochladen will - Sicherheit etc. muessen wir hier nicht diskutieren.
      Mir fehlt eben nur zum Verstaendniss des oben geposteten Codes woher weiss PHP das es $file_name gibt?
      War das mal eine Konstante aus PHP Urzeiten oder wie?
      Trotzdem Danke fuer den Link!

      CU
      LooM

      edit:
      ich such die page nochmal raus ... kam bei meiner Suche bei google zum Vorschein nach $file_name.

      Kommentar


      • #4
        Re: [Variablen] $file_name = Konstante?

        Original geschrieben von loom2005
        Create a file called file.php and put these codes in it:

        PHP-Code:
        if ($File_name){
          if (
        copy($FileToUpload"./photos/$File_name")){ 
        das sieht nach PHP1/2/3 aus (gemeint ist: jedenfalls nicht von heute) und findet sich im php-manual nicht mal als "obsolete". Bezeichnend ist auch, dass im <form> KEIN enctype="multipart/form-data" Attribut ist.

        Kommentar


        • #5
          Original geschrieben von loom2005
          Mir fehlt eben nur zum Verstaendniss des oben geposteten Codes woher weiss PHP das es $file_name gibt?
          War das mal eine Konstante aus PHP Urzeiten oder wie?
          1. eine Konstante fängt nicht mit $ an
          2. nein, so einen scheiß habe ich bis jetzt in meiner ganzen Zeit als PHP-Programmierer noch nicht gesehen, ich bezweifle stark, dass ein File-Upload mit diesem Stück funktioniert...

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Ich hab's tatsächlich gefunden, als php3 Syntax. Allerdings müsste es heissen.
            <input type=file name="File"> Aus diesem Name=File entsteht $File_name, $File_size usw. Mit <input type=file name="FileToUpload"> wäre entstanden $FileToUpload_name, $FileToUpload_size usw. Und ausserdem fehlt das enctype Attribut auch für php3. Es geistern offenbar immer noch solche scripts durch die foren, wenn man es ausgoogelt.

            http://www.essi.fr/~buffa/cours/inte...ileupload.html

            Kommentar


            • #7
              HI nochmal,

              auch wenn es so aussieht als wuerde ich etwas nerven wollen...
              Ich will doch nur wissen warum es geht.
              Hab mir mal die "Muehe" gemacht und das von mir angesprochene Script nochmal angeschaut ... geht natuerlich nicht ....
              So das ganze noch einmal etwas anders dennoch selbige Problemstellung:
              PHP-Code:
              <body>
                              <br />
              <?php

              if ($senden) {
              if (
              $file_name == "") {
              die(
              "Keine Datei gewählt.");
              }

              @
              copy($file"./$file_name") or die($body."Datei wurde nicht hochgeladen.");
              echo 
              "Datei hochgeladen";   }
              else { 
              ?>
              <html>
              <body bgcolor=#FFFFFF text=#000000 link=#ccff88 vlink=ccff88 alink=#ccff88>
              <form action="<?php $PHP_SELF?>"method="post" enctype="multipart/form-data">
              <p>Bitte Datei auswählen:<br>
              <input type=file name=file>


              <p><button name="senden" type="submit">Hochladen</button>
              </form>
              </body>
              </html>

              <?}?>
              Das ganze gibts als Livescript unter www.abc-imobilaria.com/test/test_bild.php als "Beweismittel".
              Wenn keine Datei im Formular ausgewaehlt wurde tritt
              PHP-Code:
              if ($file_name == "") {
              die(
              "Keine Datei gewählt.");

              in Kraft nun meine Frage: Warum ist das so?

              CU und nochmals Danke
              LooM

              PS.: Festellung: $file_name enthaehlt nach dem hochladen den Dateinamen vom Client und $file enthaelt den Temporaeren Dateinamen.

              ----------------------------------------------------------------------------------------------
              edit: Ups,
              tcpip und ich haben wohl zur gleichen Zeit eine Antwort gesendet.
              Danke Dir tcpip ... dachte schon ich drehe jetzt voellig frei ...
              Also funktioniert der Sch**** doch ... aus irgendwelchen unerfindlichen sonderbaren Gruenden.
              Naja wie auch immer an alle anderen:
              Dieses Script sollte so nicht verwendet werden, da es nicht mehr der heutigen Norm entspricht. Besser ist die obengenannte Referenz im PHP Manual mal zu studieren und seine/ihre FileUploads so zu gestalten.




              Zuletzt geändert von loom2005; 05.07.2006, 01:01.

              Kommentar


              • #8
                Original geschrieben von loom2005
                Also funktioniert der Sch**** doch ... aus irgendwelchen unerfindlichen sonderbaren Gruenden.
                ich denke nicht, dass es mit php4 noch so funktioniert. Und irgendwo noch php3 laufend zu finden Oo,

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  Original geschrieben von ghostgambler
                  ich denke nicht, dass es mit php4 noch so funktioniert.
                  Nur wenn man Globale Variablen aktiviert hat in der php.ini (nicht ratsam, ganz und garnicht!!)
                  Original geschrieben von ghostgambler
                  Und irgendwo noch php3 laufend zu finden Oo, [/B]
                  WAS?? Wenn du meintest: "Wenn man irgendwo noch php3 laufend vorfindet", dann muss ich sagen: Ja, leider gibt es sogar Möchtegern-Profis die dies einsetzen und gewaltige Lücken im Script aufgrund von Dummheit haben, trotz allem aber von sich total überzeugt sind!

                  Kommentar

                  Lädt...
                  X