Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Php - FTP zugang um txt datei zu ändern [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Php - FTP zugang um txt datei zu ändern


 
nightcore
19-08-2011, 16:36 
 
Hi,
Ich möchte ein kleines Script zusammenstellen das später über meine Website per Administrator Interface läuft. Das Skript soll über einen ftp Account auf meinem Linux Server in einem Ordner (außerhalbes des web Verzeichnisses) unter /home/server/ eine txt Datei namens ghs.txt zugreifen. Die Text Datei soll später über dieses Skript mit einem Editor verbunden sein mit dem man ganz einfach den Inhalt editieren kann. Gibt es da schon etwas fertiges? Oder könnte mir da jemand etwas zusammenbasteln? Habe noch nicht sehr viel Erfahrung.
MFG nightcore

 
Kropff
19-08-2011, 20:10 
 
Normalerweise brauchst du dafür keinen FTP-Account per PHP. Wenn der Server entsprechend konfiguriert ist, so kann ein PHP-Script auch außerhalb des Webverzeichnisses auf Dateien zugreifen.

Aber! Soll dieser Editor auch Formatierungen vornehmen können? An welchen Editor denkst du? Und wäre eine Datenbank hier nicht besser?

Peter

 
nightcore
19-08-2011, 23:42 
 
Eine datenbank funktioniert bei diesem problem leider nicht da das bestimmte programm keine datenbank verbindung unterstützt. Ich brauche nur einen text editor. Somit ein kleine form in dieser der inhalt der txt datei angezeigt wird. In dieser sollte man dann auch den inhalt editieren können. Somit nicht wirklich viel. Daran hab ich garnich gedacht das php auch auserhalb zugriff haben kann. Könntest du mir vl. ein kleines script zusammenstellen oder mir ein fertiges zeigen das ich mir dann später anpassen kann?
MFG nightcore

EDIT: Sry das ich mich so dumm angestellt hab. Habe schon mal etwas in der art fertig gebastellt.
<?php
if($_POST['Submit']){
$open = fopen("/home/b1.txt","w+");
$text = $_POST['update'];
fwrite($open, $text);
fclose($open);
echo "File updated.<br />";
echo "File:<br />";
$file = file("/home/b1.txt");
foreach($file as $text) {
echo $text."<br />";
}
}else{
$file = file("b1.txt");
echo "<form action=\"".$PHP_SELF."\" method=\"post\">";
echo "<textarea Name=\"update\" cols=\"50\" rows=\"10\">";
foreach($file as $text) {
echo $text;
}
echo "</textarea>";
echo "<input name=\"Submit\" type=\"submit\" value=\"Update\" />\n
</form>";
}
?>Dabei bekomme ich aber beim abspeichern folgende fehler:
Warning: fopen() [function.fopen (http://admin.mcuniverse.de/function.fopen)]: open_basedir restriction in effect. File(/home/b1.txt) is not within the allowed path(s): (/var/www/vhosts/xxx/subdomains/admin/httpdocs:/tmp) in /var/www/vhosts/xxx/subdomains/admin/httpdocs/index.php on line 3

Warning: fopen(/home/b1.txt) [function.fopen (http://admin.mcuniverse.de/function.fopen)]: failed to open stream: Operation not permitted in /var/www/vhosts/xxx/subdomains/admin/httpdocs/index.php on line 3

Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/vhosts/xxx/subdomains/admin/httpdocs/index.php on line 5

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/vhosts/xxx/subdomains/admin/httpdocs/index.php on line 6
File updated.
File:

Warning: file() [function.file (http://admin.mcuniverse.de/function.file)]: open_basedir restriction in effect. File(/home/b1.txt) is not within the allowed path(s): (/var/www/vhosts/xxx/subdomains/admin/httpdocs:/tmp) in /var/www/vhosts/xxx/subdomains/admin/httpdocs/index.php on line 9

Warning: file(/home/b1.txt) [function.file (http://admin.mcuniverse.de/function.file)]: failed to open stream: Operation not permitted in /var/www/vhosts/xxx/subdomains/admin/httpdocs/index.php on line 9

Warning: Invalid argument supplied for foreach() in /var/www/vhosts/xxx/subdomains/admin/httpdocs/index.php on line 10Also noch kleine probleme bei der freigabe. Wie könnte ich das ganze so einstellen das er rechte zum schreiben bekommt. Die datei ist öffentlich beschreibbar.
MFG Nightcore

 
Scar
21-08-2011, 21:00 
 
Die Fehlermeldung gibt dir bereits die Lösung.

In diesem Fall musst du die "open_basedir" Direktive entsprechend erweitert.
Das kannst du entweder in einer zusätzlichen .htaccess oder direkt in der Apache Konfiguration umsetzen.

Du könntest optional auch direkt in der php.ini diese Zugriffserweiterung vornehmen, dann hätten aber alle PHP-Anwendungen diese Berechtigungen und damit auch evtl. weitere Benutzer auf deinem Server.

siehe: PHP: Description of core php.ini directives - Manual (http://php.net/manual/en/ini.core.php)

Beachte auch, das dein Verzeichnis von anderen Benutzern lesbar/schreibbar sein muss. Also der passende CHMOD gesetzt ist.


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:50 Uhr.