[PHP] Upload von Daten

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Tairock, 15. Februar 2009 .

Schlagworte:
  1. 15. Februar 2009
    Upload von Daten

    Hallo

    Ich hab nen Problemchen mit Bilder upload.
    OS: MAC OS X
    xampp local
    PHP
    Spoiler
    echo "<input type='text' class='standardField' name='photoname'>";
    echo "<input type='file' name='photo'>";
    echo "<input type='submit' class='standardSubmit' name='uploadPhoto' value='Hochladen'>";

    if(isset($_POST['uploadPhoto'])){
    $AdminP->uploadPhoto($_POST['photoname'])
    }

    public function uploadPhoto($photoname){
    echo $_FILES['photo']['error'];
    }
    Ausgabe:
    Spoiler
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"">
    <html>
    <head>
    <title>xxxx</title>
    <link rel='stylesheet' type='text/css' href='http://localhost/shop/inc/css/default.css.php'>
    <script src='http://localhost/shop/inc/js/default.js' type='text/javascript'></script></head>
    <body>
    <div style='padding:2px;'><span style='font-size:20pt;font-weight:bold; color:steelblue;border-bottom:1px solid gray;'>Upload</span><br /><a href='http://localhost/shop/index.php' style='font-weight:normal;color:black;text-decoration:none;'>Zur&uuml;ck</a><br /></div><form id='noSpaces' action='' method='post' enctype='multipart/form-data'><table><tr><td>Fotoname:</td><td><input type='text' class='standardField' name='photoname'></td><td>Foto:</td><td><input type='file' name='photo'></td><td><input type='hidden' name='productid' value='1'><input type='submit' class='standardSubmit' name='uploadPhoto' value='Hochladen'></td></tr></table></form>6<br />
    Natürlich ganzen Upload Felder nach den klick kommt dann noch die Ausgabe aus $_FILES error = 6

    Auszug aus php.net
    Value: 6; Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.

    Hab mich dann mal auf der Suche gemacht. In der phpinfo() ist aufgefallen das,

    file_uploads On On
    upload_tmp_dir no value no value

    gesetzt ist. Dachte ich mir, schreib ich das mal in der ini um,
    upload_tmp_dir = "/Applications/xampp/etc/tmp"

    xampp restart und noch mal in der ini geguckt,
    upload_tmp_dir no value no value
    war immer noch da.

    Einer eine Lösung perrat? Oder suche ich an der falschen Stelle?
    Danke
     
  2. 15. Februar 2009
    AW: Upload von Daten

    Wie sieht denn deine Funktion uploadPhoto aus?

    Schreibe mal an den Anfang der Datei
    PHP:
    error_reporting ( E_ALL  E_STRICT );
    Vielleicht gibt das dir hilfreiche Fehlermeldungen aus.
     
  3. 15. Februar 2009
    AW: Upload von Daten

    hab error_reporting(E_ALL);
    code läuft ohne Probleme, hat nur keinen Daten in $_FILES, siehe dazu error 6
     
  4. 15. Februar 2009
    AW: Upload von Daten

    dann müsste es aber ein anderer fehlercode von $_Files sein,
    Value: 6; Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.

    html code mach ich oben rein
     
  5. 15. Februar 2009
    AW: Upload von Daten


    PHP:
    echo  "<form enctype='multipart/form-data' action='' method='POST'>" ;
    echo 
    "<input type='text' class='standardField' name='photoname'>" ;
    echo 
    "<input type='file' name='photo'>" ;
    echo 
    "<input type='submit' class='standardSubmit' name='uploadPhoto' value='Hochladen'>" ;
    echo 
    "</form>" ;

    if(isset(
    $_POST [ 'uploadPhoto' ])){
          
    $AdminP -> uploadPhoto ( $_POST [ 'photoname' ])
    }

    public function 
    uploadPhoto ( $photoname ){
            echo 
    $_FILES [ 'photo' ][ 'error' ];
    }
    So sollte es Funktionieren!
     
  6. 15. Februar 2009
    AW: Upload von Daten

    sry vergessen, hab deine Variante auch probiert, geht nicht

    Klasse von $AdminP
    Code:
     public function showPhotoUploadFormular($productid){
    
     echo "<form id='noSpaces' action='' method='post' enctype='multipart/form-data'>";
     //echo "<form enctype='multipart/form-data' action='' method='POST'>";
     echo "<table><tr>";
     echo "<td>";
     echo "Fotoname:";
     echo "</td><td>";
     echo "<input type='text' class='standardField' name='photoname'>";
     echo "</td><td>";
     echo "Foto:";
     echo "</td><td>";
     echo "<input type='file' name='photo'>";
     echo "</td><td>";
     echo "<input type='hidden' name='productid' value='".$productid."'>";
     echo "<input type='submit' class='standardSubmit' name='uploadPhoto' value='Hochladen'>";
     echo "</td></tr></table>";
     echo "</form>";
     }
    
    index seite
    Code:
    $AdminP->showPhotoUploadFormular($pid);
    
    //Photo hochladen
    if(isset($_POST['uploadPhoto'])){
    
    
     $AdminP->uploadPhoto($_POST['photoname'],$pid);
    
    }
    
    Ich denke das es eher an php liegt oder nicht? Zumindestens auf mein Windows client ist dieser Wert eingetragen und würde ich sonst den Fehler bekommen das der temp Ordner fehlt?
     
  7. 20. Februar 2009
    AW: Upload von Daten

    Hat niemand eine Lösung? :/
    Hab auch schon das nächste Problem. Ich schaff es einfach nicht Variablen zu speichern um sie später zu übertragen.
    Ich habe mehrere Varianten gleichzeit Probiert //v1,v2,v3
    v1 = in der products eine variable
    v2 = global x die in der Klasse benutzt wird
    v3 = var in der Klasse

    products.php
    Code:
    <?php
    (...)
    $APRODUCT = new AdminProduct();
    (....)
    /v1
    $hauptgruppen;
    (...)
    
     //Hauptgruppen auswahl
     if(isset($_POST['btHG'])){
     //Wenn nichts ausgewählt ist
     if (!isset($_POST['Hauptgruppe']))
     die ();
    
     //Untergruppen anzeigen
     $hauptgruppen = $APRODUCT->getProductSG($_POST['Hauptgruppe']);
     
     }
    
     //Untergruppen auswahl
     if(isset($_POST['btSG'])){
     //Wenn nichts ausgewählt ist
     if (!isset($_POST['Untergruppe']))
     die ();
     
     $APRODUCT->printProductAdd($_POST['Untergruppe'], $hauptgruppen);
     }
    (....)
    
    Bei den letzten Funktionsaufruf der Seite kommt der Fehler "Undefined variable: hauptgruppen"
    ???

    Teil von der Klasse (wäre sonst zu lang)
    Code:
    <?php
    
    //v2
    $x;
    Class AdminProduct{
    
     private $DB;
     //v3
     var $y;
    
    (.....)
    
     public function getProductSG($gid){
    
    (.............)
     
     //Werte von der Hauptgruppe speichern
     $sql = "SELECT * FROM groups WHERE id = ".$this->DB->escapeString($gid);
     $hauptgruppen = $this->DB->query($sql);
    
     foreach ($hauptgruppen as $result){
     //Variante 1 mit Wert zurück geben
     $hauptgruppe = $result['id'];
     //Variante 2 mit Globals
     $GLOBALS['x'] = $result['id'];
     //V3
     $this->y = $result['id'];
     }
     //Zum Test
     echo $hauptgruppe;
     echo $GLOBALS['x'];
     echo $this->y;
     //Ausgabe = 111
    
     return $hauptgruppe;
     }
    
     public function printProductAdd($sid, $hauptgruppe){
    
     //Nur zum Test!
     //v1
     echo $hauptgruppe;//Die Hauptgruppe geht schon nicht in der product.php -> undifiniert
     //v2
     echo $GLOBALS['x']; //Undefined index: x
     //v3
     echo "<br>".$this->y; //keine ausgabe???
    
    (.......)
    
     }
    }
    
    Wenn einer eine Lösung für beide oder einer der Probleme hat, ich höre gerne zu Ich lasse mich auch gerne von anderen Varianten überreden
     
  8. 20. Februar 2009
    AW: Upload von Daten

    Lies doch die Fehlermeldung. Du hast keinen Temp Ordner. Wenn du Dateien per Formular hochlädst, werden sie erst in einen Temp Ordner geladen, dieser scheint bei dir zu fehlen. Da kannst du in der ini einstellen, es gibt ihn, aber wozu, wenns ihn nicht gibt ^^
     
  9. 20. Februar 2009
    AW: Upload von Daten

    Und wenn du mir jetzt noch sagen kannst wie ich das hin bekomme wärs super.
    Siehe dazu meinen ersten Beitrag und komplizierte Texte am Morgen sind nichts für mich Keine Ahnung ob ich das jetzt falsch verstanden habe.

    Schönes Wochenende
     
  10. 20. Februar 2009
    AW: Upload von Daten

    Hätte ich gleich gemacht, wenn ich wüsste, wie genau ^^ Ich hab mal gegoogelt, vielleicht hilft dir das ja weiter:

    upload_tmp_dir no value | Apfeltalk
    upload file with php PHP Server Side Scripting forum at WebmasterWorld

    Ich benutze XAMPP unter Windows und bin grad aber leider nicht an meinem PC, sonst würde ich nachschauen (wo genau mein temp Ordner liegt). Aber ich denke, du kannst ihn rein tun, wo du willst, da du nur in der php.ini den richtigen angeben musst.
    Einer meinte, es kann auch an der PHP-Upload Methode liegen (1. Link). Musst mal schauen.
    Also meiner müsste auf jeden Fall entweder C:\temp, C:\xampp\temp oder C:\xampp\htdocs\temp sein, aber ich glaube er liegt nicht im htdocs Ordner, da auf den Temp Ordner vom Web aus (glaube ich) nicht zugegriffen werden sollte.

    Also, nicht dass ich dir die Hilfe erschweren wollte
     
  11. 23. Februar 2009
    AW: Upload von Daten

    Mist, nun muss ich alles zwei mal schreiben nur weil ich nicht angemeldet war.

    So, ich hoffe ihr habt ein schönes Wochenende gehabt.

    Ich habe jetzt das Handtuch geworfen.
    Das Upload Formular funktioniert ohne Probleme unter Windows. Wer noch eine Lösung für das Problem hat, ich wäre sehr dankbar dafür.
    Egal was ich in die php.ini unter den upload_dir schreibe, es ist immer in der phpinfo NO VALUE zu sehen.

    Dann hatte ich noch ein Problem mit den DB Export in phpmyadmin.
    Nachdem ich den tollen "OK" btm geklickt hatte bekam ich nicht den SQL Imp-/Export code sondern den Fehler

    export.php: Missing parameter: what (FAQ 2.8)
    export.php: Missing parameter: export_type (FAQ 2.8)

    Nach 2h googlen war ich nicht wirklich schlauer. Hab jetzt einfach die Ordner kopiert, wenn trotzdem einer eine Lösung dafür hat bin ich sehr dankbar.
    Hab es mit Firefox v.3.0.6 (mac), Safari 3.2.1 und unterschiedlichen phpmyadmin Exportoptionen probiert.

    Das Problem mit den Variablen besteht immer noch und ich weiß nicht wie ich das hin bekommen kann. Liegt es evtl. daran das ich alle actions in der gleichen .php Datei nacheinander ausführe, dadurch immer wieder neu die Klasse geladen wird und somit die Variablen wieder neu erzeugt werden?

    Wünsche eine schönen Start in die Woche
    Tai
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.