Safe Mode, Chmod und so langsam Psychische Probleme :)

Stadler33

Mitglied
Hallo Boardbewohner,

Heute habe ich schon eine Frage zum erstellen von Ordnern gestellt. Es hat sich leider noch überhaupt nichts geändert, bis auf die tatsache, das ich nun die Fakten kenne. Also wenn ich via php einen Ordner erstelle und in diesem eine Datei erstellen möchte(mit php) dann bekomme ich z.B. folgende Fehlermeldungen:

Code:
Verbunden mit johnsen.deutsches-board.de als Benutzer johnsen
Warning: fopen(): SAFE MODE Restriction in effect. The script whose uid is 10035 is not allowed to access /home/httpd/vhosts/johnsen.deutsches-board.de/httpdocs/Verzeichnis/affe owned by uid 30 in /home/httpd/vhosts/johnsen.deutsches-board.de/httpdocs/Verzeichnis/ftp2.php on line 27

Warning: fopen(affe/affe): failed to open stream: No such file or directory in /home/httpd/vhosts/johnsen.deutsches-board.de/httpdocs/Verzeichnis/ftp2.php on line 27


Ich hatte meinen Code geändert und versuche es nun mit einer php FTP Verbindung, er verbindet ja auch(sieht man oben) aber es will immernochnicht funktionieren:

Code:
<?php

$ftp_server='johnsen.deutsches-board.de';
$ftp_user_name='';
$ftp_user_pass='';
$datei='Mueltonne';

// 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 "Ftp-Verbindung nicht hergestellt!";
        echo "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich";
        die;
    } else {
        echo "Verbunden mit $ftp_server als Benutzer $ftp_user_name";
    }



    if(mkdir("$datei", 0700));//Erstellen des Verzeichnisses
    chmod ($datei, 0777);
    $fp = fopen("$datei/$datei","w+");



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

Der Ordner hat volle Schreibrechte(Sehe ich auch im FTP Programm) aber die Datei lässt sich immer noch nicht erstellen. Wie ich gelesen habe sollte es angeblich funktionieren wenn der Safe Modus aus ist, das haben wir auch gemacht - aber nichts, es ging immer noch nicht. Ich habe mir eben von einem Freund das Buch "Mysqul echt einfach" ausgeliehen, wo auch php drinne erklärt ist - sowas wird da nichtmal angesprochen!

Ich binn nun echt mit meinem Latein am Ende und kann nur noch hoffen das jemand von euch mir helfen kann. Danke schonmal im Vorraus. :)
 
So wie ich das sehe baust Du eine FTP-Verbindung auf und erstellst dann das Verzeichnis ganz normal mit mkdir(), also nicht ueber FTP, sondern ganz normal.
Deine FTP-Verbindung ist in diesem Fall eindeutig Unsinn, denn sie wird nur aufgebaut und wieder getrennt. :)
 
Die Datei kannst Du, zumindest nicht mit den FTP-Funktionen die PHP Dir bietet, nicht per FTP erstellen, denn Du benoetigst erstmal lokal eine Datei die Du dann hochlaedst.
Aber das sollte auch nicht noetig sein, wenn Du das Verzeichnis per FTP anlegst solltest Du die Datei auch ganz normal darin ablegen koennen.
Falls nicht koenntest Du die Datei temporaer an einem Ort anlegen wo Du schreiben kannst, sie hochladen und dann wieder loeschen, oder aber sie mit meiner FTP-Klasse quasi aus dem luftleeren Raum direkt per FTP erstellen.
 
Das hört sich gut an, aber wie baue ich jetzt den Befehl ftp_mkdir ein(Nein, ich frag nicht einfach so, habs eben schon probiert). Der Syntrax lautet wie folgt:

Code:
string ftp_mkdir ( int ftp_stream, string Verzeichnis )


Nur was ist ftp_stream? Könnt ihr mir sagen wie ich das nun in den obrigen Code einbauen kann?

PS: Gibt es ein Buch was ihr mir empfehlen könntet?
 
Bei Dir heisst ftp_stream $conn_id.
Einbauen ist einfach, einfach mkdir() durch ftp_mkdir() ersetzen und gut.
Wenn Du noch die Rechte aendern willst kannst Du dies mit ftp_chmod() machen.
 
So, ich habe die Befehle geändert aber der Browser meckert immer noch da steht immer noch das selbe, gibts da noch hoffnung? Binn ich kurz vor Ziel?

Code:
<?php

$ftp_server='johnsen.deutsches-board.de';
$ftp_user_name='';
$ftp_user_pass=';
$datei='affezz';

// 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 "Ftp-Verbindung nicht hergestellt!";
        echo "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich";
        die;
    } else {
        echo "Verbunden mit $ftp_server als Benutzer $ftp_user_name";
    }



    ftp_stream $conn_id("$datei", 0777));
    ftp_chmod ($datei, 0777);
    $fp = fopen("$datei/$datei","w+");



// Schließen des FTP-Streams
ftp_quit($conn_id);
?>
 
Zuletzt bearbeitet:
Erstens, mach bitte ganz schnell die FTP-Benutzerdaten aus deinem Script raus. Zweitens kommt gleich ...
Zweitens
Ich habe mich jetzt nur auf das Ordner erstellen und Benutzerrechte ändern konzentriert, das mit der Datei bekommst du dann bestimmt auch alleine hin :)
PHP:
<?php
$ftp_server		= 'server';
$ftp_user_name	= 'user';
$ftp_user_pass	= 'pass';
$datei			= 'verzeichnis';

// Herstellen der FTP-Verbindung
$ftps = @ftp_connect($ftp_server);

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

// Verbindung überprüfen
if ( !$ftps || !$login_result)
    trigger_error('Konnte Verbindung nicht herstellen, falsche Benutzerdaten?', E_USER_WARNING);
else
    echo "Verbunden mit $ftp_server als Benutzer $ftp_user_name";

// Besteht das Verzeichnis bereits? Wenn ja, Fehler/Notice ausgeben
if(!@ftp_chdir($ftps, $datei))	
	ftp_mkdir($ftps, $datei); // Ordner erstellen
else
	trigger_error('Verzeichnis besteht bereits', E_USER_NOTICE); // Error...

/*
 * Benutzerrechte ändern
 * substr($datei, 0, 1) == '/' ? $datei : '/'.$datei checkt, ob das erste Zeichen von $datei ein Slash ist, wenn nicht, dann füge hinzu,
 * ist auch identisch mit:
 * if(substr($datei, 0, 1) == '/')
 *		ftp_chmod($ftps, 0777, $datei);
 * else
 *		ftp_chmod($ftps, 0777, '/'.$datei);
 */
ftp_chmod ($ftps, 0777, substr($datei, 0, 1) == '/' ? $datei : '/'.$datei);

// Schließen des FTP-Streams
ftp_quit($ftps);
?>
 
Zuletzt bearbeitet:
Ich glaube, das ich mir jetzt nochmal das Sademode FAQ anschauen werde, denn auch mit deinem Code klemmt es.

Code:
Verbunden mit johnsen.deutsches-board.de als Benutzer johnsen
Warning: ftp_mkdir(): Stadler: Permission denied in /home/httpd/vhosts/johnsen.deutsches-board.de/httpdocs/Verzeichnis/ftp2.php on line 20

Das komische ist nur, das ohne FTP ja wenigstens Ordner erstellt werden konnten.
 
Zurück