Hallo
Hallo.
Ja, darf ich. Lade dir doch bitte die datei runter und schau
es dir an.
Ja, Datenbank mit Textdateien.
z.B. Bestellnummer Leerzeichen Einzelpreis
Erstmal zum Procedere, Du brauchst hier nicht so
oft auf Deine Frage aufmerksam machen zu wollen
Wenn z.B. ich in Deinem Thread antworte (und Fragen stelle),
dann bearbeite ich das Problem auch mit 99% iger Sicherheit.
Bei den anderen Programmierern hier wird es ähnlich sein.
Nun ist es so, daß sich eine Lösung nicht in 10 min fin-
den läßt, weil es doch eine gewisse Komplexität umfaßt
(ich hab’s mir angesehen). Wahrscheinlich werde ich
am Wochenende etwas Zeit dafür finden.
Ich würde Dich aber inzwischen bitten, einmal ganz klar
auszuformulieren, was genau Du bezwecken willst, Ich
vermute, Du willst Fenster (-rahmen?) mit bestimmten
Eigenschaften verkaufen.
Du hast zunächst eine „Datenbank“ erwähnt, dies ist
offensichtlich eine zeilenweise organisierte Textdatei
mit dem Namen ‚preise.dat‘.
Schau Dir mal einen Artikel von Dir an. Was gehört dazu,
eine Bestellnummer? Ein Größencode? Eine konkrete Größe
in mm²? Eine „kurze Produktbeschreibung“?
Wo stehen denn diese ganzen Daten drin? In der HTML-Datei?
Das wäre sehr sehr ungünstig.
*Alle* diese Daten gehören in eine Datei, die dann nicht
mehr ‚Preise.dat‘ sondern ‚Produkte.dat‘ heißen solle.
Aus [preise.dat]
…
500500 250.00
500600 260.99
…
würde dann [produkte.dat]
…
500500 ; 128 ; 250.00 ; Fenster 500mm x 500m ohne Führung
500600 ; 130 ; 260.99 ; Fenster 500mm x 5600m ohne Führung
…
Also im Prinzip kommen *alle* Angaben zu einem Posten
auf *eine* Zeile. Sonstige Angaben gibt es nicht.
Dazu gehört dann *ein* Perl-Programm, welches 3 if-Blöcke
hat. Diese 3 Blöcke entsprechen dem „Workflow“ eines Benutzers
bei der Bestellung. Der Start der Bestellung beginnt mit
dem Aufruf des Programms *ohne* Parameter (also im GET-Modus).
z.B.: http://www.grollirgendwas.de/cgi-bin/bestellung.pl
(1) der erste if-Block wäre dann;
...
if( $cgi-\>request\_method() eq 'GET' ) {
# - lese die Datei ein und zeige die Produkte
# als html-Tabelle/Form an (mit select/radio etc.Buttons).
# - benutze dazu ein HTML-Template und lade es
# über das Modul HTML::Template (z.B.: produkte.htm)
# - stell einen submit-Button bereit, der das selbe srcipt
# <u>noch einmal</u> im 'POST'-Modus aufruft =\> (2)
}
(2) Dann kommt der nächste if-Block (wenn das Programm im POST-modus
aufgerufen wird:
...
if( $cgi-\>request\_method() eq 'POST' && $cgi-\>param(pruefen) eq 'ja') {
# - lese die Datei (produkte.dat) nochmals ein ,
# - anhand der empfangenen Parameter eine Tabelle der
# bestellten Waren anzeigen, Gesamtpreis anzeigen (Template)
# - Submit-Button [bestätigen] bereitstellen =\> zu (3)
# - Button [korrigieren] bereitstellen =\> wieder zu (1)
}
...
(3) Der letzte if Block (auch POST-Modus):
...
if( $cgi-\>request\_method() eq 'POST' && $cgi-\>param(bestellen) eq 'ja') {
# - schreibe bestellung in die Datei 'bestellungen.dat' (=\> weiteres Thema)
# - Bestellung nochmal (Information) anzeigen und bedanken (Template)
# - Links zu =\> Deiner Startseite, und =\> [weitere Bestellung]
}
...
Das wäre imho die Minimalvariante, => ein Perl-Programm und
3 kleine html-Schnipsel (Templates). Alles andere würde imho
zu kompliziert oder ergibt Murks.
Wichtig wäre, daß Du die ‚produkte.dat‘ entsprechend aufarbeitest
und mit *allen* für die Bestellung relevanten Daten füllst. Du
könntest dann mal 3 Zeilen davon hier posten, damit wir Dir
weiter helfen können (mit dem Perl-Programm und den html-Schnipseln).
Wenn das fertig ist, kannst Du dann noch eine Authentifizierung
einbauen.
Grüße
CMb