[PHP/FTP] index.php-Datei trotz safe_mode erstellen

BartTheDevil89

Devilution Media
ID: 87739
L
2 Mai 2006
3.960
103
Hallo,

ich habe das Problem, dass ich in einem Unterordner immer per PHP eine php-Datei erstellen muss. Da jedoch safe_mode auf on steht, habe ich mir bisher folgende Lösung überlegt:

PHP:
@copy("ftp://user:[email protected]/html/standartindex.tpl", "ftp://user:[email protected]/html/unterordner/index.php");
Also ich hab irgendwo ne tpl-Datei mit dem Inhalt liegen und ne Kopie davon kopiert er sich dann als index.php in das Verzeichnis.
Das lief auch alles super nur seit kurzen kommt immer diese Fehlermeldung:

Warning: copy(ftp://[email protected]/html/standartindex.tpl): failed to open stream: FTP server reports 331 Password required for user. in /home/www/web0/html/datei.php on line 116

Habt ihr ne Idee woran es liegen könnte, bzw. ob es vielleicht auch noch ne andere Variante für die Dateierstellung gibt? :roll:

Danke
 
Schonmal versucht Dateien "normal" anzulegen?
Wenn die Kiste ordentlich konfiguriert ist, sollte als
"open_basedir" dein DocumentRoot definiert sein.
 
Klingt so, als wenn das Passwort nicht übertragen wird ;)
331 bedeutet das auch laut RFC, und das steht in der Fehlermeldung.

Quelle: https://www.ietf.org/rfc/rfc0959.txt

Ne direkte Lösung hab ich nicht, aber vllt hilft das ja schon, wenns aus ner Variable kommt oder so ;)

Ja, aber hab die Datei extra nochmal getestet und das läuft mit den Daten richtig. Die werden auch nicht mit ner Variable reingebracht, sondern sind direkt eingetragen.

Schonmal versucht Dateien "normal" anzulegen?
Wenn die Kiste ordentlich konfiguriert ist, sollte als
"open_basedir" dein DocumentRoot definiert sein.

Wie meinst du das? Also übern FTP normal hochladen?
 
Lad mal folgendes Skript auf den Server ...

Code:
<?php
$filename = 'test.txt';
$Content = "Add this to the file\r\n";

if($handle = fopen($filename, 'a')){
   if(is_writable($filename){
      if(fwrite($handle, $content) === FALSE){
         echo "Cannot write to file $filename";
         exit;
      }
      echo "The file $filename was created and written successfully!";
      fclose($handle);
   }
   else{
      echo "The file $filename, could not written to!";
      exit;
   }
}
else{
   echo "The file $filename, could not be created!";
   exit;
}
?>
Was kommt dabei raus?
 
Lad mal folgendes Skript auf den Server ...

Code:
<?php
$filename = 'test.txt';
$Content = "Add this to the file\r\n";

if($handle = fopen($filename, 'a')){
   if(is_writable($filename){
      if(fwrite($handle, $content) === FALSE){
         echo "Cannot write to file $filename";
         exit;
      }
      echo "The file $filename was created and written successfully!";
      fclose($handle);
   }
   else{
      echo "The file $filename, could not written to!";
      exit;
   }
}
else{
   echo "The file $filename, could not be created!";
   exit;
}
?>
Was kommt dabei raus?

Also er bringt mir erstmal, dass er successfully created und written hat....allerdings ist die Datei dann trotzdem leer!:roll: Also es kommt nicht "Cannot write to file", aber trotzdem bringt er mir ne leere Datei.
PS: Hier fehlt noch ein ): if(is_writable($filename){ = if(is_writable($filename)){

Kein anderer ne Idee?
 
änder mal eine der $content variablen, so dass die Groß- und Kleinschreibung konsistent ist. Ist meist besser, die gleichen variablen zu nutzen ;)
 
änder mal eine der $content variablen, so dass die Groß- und Kleinschreibung konsistent ist. Ist meist besser, die gleichen variablen zu nutzen ;)

Achso^^...ja ok hab es jetzt gemacht und läuft auch. Allerdings ist in der php-Datei ein include drin. Und der sofort kommt das hier:

Warning: main(): SAFE MODE Restriction in effect. The script whose uid is XX is not allowed to access include.php owned by uid XXX

Also durch das erstellen bekommt die Datei ne andere uid und schon kann er nichtmehr includen.

Deswegen hat ja bisher meine ftp-Version recht gut funktioniert. Nur eben jetzt funktioniert es auf einmal nichtmehr....hat sonst noch jemand ne Idee?:roll: