Save_Mode dateiupload -> Verzweiflung

jensner

Mitglied
Hi Leute,

ich stehe kurz vor der Verzweiflung..
Ich möchte für einen Bekannten eine Art Fotoalbum erstellen welches er
mittels PHP-Form selbst erweitern kann.
Dafür soll in einem Verzeichnis "bilder" für jeden Urlaub ein neuer Ordner erstellt werden wo dann die gewählten Bilder hochgeladen werden.

Alles würde eigendlich funktionieren nur wegen dem "Save-Mode" haut hinten und vorne nix mehr hin.

Hier meine PHP-Info

Ich kann alle Ordner sogar per script (chmod) auf 777 stellen doch trozdem kann ich dort weder eine Datei hochladen und noch viel schlimmer, man kann sich den Inhalt dieses Ordners nicht einmal über den Browser anschauen.


Warning: opendir(): SAFE MODE Restriction in effect. The script whose uid is 645 is not allowed to access ./bilder/testestest owned by uid 30 in /srv/www/htdocs/web8/html/hofmeister/einsatzbilder.php on line 130

Ich weiß nicht mehr weiter .... H I L F E E E E E E E E E

diese sch... UID - Prüfung macht mir alle Arbeit zu nichte.....

Hier noch mein Code:

<html>
<head>
</head>
<body>
<?


//Verzeichnisname aus Textdatei einlesen
$datei1="bilder/ordner.txt";
$ordner = implode("",file($datei1));

// - - - - - Verzeichnis erstellen
mkdir("./bilder/$ordner",0777);
chmod("./bilder/$ordner",0777);
echo "Verzeichnis <b>$ordner</b> erstellt --> <font color=#008000>OK</font><br>";

//In aktuelles Verzeichnis alle ausgewählten Bilddateien kopieren

$pfad = "./bilder/$ordner/";

for($i=0;$i<count($_FILES['probe']['name']);$i++){
if ($_FILES['probe']['name'][$i] != "") {
move_uploaded_file($_FILES['probe']['tmp_name'][$i],$pfad . $_FILES['probe']['name'][$i]);
printf("Die Datei %s steht jetzt als %s zur Verfügung.<br />\n",$_FILES['probe']['name'][$i],$_FILES['probe']['name'][$i]);
printf("Sie ist %u Bytes groß und vom Typ %s.<br /><br>\n",$_FILES['probe']['size'][$i], $_FILES['probe']['type'][$i]);
}
}
?>

</body>
</html>
 
Zuletzt bearbeitet:
die Lösung deines Problems ist FTP - schreibe dein Script so um, das jegliche Transaktionen mittels FTP durchgeführt werden.

cu Bloddy
 
Dake für den Tip ..

Original geschrieben von bloddy newbie
die Lösung deines Problems ist FTP - schreibe dein Script so um, das jegliche Transaktionen mittels FTP durchgeführt werden.

cu Bloddy

Habs mir zu Herzem genommen und mit FTP umgesetzt.

Leider hab ich nun das Problem, dass das Script anscheined nicht auf meine lokale (source-) Datei zugreifen kann.

Der Zugang per FTP ist OK
Das Verzeichnis "TEST" wird ebenfalls erstellt.
Der Wechsel ins neue Verzeichnis ist auch OK
erst wenn die lokale Datei hochkopiert werden soll, haut es nicht hin.
(auch wenn "$source_file = 'c:/upload/bild.jpg';" manuell eingegeben wird)

Warning: ftp_put(): Unable to access in /srv/www/htdocs/web8/html/hofmeister/uploadftp.php on line 51

Mein aktuelles Script (incl. einiger Testparameter):

PHP:
<html>
<head>
</head>
<body>
<?php

//Variablen befüllen
$ftp_server = 'www.adresse.de';
$ftp_user_name = '[ftpAccount]';
$ftp_user_pass = '[Passwort]';

$source_file = $_POST['datei'];
//echo $source_file;
$destination_file = 'buidl.jpg';

// Herstellen der Basis-Verbindung
$conn_id = ftp_connect("$ftp_server"); 

// Einloggen mit Benutzername und Kennwort
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass"); 

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) { 
        echo "<p>Ftp-Verbindung nicht hergestellt!</p>";
        echo "<p>Verbindung mit <b> $ftp_server</b> als Benutzer <b>$ftp_user_name</b> nicht möglich</p>"; 
        die; 
    } else {
        echo "<p>Verbunden mit <b> $ftp_server</b> als Benutzer <b>$ftp_user_name</b></p>";
    }


// Verzeichnis wechseln
echo "Aktuelles Verzeichnis: ";
print ftp_pwd($conn_id);
echo "<br>";

$verzeichnis = 'html/hofmeister/bilder';
ftp_chdir($conn_id,$verzeichnis); 
echo "Neues Verzeichnis: ";
print ftp_pwd($conn_id);
echo "<br><br>";

// Erstellung eines neuen Verzeichnisses 
$folder = "TEST"; 
if(@ftp_mkdir($conn_id,$folder)) echo "Neues Verzeichnis <B>$folder</B> erstellt<b>"; 
else echo "Fehler beim Erstellen des Verzeichnisses <B>$folder</B>"; 
echo "<BR>"; 

// Upload der Datei
echo "source_file = $source_file<br><br>";
$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY); 

// Upload-Status überprüfen
if (!$upload) { 
        echo "Ftp upload war fehlerhaft!";
    } else {
        echo "Datei $source_file auf $ftp_server als $destination_file geschrieben";
    }

// Schließen des FTP-Streams
ftp_quit($conn_id); 
?>

</body>
</html>

in welcher Form muß eigendlich das "source-Verzeichnis" eingegeben werden?

Bitte keine Links auf irgendwelche Manuals.
Ich hab vor diesem Posting mindestens eine Stunde im WWW herumgesucht und bin oft von einem Verweis zum anderen gesprungen ohne irgendeine Lösung.

Vielen Dank im Voraus

Gruß Jensner
 
Ich habe exakt das gleiche problem wie jensner.

Ich bekomme auch immer "ftp_put(): Unable to access in"....

woran kann das liegen.....
 
Der Save_mode muß in der Regel vom Hoster Deiner Site deaktiviert werden.

Mit "phpinfo()" kannste Dir die aktuelle Konfig ansehen.
Dort steht dann auch der aktuelle Status des Save_mode

Gruß Jens
 
Zurück