Datei mit CGI zum Bearbeiten öffnen
Andre Steffens
Hi,
kleines CGI-Problem. Ich möchte die Datei bearbeiten, welche das CGI-Skript aufgerufen hat. Über den HTTP_REFERER habe ich die Datei bereits eindeutig identifiziert, nur öffnen kann ich sie leider nicht. Die Datei befindet sich auf dem gleichen Server, nur in einem anderen Verzeichnis.
Ideen ???
Gruß und Danke !!!
Andre
Hallo Andre,
Über den HTTP_REFERER habe ich die Datei bereits eindeutig identifiziert, nur öffnen kann ich sie leider nicht. Die Datei befindet sich auf dem gleichen Server, nur in einem anderen Verzeichnis.
HTTP_REFERER liefert eine URL. Zum Oeffnen von Dateien brauchst Du jedoch den Verzeichnispfad der Datei im Sinne des Betriebssystems. Da es sich bei Dir um den eigenen Server handelt, solltest Du den Pfad aber eigentlich kennen bzw. wissen, wie eine URL (Beispiel: http://www.xy.de/mydir/datei.htm) in eine Pfadadressierung laut Betriebssystem zu uebersetzen ist (Beispiel: /usr/local/web/home/mydir/datei.htm). Letzteres kannst Du dann mit open() oeffnen, einlesen und bearbeiten.
viele Gruesse
Stefan Muenz
Hi,
HTTP_REFERER liefert eine URL. Zum Oeffnen von Dateien brauchst Du jedoch den Verzeichnispfad der Datei im Sinne des Betriebssystems. Da es sich bei Dir um den eigenen Server handelt, solltest Du den Pfad aber eigentlich kennen bzw. wissen, wie eine URL (Beispiel: http://www.xy.de/mydir/datei.htm) in eine Pfadadressierung laut Betriebssystem zu uebersetzen ist (Beispiel: /usr/local/web/home/mydir/datei.htm). Letzteres kannst Du dann mit open() oeffnen, einlesen und bearbeiten.
Ich habe den von HTTP_REFERER übergebenen Wert bereits entsprechend zerlegt. Nun bleibt der Wert /pfad/datei.htm aber auch die kann ich nicht öffnen.
Gruß Andre
hi!
Ich habe den von HTTP_REFERER übergebenen Wert bereits entsprechend zerlegt. Nun
bleibt der Wert /pfad/datei.htm aber auch die kann ich nicht öffnen.
Hast du Zugriff auf die error.log? Was steht an der entsprechenden Stelle? Ansonsten könntest du versuchen, eine eigene Datei anzulegen, in die du die Fehlermeldung schreibst (müsste eigentlich im Skalar $! stehen).
Mir würden nur zwei Möglichkeiten einfallen: 1. du wertest den Pfad irgendwie falsch aus o.ä., 2. du hast kein Zugriffsrecht für die zu lesende Datei.
Vielleicht kannst du mal den entscheidenden Teil des Skripts posten. Evtl. ist da auch ein Fehler drin.
bye, Frank!
Hi,
Ich habe den von HTTP_REFERER übergebenen Wert bereits entsprechend zerlegt. Nun bleibt der Wert /pfad/datei.htm aber auch die kann ich nicht öffnen.
hast Du dran gedacht, Deinen Userpfad mit anzugeben? Am Ende sollte es etwa "/www/domainname/pfad/datei.htm" heißen.
Cheatah
Hi,
Ich habe den von HTTP_REFERER übergebenen Wert bereits entsprechend zerlegt. Nun bleibt der Wert /pfad/datei.htm aber auch die kann ich nicht öffnen.
hast Du dran gedacht, Deinen Userpfad mit anzugeben? Am Ende sollte es etwa "/www/domainname/pfad/datei.htm" heißen.
Ich habe das Skript derzeit auf meinem Lokalen-Server laufen (HTTPD).
Die Datei schimpft sich: http://localhost/terminus/guest.htm wenn ich nun das Teil zerlege bleibt nur noch /terminus/guest.htm übrig sollte also, meines Wissens nach, die richtige Adresse sein. Oder muß ich tatsächlich auf Betriebssystemebene zurück sprich /internet/terminus/datei.htm ???
Gruß Andre
Hi,
ok, ich glaube ich habe das Problem erkannt, aber wie kann ich dem CGI-Skript nun den genauen Server-Pfad beibringen, bzw. übergeben??? Wenn nun z.B. mehrere User (Domains) auf dieses Skript zugreifen sollen:
/www/steffens/...
usw. in diesem Fall würde mir HTTP_REFERER jeweils nur
http://www.terminus.de/guest.htm
liefern, also nicht die genau Bezeichnung (Domainname nicht gleich USER auf dem Server ???)
Gruß Andre
Hi,
kannst Du einen Parameter mit übergeben, der den User bezeichnet?
Cheatah
Hi,
kannst Du einen Parameter mit übergeben, der den User bezeichnet?
nein !!!
Das Skript sollte selbständig den Ort der aufrufenden Datei auf dem Server finden.
Gruß Andre