$Session wird nicht übermittelt (SWFUpload)

kaeZe

Grünschnabel
Heyho,

ich habe mit Hilfe von "multiinstancedemo" und "swfupload" ein Multiupload konstruiert.

Das klappt auch alles wunderbar, wenn die Dateien in einen statischen Ordner geladen werden.
Ich möchte aber, dass der User einen Ordner erstellen kann und in diesem Daten hochladen kann.

Daher hab ich mit einem einfach input-Feld und einem mkdir das realisiert.

Das Upload Script hat zwei wichtige Dateien - index.php und upload.php.
In der index.php ist alles wesentliche vorhanden, inklusive Formular usw.
In der upload.php ist nur folgendes vorhanden:

PHP:
<?php
session_start();

$galname = $_SESSION["galname"];

set_time_limit(0);

$uploadDir = "../gallery/images/".$galname."/";

$filename = ereg_replace("[^A-Za-z0-9.]", "", $_FILES['Filedata']['name']);

$uploadFile = $uploadDir . $filename;

move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);

chmod($uploadFile, 0777);


?>

Das mit der Session habe ich hinzugefügt, weil ich irgendwie an den vom User eingegebenen Ordner-Namen rankommen muss.
Den Namen habe ich in der index.php in $_SESSION["galname"] gespeichert.

In meiner lokalen XAMPP-Installation funktioniert das einwandfrei.
Auf meinem externen Webserver funktioniert es nicht (scheinbar bleibt die Session-Variable leer)
Ein Loginscript, was mit Session arbeitet, funktioniert jedoch.

Jemand eine Ahnung, was da nich stimmen könnte?
 
Hast du dir denn an der entsprechenden Stelle mal die Session Variable ausgeben lassen? Wenn die befüllt ist, was ja eigentlich der Fall sein müßte, ist das Problem ein anderes.
Was ist denn das Problem überhaupt? Landen die Dateien nicht da, wo sie sollen? Dann könnte es an den Rechten des erzeugten Ordners liegen. In lokale Umgebungen spielen die Ordnerrechte meist keine Rolle, auf dem Server schon. Prüf doch mal per FTP, welche Rechte die Ordner haben. Ein 644 ist zu wenig.
 
Ich habe per isset geprüft, ob es die Session-Variable gibt und falls ja, soll der Upload ausgeführt werden - die Datei ist nicht auf dem Server gelandet.

den Ordner erstelle ich so:
PHP:
if (!file_exists("misc/gallery/images/".$_POST['galname']."")) {mkdir("misc/gallery/images/".$_POST["galname"]."", 0777);

der erstellte Ordner hat also die notwendigen Rechte (auf dem FTP überprüft).
Das Problem ist, dass die Dateien im Hauptverzeichnis landen (also "../gallery/images/" anstatt "../gallery/images/_ordner_des_users_/".
 
Bei der Prüfung solltest du vielleicht eher mit empty() oder == '' prüfen, da isset() ja auch eine vorhandene aber leere Varaible findet.
Ansonsten kann ich in dem, was ich hier sehe, keinen Fehler feststellen. Vor allem wenn es lokal funktioniert. Kann es vielleicht mit den Servereinstellungen zu tun haben? Das ist aber ein Bereich, bei dem ich auch passen muß.
 
Zurück