#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ü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 + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#4 15. Februar 2009 AW: Upload von Daten Vielleicht ist dein HTML-Gerüst fehlerhaft? + Multi-Zitat Zitieren
#5 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 + Multi-Zitat Zitieren
#6 15. Februar 2009 AW: Upload von Daten Code: enctype="application/x-www-form-urlencoded" ? + Multi-Zitat Zitieren
#7 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! + Multi-Zitat Zitieren
#8 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? + Multi-Zitat Zitieren
#9 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 + Multi-Zitat Zitieren
#10 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 ^^ + Multi-Zitat Zitieren
#11 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 + Multi-Zitat Zitieren
#12 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 + Multi-Zitat Zitieren
#13 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 + Multi-Zitat Zitieren