Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]363[/thread]

Dateiproblemchen



<< >> 7 Einträge, 1 Seite
Gast Gast
 2004-08-18 18:59
#3498 #3498
Hallo allerseits


ich habe folgendes Problem. Ich habe ein cgi-script (welches im cgi-bin verzeichnis liegt und funktionierT) das ein anderes script aufruft (und auch nicht mehr)
Es uebergibt einen Parameter und einen Dateinamen an das zweite Script.
Das zweite Script soll bisher nur die uebergebene Datei oeffnen und einfach etwas hineinschreiben. Doch genau da liegt das Problem. Das geht nicht. Ich erhalte lediglich einen nichtssagenden Server Error.
Verwende ich in dem zweiten Script beim oeffnen der Datei jedoch direkt den Namen, klappt alles wunderbar.
An der Uebergabe des Dateinamens kann es IMHO auch nicht liegen, da dieser korrekt beim zweiten Script ankommt.

Auszug aus dem Quellcode:

my($Eingabe) =shift; #das ist mein Dateiname "MeineDatei"

print($Eingabe); #klappt und gibt "MeineDatei" aus
open(EINEDATEI, ">MeineDatei"); #klappt und ich kann danach in EINEDATEI schreiben
open(EINEDATEI, ">$Eingabe"); #klappt nicht, dann kommt der Server Error

Das ganze passiert auch nur, wenn das zweite Script von dem CGI-Script mittels system aufgerufen wird. Fuehre ich es von der Kommandozeile aus aus, gibt es keinen Fehler.
An den Datei/Verzeichnisrechten sollte es IMHO auch nicht liegen, da sowohl Schreibberechtigung im Verzeichnis vorhanden ist, als auch alle Rechte beim zweiten Script gesetzt sind.
Das Problem tritt auch nur auf, wenn ich eine Datei zum schreiben oeffnen will (bzw mit ">"). Oeffne ich Dateien zum lesen gibt es dieses Problem nicht.

Ich hoffe jemand kann mir helfen und danke schon einmal.
ronald
 2004-08-18 19:13
#3499 #3499
User since
2003-08-15
76 Artikel
BenutzerIn
[default_avatar]
Wenn du die Ursache des Fehlers wissen wissen willst, musst du sie abfragen:

open(EINEDATEI, ">$Eingabe") or die "ERROR: Cant open $Eingabe: $!";

Was du auch noch prüfen kannst:
print("-$Eingabe-");
und dann im HTML-Code nachschauen ob dort ein Zeilenvorschub oder ein %0D oder irgendetwas unerwartetes steht.
Der_Piet
 2004-08-19 12:43
#3500 #3500
User since
2004-08-19
2 Artikel
BenutzerIn
[default_avatar]
Das Problem dabei ist, ich kann den Fehler nicht abfragen da an dieser Stelle immer nur der Server Error kommt.
Den Wert von $Eingabe lass ich mir auch schon ausgeben und da ist nichts von irgendwelchen Sonderzeichen zu sehen.
pq
 2004-08-19 13:53
#3501 #3501
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
1. fehler beim schreiben von dateien über CGI haben fast immer als ursache
fehlende schreibberechtigung oder die angabe eines falschen pfades (soll
heißen, du bist in einem anderen pfad als du vermutest)
2. kann keiner was mit einem server fehler anfangen. da gibt es unzählige
ursachen, die auch wir mit unseren glaskugeln meist nicht rausfinden können,
aber dafür gibt es das error_log des webservers bzw. zur not CGI::Carp.
sollte eigentlich auch irgendwo in unserer faq stehen... die hast du ja gelesen, oder?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
ptk
 2004-08-19 13:59
#3502 #3502
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Was steht im error_log?
Der_Piet
 2004-08-19 14:00
#3503 #3503
User since
2004-08-19
2 Artikel
BenutzerIn
[default_avatar]
@1
Wie schon geschrieben, an den Schreibrechten sollte es IMHO nicht liegen da diese alle gesetzt sind (testweise sogar auf 777) und ich die Datei ja anlegen kann wenn ich direkt im Quelltext den Namen angebe. Nur mit der Variable funktioniert es eben nicht.

@2
Ich bin leider nicht der Administrator des Webservers und kann daher leider nicht nach belieben ins Serverlog schauen.
Das auch ihr mit einem "Server Error" nichts anfangen koennt, ist mir klar. Meine Hoffnung war, dass jemand anhand des geschilderten Sachverhaltes eine Idee hat woran es liegen koennte.
pq
 2004-08-19 14:03
#3504 #3504
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Wiki:Server Error 500\n\n

<!--EDIT|pq|1092909914-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 7 Einträge, 1 Seite



View all threads created 2004-08-18 18:59.