Griever: Upload unter Apache XampP funktioniert nicht?

Hallo.

Ich habe ein (scheinbar unlösbares) Problem.

Ich möchte ganz einfach eine Datei uploaden (sagen wir mal, eine Textdatei "50kb.txt" mit einer Größe von 50 Kilobyte). Doch mein Script schickt zwar das Formular komplett ab, aber es wird nicht erkannt, dass eine Datei geschickt wird, bzw. es wird garkeine Datei geschickt.

Ich habe hier mal des Script:

<?PHP  
if(!empty($file_name)){  
  if(copy($file,"downloads/$file_name")){  
    if(move_uploaded_file($file,"downloads/test.txt")){  
      echo "<b>Upload beendet!</b><br>";  
    }  
  }  
}  
else  
{  
?>
  
<form name="form1" enctype="multipart/form-data" method="post" action="upload.php">  
  <input type="file" name="file"><br>  
  <input type="submit" name="Abschicken" value="Upload beginnen">  
</form>
<?PHP  
}  
?>

Ich habe diesen Code (leicht verändert) aus dem selfphp-Archiv. Doch bei mir funktioniert es nicht.

Ich bitte um dringende Hilfe. Danke.

MFG
Griever

  1. Ich bitte um dringende Hilfe. Danke.

    Wie werden die Variablen $file_name und $file gefüllt?

    Siechfred

    --
    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
    1. Ich bitte um dringende Hilfe. Danke.

      Wie werden die Variablen $file_name und $file gefüllt?

      Siechfred

      <form name="form1" enctype="multipart/form-data" method="post" action="upload.php">  
        <input type="file" name="file"><br> <!-- so weit ich weiß, damit -->  
        <input type="submit" name="Abschicken" value="Upload beginnen">  
      </form>
      

      Bei Selfphp.de stand drinne, dass das File-Input-Feld "<input type="file" name="file">" die Variablen ausfüllt. Dies wird aufgrund des Namens, die das Objekt erhalten hat, durchgeführt. Laut selfphp.de

      Ich habe aber jetzt ein wesentlich gravierenderes Problem:

      Mir ist es nicht möglich, formulardaten zu empfangen oder zu bearbeiten.

      Ich habe jetzt ein einfaches form gebastelt. Siehe:

      <form action="index.php" method="post"><input type="text" value="test" name="eingabefeld1"></input><input type="submit" value="Schreiben"></input></form><br>  
      
      ~~~~~~php
      <?PHP  
      @echo $eingabefeld1;  
      ?>
      

      Doch nichtmal dieses einfache Script funktioniert. -.-

      Ich hatte das Problem schon öffters mit Apache. Doch mich würde mal wirklich interessieren, was apache da für ein Problem mit hat ... -.-

      MFG
      Griever

  2. Ich grüsse den Cosmos,

    Ich habe diesen Code (leicht verändert) aus dem selfphp-Archiv. Doch bei mir funktioniert es nicht.

    Diese fehlermeldung ist so präzise, das ich dir darauf exakt mit "Dann stimmt irgendwas nicht" antworten kann.

    Ich bitte um dringende Hilfe. Danke.

    Wenn es so dringend ist, wieso gibst du dann keine relevanten Infos?

    Möge das "Self" mit euch sein

    --
    Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
    ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
    1. Ich grüsse den Cosmos,

      Ich habe diesen Code (leicht verändert) aus dem selfphp-Archiv. Doch bei mir funktioniert es nicht.

      Diese fehlermeldung ist so präzise, das ich dir darauf exakt mit "Dann stimmt irgendwas nicht" antworten kann.

      Ich bitte um dringende Hilfe. Danke.

      Wenn es so dringend ist, wieso gibst du dann keine relevanten Infos?

      Möge das "Self" mit euch sein

      Relative Infos?

      Meinste, welches Xampp und welches Apache?

      Xampp: 2.4 (vom 30. Oktober 2006)
      Apache: Erst vor 2 Tagen runtergeladen und installiert.

      Oder welche Informationen meinst du?

      1. Ich grüsse den Cosmos,

        Relative Infos?

        Relevant, nicht relativ.
        Dazu gehört z.B. die Einstellungen der php.ini (phpinfo())

        Allerdings ist register_globals = on die wohl schlechteste Lösung in deinem Fall. Wieso schreibst du das Script nicht so um, das es mit register_globals = off funktioniert?
        Tipps dazu findest du massig im Archiv und bei Google.

        Möge das "Self" mit euch sein

        --
        Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
        ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
        1. Ich grüsse den Cosmos,

          Relative Infos?

          Relevant, nicht relativ.
          Dazu gehört z.B. die Einstellungen der php.ini (phpinfo())

          Allerdings ist register_globals = on die wohl schlechteste Lösung in deinem Fall. Wieso schreibst du das Script nicht so um, das es mit register_globals = off funktioniert?
          Tipps dazu findest du massig im Archiv und bei Google.

          Möge das "Self" mit euch sein

          Öhm. Leider hat das register_globals = on sowieso nicht den gewünschten Effekt erzielt. Trotz neustart von Apache hatte die Einstellung keine Auswirkungen auf die formulardaten/variablen.

          Ich weiß, dass es mit einer fesgelegten Globalen Grundvariable die möglichkeit gibt, auf die Formularvariablen zuzugreifen. Doch eigentlich wollte ich das ja nicht. "Eigentlich" ... doch mir scheint wirklich kein anderer Weg übrig zu bleiben. -.-

          MFG
          Griever

          1. Ich grüsse den Cosmos,

            Ich weiß, dass es mit einer fesgelegten Globalen Grundvariable die möglichkeit gibt, auf die Formularvariablen zuzugreifen. Doch eigentlich wollte ich das ja nicht.

            Hat es einen Grund, wieso du es ablehnst, deinen Code robust und sicher zu machen? Immerhin ist es unüblich, den Code absichtlich mit Sicherheitslücken zu versehen.

            Möge das "Self" mit euch sein

            --
            Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
            ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
  3. Ich grüsse den Cosmos,

    Nachtrag: Wie ist bei dir register_global gesetzt?

    Möge das "Self" mit euch sein

    --
    Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
    ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
    1. Ich grüsse den Cosmos,
      Nachtrag: Wie ist bei dir register_global gesetzt?
      Möge das "Self" mit euch sein

      Wo kann man die auslesen/ändern?

    2. Oh. Danke.

      Ich habe es gefunden (php.ini). Habe es von "OFF" auf on gestellt. (eigentlich logisch)

      Sorry, dass ich euch mit meiner "nichtigen" frage belästigt habe.

      Danke für eure hilfe.

      MFG
      Griever

      1. echo $begrüßung;

        Ich habe es gefunden (php.ini). Habe es von "OFF" auf on gestellt. (eigentlich logisch)
        Sorry, dass ich euch mit meiner "nichtigen" frage belästigt habe.

        register_globals auf on zu stellen ist keine Lösung sondern für Scripte, die mit deinem derzeitigen Wissensstand geschrieben werden, nur die Ursache für weitere Probleme. Lass es ausgeschaltet, das hat seinen guten Grund und verwende die vorgesehenen Arrays $_GET, $_POST etc. die sind genauso gut wie direkte Variablen verwendbar, nur dass darüber niemand beliebige Variablen im Script anlegen lassen kann, indem er einfach Parameter an die URL hängt. Siehe http://de.php.net/manual/en/security.globals.php

        echo "$verabschiedung $name";

        1. verwende die vorgesehenen Arrays $_GET, $_POST etc.

          Danke. So werde ich das nun auch machen.

          Danke nochmal für die Hilfe.

          MFG
          Griever