Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

ftp_chmod / ftp_site bei Verzeichnissen geht nicht

Hi 8)

ich hab mir mal gedacht, programmier ich ein bisschen weiter an HomePH Design, das Hauptprogramm ist ja mittlerweile bis auf Schritt 8 fertig - nämlich die Ausgabe irgendwohin.

In einen lokalen Ordner geht schon, allerdings soll auch die Möglichkeit gegeben sein, direkt aus dem Programm heraus die Daten auf einen Webspace hochzuladen.
Nur funktioniert das irgendwie nicht, denn es scheint bei ftp_chmod bzw. ftp_site zu hapern bei der Rechtevergabe für Ordner.

Ich habs mal mit dem Filezilla Webserver bei XAMPP probiert (also htdocs "freigegeben" als FTP-Verzeichnis, auf das man mit ftp://localhost/ zugreift), dort kann man aber offensichtlich nicht CHMOD 777 für Ordner setzen, sondern höchstens 755 (oder ich glaub NUR 755) und auf meinem Webspace werden komischerweise die Rechte für den Oberordner auf 441 gesetzt ?!?

Ich habe ja die Erfahrung gemacht, dass auf meinem Webspace NICHTS läuft, also die ideale Testbasis, denn was DA läuft, das kriegt auch jeder DAU zum laufen ;D. Aber warum bitteschon dann CHMOD 441? (kann auch irgenwas anders gewesen sein, z.B. 401 oderso, aber auf jeden Fall ist es nicht das, was es eigentlich sein sollte).

Hier mal das Script (bzw. der erste Teil davon):

	
if (!
function_exists('ftp_chmod'))
	
{
	
	
function 
ftp_chmod($ftpstream,$chmod,$file)
	
	
{
	
	
	
$old=error_reporting();
	
	
	
error_reporting(0);
	
	
	
$result=ftp_site($ftpstream"CHMOD ".$chmod." ".$file);
	
	
	
	
error_reporting($old);
	
	
	
	
return 
$result;
	
	
}
	
}
	
	

	
Set_Time_Limit(0);

	
$original "HomePH Design";

	
// Herstellen der Basis-Verbindung
	
$conn_id ftp_connect($_POST["ftpserver"]); 

	
// Einloggen mit Benutzername und Kennwort
	
ftp_login($conn_id$_POST["benutzername"], $_POST["passwort"]);
	
ftp_mkdir($conn_id$_POST["extraverzeichnis"]);
	
ftp_chmod($conn_id"0777"$_POST["extraverzeichnis"]);

	
$openfolder = @opendir($original);
	
while(
$readfolder = @readdir($openfolder))
	
{
	
	
if((
$readfolder != "../") and($readfolder != ".") and ($readfolder != "..") and ((filetype($original."/".$readfolder) != "dir")))
	
	
{
	
	
	
ftp_put($conn_id$_POST["extraverzeichnis"]."/".$readfolder$original."/".$readfolderFTP_BINARY);
	
	
}
	
}

	
ftp_close($conn_id);
	
	

	
	

	
ftp_mkdir($conn_id$_REQUEST["extraverzeichnis"]."/admin");
	
	
ftp_chmod($conn_id"0777"$_REQUEST["extraverzeichnis"]."/admin");
	
ftp_mkdir($conn_id$_REQUEST["extraverzeichnis"]."/admin/templates");
	
	
	
	
ftp_chmod($conn_id"0777"$_REQUEST["extraverzeichnis"]."/admin/database");
	
ftp_mkdir($conn_id$_REQUEST["extraverzeichnis"]."/admin/images");
	
	
ftp_chmod($conn_id"0777"$_REQUEST["extraverzeichnis"]."/admin/images");
	
ftp_mkdir($conn_id$_REQUEST["extraverzeichnis"]."/smilies");
	
	
ftp_chmod($conn_id"0777"$_REQUEST["extraverzeichnis"]."/smilies");

	
$openfolder opendir($original);
	
while(
$readfolder readdir($openfolder))
	
{
	
	
if(
$readfolder == "." || $readfolder == ".."){continue;}
	
	
if((
$readfolder != "../") and($readfolder != ".") and ($readfolder != ".."))
	
	
{
	
	
	
ftp_put($conn_id$_REQUEST["extraverzeichnis"]."/smilies/".$readfolder$original."/".$readfolderFTP_BINARY);
	
	
}
	
}

Antworten zu ftp_chmod / ftp_site bei Verzeichnissen geht nicht:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi |

2 Anmerkungen:

1) Falls du lokal unter Windows entwickelst, dann bedenke, dass Windows kein chmod kennt.

2) ftp_chmod ist eine PHP5-Funktion. Falls dein Webspace also noch auf Version 4 läuft, wird's nichts.

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Ich weiß, dass ftp_chmod eine PHP5 Funktion ist, ganz oben ist ja auch eine Überprüfung, ob diese Funktion (z.B. unter PHP4 oder 3) bereits existiert und wenn nicht, dann wird mit ftp_site gearbeitet.

Und ich arbeite unter Windows, aber ich habs ja auch versucht, auf meinem Webspace zu machen, aber da kommt ja dieser Fehler, weil das Script den Ordner auf CHMOD 441 setzt.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hast du schonmal versucht, das Skript ohne chmod durchlaufen zu lassen? Nur um mal zu testen, wie die Rechte für das neue Verzeichnis ohne den Befehl aussehen. Denn ein Server weist neuen Verzeichnissen beim Erstellen definierte Rechte zu. Vielleicht macht dein chmod-Befehl ja überhaupt nichts.

Und um das herauszufinden, solltest du vor allem mal dein Error Reporting vernünftig einstellen. Ich hab noch nie gesehen, dass man in einem Skript, welches gerade entwickelt wird, das Error Reporting ausschaltet! Im Gegenteil: am besten alles anzeigen lassen, auch die Notices ;)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Ok, ich hab ja schon einige "Testerfahrung", und wie gesagt, das war ja auch mehr als notwendig bei den Kuriositäten meines Webspaces, keine Ahnung was da läuft, aber auf jeden Fall mit Sicherheit nicht dasselbe PHP wie bei Appache mit XAMPP ;)

Ich hab mal den Hauptordner, der vom Script ja selber erstellt wird, selber auf meinem Webspace erstellt (mit FileZilla) und CHMOD auf 777 gesetzt.
Dann allerdings hat das Script gar nichts mehr gemacht, hat zehn Minuten irgendwas geladen, keine Fehlermeldung, nichts.

Ich glaube, bald stelle die Option einfach in den Hintergrund (auskommentieren und erst wieder entkommentieren, bis sie läuft) und sag, die Leute sollens selbst hochladen.

Aber das mach ich nur äußert ungern..

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
keine Ahnung was da läuft, aber auf jeden Fall mit Sicherheit nicht dasselbe PHP wie bei Appache mit XAMPP ;)


<?php phpinfo(); ?>

Bei welchem Anbieter lässt du hosten?

« wochenplaner mysql/phpVideo auf Server laden »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Ordner
Ordner bilden die kleinste Einheit eines Speicherbehätnisses in einem Dateisystem. Dateien kann man sich besseren Übersicht in Ordner speichern. Diese koennen v...

Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...