Wenn Datei leer ist, etc.
Chris Weber
- cgi
Hallo mal wieder,
ich bin gerade dabei ein ganz simples Warenkorbsystem mit Perl zu programmieren. Das ganze funktionniert in etwa so (is' aber noch extrem simpel):
1. Auf der Hauptseite ist ein Texteingabefeld. Wenn man
da z.B. Auto eingibt und das ganze abschickt wird vom
CGI-Programm eine Textdatei geöffnet, Auto hineinge-
schrieben, die Datei geschlossen, und "Danke" auf dem
Bildschirm ausgegeben. Unter dem "Danke" ist dann
ein Link zum Warenkorb, also quasi zu einem weiteren
CGI-Script, das den Inhalt der Texdatei ausgibt.
Jetzt zu meinen Fragen:
1. Wie kann ich letzteres Script checken lassen, ob nix
in der Datei steht und dann einen Text wie: "Nix
da!" ausgibt?
2. Ich habe es geschafft, daß die gekauften Gegenstände
untereinander in die Textdatei geschrieben werden,
aber ich kann sie nicht untereinander wieder in einer
HTML-Datei ausgeben. Wie schaffe ich das?
3. Das mit dem Texteingabefeld, war nur zu experimentier
zwecken gedacht, wie kann ich z.B. ein Image einbauen
welches, wenn man es anklickt wird einen
entsprechenden Text in die Datei schreibt. Geht das
auch mit Checkboxen neben den Bildern? Wenn ja wie?
Ich wäre wirklich über jede Hilfe dankbar.
Chris
- Ich habe es geschafft, daß die gekauften Gegenstände
untereinander in die Textdatei geschrieben werden,
aber ich kann sie nicht untereinander wieder in einer
HTML-Datei ausgeben. Wie schaffe ich das?
print FILE "$variable\n";
print FILE "<br>\n";
print FILE "$variable2\n";
print FILE "<br>\n";
oder alle möglichen varianten davon :-)
- Das mit dem Texteingabefeld, war nur zu >experimentier
zwecken gedacht, wie kann ich z.B. ein Image >einbauen
welches, wenn man es anklickt wird einen
entsprechenden Text in die Datei schreibt. Geht das
auch mit Checkboxen neben den Bildern? Wenn ja wie?
mmhh <a href="/cgi-bin/skript.pl?AUTO"><img src="auto.gif"></a>
könnt mir vorstellen so, das skript muß dann halt den ausruf auswerten damit du weißt was derjenige geklickt ("gekauft") hat.
zu den andern Fragen kann dir sicher jemand anders helfen, soweit bin ich mit meinen Perl erfahrungen noch nciht :-)
Ciao
Ludwig
Hallo Ludwig,
print FILE "$variable\n";
print FILE "
\n";
print FILE "$variable2\n";
print FILE "
\n";
erst schon mal danke, aber was meinst Du mit $variable und $variable2 (vor allem die 2 hat mich verwirrt)?
Chris
Hallo Ludwig,
print FILE "$variable\n";
print FILE "
\n";
print FILE "$variable2\n";
print FILE "
\n";erst schon mal danke, aber was meinst Du mit $variable und $variable2 (vor allem die 2 hat mich verwirrt)?
Chris
zb. variable1 = die produkte
variable2 = "sie möchten insgesagmt $count Produkte kaufen";
ohne <br> wirst jedenfalls in keinem HTML document einen umbruch bekommen. und um das geht es dir doch oder?
Ciao
Hi,
- Wie kann ich letzteres Script checken lassen, ob nix
in der Datei steht und dann einen Text wie: "Nix
da!" ausgibt?
perldoc -f -X sagt:
-e File exists.
-z File has zero size.
-s File has nonzero size (returns size).
Das heißt:
if (-e "/pfad/zur/datei.txt") { print "Datei existiert"; }
if (-z "/pfad/zur/datei.txt") { print "Datei ist leer"; } # schon ein "\n" verhindert dies!
else { print "Datei ist " . (-s "/pfad/zur/datei") . " Bytes groß"; }
- Ich habe es geschafft, daß die gekauften Gegenstände
untereinander in die Textdatei geschrieben werden,
aber ich kann sie nicht untereinander wieder in einer
HTML-Datei ausgeben. Wie schaffe ich das?
Du hast die gekauften Gegenstände z.B. in einem @array. Dann gibst Du aus:
foreach $foo (@array) { print "$foo<BR>\n"; }
- Das mit dem Texteingabefeld, war nur zu experimentier
zwecken gedacht, wie kann ich z.B. ein Image einbauen
welches, wenn man es anklickt wird einen
entsprechenden Text in die Datei schreibt.
Wie Ludwig schon sagt, geht das wohl am besten, indem Du jedes Image mit einem Link auf ein Script versiehst. Das Script schreibt dann (je nach übergebenen Parameter) eine Zeile in eine Datei.
»» Geht das auch mit Checkboxen neben den Bildern? Wenn ja wie?
Ja, wenn Du die Grafiken innerhalb eines Formulars haben willst, ist das kein Problem. Du schreibst z.B.:
<input type="checkbox" name="box001"><img ...>
Ist die Checkbox markiert, wird im Script der Parameter "box001=on" auszulesen sein.
Cheatah
Hallo Cheatah,
Du hast die gekauften Gegenstände z.B. in einem @array. Dann gibst Du aus:
foreach $foo (@array) { print "$foo<BR>\n"; }
Und wie schaffe ich die "gekauften" Gegestände in ein Array abzulegen?
Chris
Hi Chris,
Du hast die gekauften Gegenstände z.B. in einem @array. Dann gibst Du aus:
foreach $foo (@array) { print "$foo<BR>\n"; }Und wie schaffe ich die "gekauften" Gegestände in ein Array abzulegen?
Gegenfrage: Wie hast Du's geschafft, sie in eine Datei zu schreiben? Mit dieser Basis sollte es eigentlich kein Problem sein. Ansonsten kannst Du einfach die Datei einlesen:
open(READ,"/pfad/zur/datei.txt");
@array = <READ>;
close(READ);
Cheatah