tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Dr Dau
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
494
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    looopi looopi ist offline Grünschnabel
    Registriert seit
    Nov 2011
    Beiträge
    4
    Hallo zusammen!

    Nach Serverumzug will mein Dateiupload nicht mehr...
    Auf anderen Servern funktioniert das Script nach wie vor wunderbar. Muss also eigentlich an einem Befehl liegen, der in einer neueren PHP-Version nicht mehr unterstützt wird? Sonst fällt mir nichts mehr ein...

    Hier nur das wesentliche:

    PHP-Code:
    $file $_FILES['file']['name'];  
    $filetype $_FILES['file']['type'];  
    $filetmp $_FILES['file']['tmp_name'];  
    $filename $objekt ".jpg"


    $updir "objekte/"
    move_uploaded_file($filetmp$updir.$filename); 
    if (
    filesize($updir.$filename)<1) die ('Sie haben versucht eine leerer Datei hochzuladen!'); 
    Ich bin mir auch gar nicht sicher ob es an obigem Script liegt, oder am Formular vorher.

    PHP-Code:
    <form method="post" action="<? $PHP_SELF ?>" enctype="multipart/form-data">
    <input type="file" name="file">
    </form>
    Problem ist nämlich, dass bei method=post die Eingaben irgendwie nicht übergeben werden - so mein Eindruck. Ich bekomme nach "absenden" das Formular erneut angezeigt, aber leer (auch bei reinen Text-Formularen ohne Dateiupload). Lasse ich method=post weg funktioniert es zumindest bei Text-Formularen.

    Ich hoffe man versteht was ich meine....

    Hat jemand eine Idee? Bin langsam mit meinem Latein am Ende...
    Danke!
     

  2. #2
    Registrierer Registrierer ist offline Mitglied Gold
    Registriert seit
    Mar 2009
    Beiträge
    171
    Was sagt denn :
    echo "<pre>". print_r($_POST, true) ."</pre>"; und error_reporting(E_ALL);
     

  3. #3
    Avatar von para_noid
    para_noid para_noid ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    144
    Kommt irgendwas, wenn du

    PHP-Code:
    ini_set('display_errors'1);
    error_reporting(E_ALL); 
    an den Anfang des Scripts setzt?

    ich nehme an, der Submitbutton fehlt jetzt nur im Beispiel?

    Wie sieht es mit den Zugriffsrechten des Uploadsordners aus? $objekt besitzt einen Inhalt?
     
    Für die Übereinstimmung von Niederschrift und Hirninhalt.

  4. #4
    threadi threadi ist offline Mitglied Brokat
    Registriert seit
    Dec 2006
    Ort
    Leipzig
    Beiträge
    478
    Und was sagt
    PHP-Code:
    echo "<pre>"print_r($_FILEStrue) ."</pre>"und error_reporting(E_ALL); 
    nach dem Abschicken?
     

  5. #5
    looopi looopi ist offline Grünschnabel
    Registriert seit
    Nov 2011
    Beiträge
    4
    Zitat Zitat von para_noid Beitrag anzeigen
    ich nehme an, der Submitbutton fehlt jetzt nur im Beispiel?

    Wie sieht es mit den Zugriffsrechten des Uploadsordners aus? $objekt besitzt einen Inhalt?
    Zugriffsrechte sind vorhanden, Submitbutton ist natürlich ebenso vorhanden und das Zielverzeichnis ist natürlich auch vorhanden.

    Ich schätze wie gesagt das Problem liegt entweder an einem Befehl, der in der PHP-Version auf dem neuen Server nicht unterstützt wird ODER im Upload der Datei an sich. Wenn ich im HTML-Formular "method=post" drin habe kommt bei der Verarbeitung der hochgeladenen Datei der Hinweis "leere Datei hochgeladen". Bei reinen Text-Formularen wurden auch keine Formular-Inhalte übertragen, daraufhin habe ich dort das post weggelassen und es funktionierte...

    Eure obigen Hinweise bringen folgende Fehler an den Bildschirm:

    Notice: Undefined index: file in ***.php on line 314
    Datei:

    Notice: Undefined index: file in ***.php on line 316
    Type:

    Notice: Undefined index: file in ***.php on line 318
    tmp:
    Dateiname neu:113.jpg
    [[Das sind die ersten Zeilen in meinem Script ganz oben]]

    Warning: filesize() [function.filesize]: stat failed for objekte/113.jpg in ***.php on line 347
    Sie haben versucht eine leerer Datei hochzuladen!
     

  6. #6
    wollmaus wollmaus ist offline Mitglied Gold
    Registriert seit
    Sep 2010
    Beiträge
    115
    Checke mal die PHP-Einstellung variables_order .

    Wenn PHP keine $_POST-Variablen erzeugt könnte es an dieser Einstellung liegen, der Wert muss ein String sein der ein P enthält(Standard ist EGPCS) . Kein P , keine $_POST-Variablen(einschliesslich $_FILES)


    Code :
    1
    
    echo ini_get('variables_order');
    Geändert von wollmaus (22.11.11 um 02:54 Uhr)
     

  7. #7
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    Zitat Zitat von looopi Beitrag anzeigen
    Hier nur das wesentliche:
    Kann man sehen wie man will.
    Zumindest geht aus dem Code nicht hervor ob Du überhaupt prüfst dass das Formular abgeschickt wurde und ob die Input-Felder gefüllt sind.

    Zitat Zitat von looopi Beitrag anzeigen
    PHP-Code:
    move_uploaded_file($filetmp$updir.$filename); 
    Du solltest prüfen ob move_uploaded_file() auch erfolgreich gewesen ist, denn wenn safe_mode aktiviert ist könnte selbiges Dir einen Strich durch die Rechnung machen.

    Zitat Zitat von looopi Beitrag anzeigen
    PHP-Code:
    if (filesize($updir.$filename)<1) die ('Sie haben versucht eine leerer Datei hochzuladen!'); 
    Dir ist aber schon klar dass ein Bild min. einen Header hat?
    Es kann also garnicht kleiner als 1 Byte sein.
    Sinnvoller wäre es zu prüfen ob es dem von Dir gewünschtem Mime-Type enspricht (für .jpg ist es, je nach verwendetem Browser, entweder image/jpeg oder image/pjpeg).
    Wenn ja, dann hat es natürlich auch über 0 Byte.

    Zitat Zitat von looopi Beitrag anzeigen
    PHP-Code:
    <form method="post" action="<? $PHP_SELF ?>" enctype="multipart/form-data">
    Hast Du die Variable "$PHP_SELF" auch irgendwo definiert?
    Und was soll mit dieser Variable passieren?
    Soll sie zufälligerweise das action-Attribut füllen? Dann solltest Du es dem Script auch mitteilen, z.b. mit einem "echo".
    Ausserdem funktioniert "<?" nur wenn in der php.ini "short_open_tag" aktiviert ist.
    Nutze statt dessen lieber "<?php", denn dieses funktioniert unabhängig davon was für short_open_tag in der php.ini eingestellt ist.

    Zitat Zitat von looopi Beitrag anzeigen
    Eure obigen Hinweise bringen folgende Fehler an den Bildschirm:
    Entweder findet erst garkeine Prüfung des Formulars (s.o.) statt und/oder das Formular kommt nicht bzw. nicht wie gewünscht an.

    Gruss Dr Dau
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  8. #8
    looopi looopi ist offline Grünschnabel
    Registriert seit
    Nov 2011
    Beiträge
    4
    Zitat Zitat von wollmaus Beitrag anzeigen
    Checke mal die PHP-Einstellung variables_order .

    Wenn PHP keine $_POST-Variablen erzeugt könnte es an dieser Einstellung liegen, der Wert muss ein String sein der ein P enthält(Standard ist EGPCS) .
    ist EGPS...
     

  9. #9
    looopi looopi ist offline Grünschnabel
    Registriert seit
    Nov 2011
    Beiträge
    4
    Hi!
    Zitat Zitat von Dr Dau Beitrag anzeigen
    Zumindest geht aus dem Code nicht hervor ob Du überhaupt prüfst dass das Formular abgeschickt wurde und ob die Input-Felder gefüllt sind.
    korrekt, habe ich weggelassen da es in diesem Zusammenhang nicht benötigt wird...

    Dir ist aber schon klar dass ein Bild min. einen Header hat?
    Es kann also garnicht kleiner als 1 Byte sein.
    Sinnvoller wäre es zu prüfen ob es dem von Dir gewünschtem Mime-Type enspricht (für .jpg ist es, je nach verwendetem Browser, entweder image/jpeg oder image/pjpeg).
    Wenn ja, dann hat es natürlich auch über 0 Byte.
    Gutes Argument, das werde ich umbauen.


    Entweder findet erst garkeine Prüfung des Formulars (s.o.) statt und/oder das Formular kommt nicht bzw. nicht wie gewünscht an.
    jo - sag ich ja. Ich habe jetzt zum Test vor dem move_uploaded_file noch eine echo Ausgabe der Variablen $_FILES angelegt, die Variablen bleiben dabei leer. Also kommt nach dem Absenden des Formulars keine Datei an die weiterverarbeitet werden könnte, nur warum!?
     

  10. #10
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Lege mal eine neue Datei mit folgendem Inhalt an und schaue was passiert:
    PHP-Code:
    <?php
    ini_set
    ("display_errors""on");
    error_reporting(E_ALL);

    if(isset(
    $_POST["submitbutton"])) {
        echo 
    "<pre>";
        
    var_dump($_POST);
        
    var_dump($_FILES);
        echo 
    "</pre>";
    }
    ?>
    <form method="post" action="<?php echo $_SERVER["PHP_SELF"?>" enctype="multipart/form-data"> 
        <input type="file" name="file">
        <input type="submit" name="submitbutton" value="abschicken...">
    </form>
    [edit]
    Und nehme zum testen nur eine ganz kleine Datei.
    Z.b. eine Textdatei mit einem einzigen Wort als Inhalt.
    [/edit]
    Geändert von Dr Dau (29.11.11 um 09:13 Uhr)
    looopi bedankt sich. 
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

Ähnliche Themen

  1. spectrum und xml in As3 ****t nach upload nicht mehr !!
    Von Webesek im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 18.10.11, 00:15
  2. Datei-Upload geht nicht mehr
    Von medico im Forum PHP
    Antworten: 9
    Letzter Beitrag: 28.01.07, 13:37
  3. PHP Upload funktioniert nicht mehr?!
    Von bgshackenberg im Forum PHP
    Antworten: 5
    Letzter Beitrag: 27.10.06, 17:05
  4. Antworten: 5
    Letzter Beitrag: 12.02.05, 11:27
  5. Bild Upload klappte mal, nun nicht mehr ?!
    Von Eiszwerg im Forum PHP
    Antworten: 1
    Letzter Beitrag: 05.11.04, 20:57