![]() |
[PHP] touch geht nicht
Ich versuche gerade mit touch das Datum einer Datei neu zu setzen. Doch
leider schlägt touch mit der Fehlermeldung Zitat:
Die entsprechende Zeile sieht wie folgt aus:
Code:
Ist der Server eventuell so konfiguriert, dass diese Operation nicht erlaubt
touch("ICQLog_Win32API.shtml", strtotime("2003-09-17 15:12"));
ist? Eine Datei mit touch anlegen geht übrigens. Jetzt habe ich auf ![]() Zitat:
Zitat:
Code:
Aber da nach ist der Besitzer immer "apache". Was natürlich nicht erwünscht
function mytouch($file, $timestamp)
{ clearstatcache(); $file = $_SERVER['DOCUMENT_ROOT']."/Developer/Artikel/".$file; echo "Datei: $file "; $ctime = filectime($file); echo "Datum: ".date("Y-m-d H:i", $ctime)." "; $owner = posix_getpwuid((fileowner($file))); echo "Besitzer: ".$owner["name"]." "; $perm = decoct(fileperms($file)); echo "Attribute: $perm "; $file_content = implode("",file($file)); if($savetofile = fopen('~.tmp', "w")) { fputs($savetofile, $file_content); fclose($savetofile); } if (@chmod('~.tmp', octdec($perm))) { echo "Attribute neu: ".decoct(fileperms('~.tmp'))." "; } else { echo "Dateiattribute konnten nicht gesetzt werden. "; } touch('~.tmp', $ctime); rename('~.tmp', $file); if (@chown($file, intval($owner["uid"]))) { $owner = posix_getpwuid((fileowner($file))); echo "Besitzer: ".$owner["name"]." "; } else { echo "Besitzer konnte nicht geändert werden. "; $owner = posix_getpwuid((fileowner($file))); echo "Besitzer neu: ".$owner["name"]." "; } $new_date = $timestamp; // set the required date timestamp here $err = touch($file,$new_date); if ($err) { echo "Datum neu: ".date("Y-m-d H:i", filemtime($file))." "; } echo "<hr> "; return $err; } ist. Nach dem mir die Datei nicht mehr gehört, sondern "apache" der Besitzer ist, schlägt folgende Zeile
Code:
Mit folgenden Warnungen fehl:
include $_SERVER['DOCUMENT_ROOT'].'/includes/head.shtml';
Zitat:
Script (mytouch) Besitzer der Datei bleiben. Ich bin da etwas ratlos, was da auf dem Server los ist. Es muss doch möglich sein das Dateidatum von Dateien zu ändern deren Besitzer ich bin. :gruebel: |
Re: [PHP] touch geht nicht
Bei mir funktionierten damals derartige Spielereien auch nicht, weil ebenfalls noch einige Sachen gesperrt waren.
Abhilfe hatte eine ganz nette Anfrage an meinen Provider erbracht ;) Eventuell schaltet deiner es dir auch kostenlos frei - manche wollen aber auch Kohle sehn, wenn sie bestimmte Features freischalten sollen -.-'' |
Re: [PHP] touch geht nicht
Wie gefährlich kann denn touch sein? :shock:
|
Re: [PHP] touch geht nicht
Och, du glaubst garnicht was mal alles für harmlose Sachen als gefährlich ansieht.
Aber es kann ja auch sein, daß die nur was anderes gesperrt haben und dieses einfach nur irgendwie damit zusammenhängt, oder es wurde etwas noch nicht freigeschaltet, was standardmäßig aus ist :roll: [add] zu moritz's Beitrag: bleibt nur zu hoffen, daß du diese Rechte auch hast, chown(...) ist ja eh oftmals abgeschalte/eingeschränkt, damit man an den Rechten nichts drehen kann ._. |
Re: [PHP] touch geht nicht
Also, das Problem bei solchen Servern ist, dass der FTP-User meist ein anderer als der PHP-User ist. D.h., Datein, die du mit FTP auf den Server spielst, gehören dir, und Dateien, die du per PHP aufspielst, gehören dem Apache/PHP-User. Da du als Apache-User allerdings die Rechte hast, musst du einfach ein chown(Dein-FTPUSERNAME) in deinen mytouch-Script einbauen, um den Besitzer wieder auf den FTP-User zu wechseln.
Dann sollte das klappen. Gruß |
Re: [PHP] touch geht nicht
Das hab eich in dem Script ja schon probiert, wenn du es dir genau anguckst, nur scheint es nicht zu gehen, wenn der apache der Besitzer ist:
Code:
if (@chown($file, intval($owner["l3s11195"])))
{ $owner = posix_getpwuid((fileowner($file))); echo "Besitzer: ".$owner["name"]." "; } else { echo "Besitzer konnte nicht geändert werden. "; $owner = posix_getpwuid((fileowner($file))); echo "Besitzer neu: ".$owner["name"]." "; } Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz