mkdir("$real$dir_create/$dir_new",0777)
Wenn Ich dann mit FTP auf diese Ordner zugreifen will, ist das nicht möglich, d.h. der Zugriff wird verweigert.
Ist das normal?
Ja, durchaus.
Jedes Serverbetriebssystem bietet die Möglichkeit, verschiedene Benutzer anzulegen und Lese-/Schreibrechte für Dateien und Verzeichnisse zu vergeben, so daß niemand auf die Dateien anderer zugreifen kann.
Der PHP-Interpreter läuft in 99,9% aller Fälle als Modul, also als Teil vom Serverprogramm. Das bedeutet, daß er mit denselben Rechten und Besitzer/Gruppe arbeitet, mit denen auch der Server läuft. Und natürlich werden auch Verzeichnisse und Dateien mit diesen Attributen erstellt.
Wenn Du per FTP auf Dein Verzeichnis zugreifst, hat Deine FTP-Sitzung aber Deine Rechte und Deine Nutzerkennung. Das Du damit nicht auf Verzeichnisse, die dem Webserver gehören (oder anderen Benutzern) zugreifen kannst, ist vollkommen richtig und sollte eigentlich auch einleuchtend sein.
Was muss ich anders machen, damit ich nach Erstellung der Verzeichnise mit mkdir auf diese auch mit FTP zugreifen kann?
Je nach Serverkonfiguration mußt Du entweder der Gruppe (wenn Du in der selben Nutzergruppe sitzt) oder sogar allen Benutzern (wenn der Server in einer anderen Gruppe ist) Schreibrechte an den per PHP erstellten Verzeichnissen geben.
In welcher Gruppe Du und der Server sich befinden, sollte Dein FTP-Programm Dir anzeigen.
Der Befehl zum Ändern der Rechte lautet chmod() und findet sich unter den Dateifunktionen, alternativ kannst Du am Anfang Deiner Skript auch mit umask() eine Grundeinstellung vornehmen, die dann für alle weiteren Dateisystemoperationen gilt.
Eine eingehende Erklärung zu chmod() gibt es an tausend Stellen im Netz (Google hilft), hier in SelfHTML ist irgendwo unter "Helferlein" auch eine Hilfsfunktion dazu.
Gruß,
soenk.e