Pitt: einlesen von daten

hi,

ich habe eine html-seite wo ich den namen von einer person ermittle, danach kann die person auf einen knopf drücken und kommt auf eine nächtste html-seite wo die person die restlichen daten eintragen kann. jetzt kann die person auf ein submit-button klicken und ein cgi-programm wird aus geführt. das cgi-programm liest die daten aus und speichert sie dann auf einer neuen html-seite.

aber das cgi-programm liest die daten nur aus der zweiten html-seite, also wo die restlichen daten abgefragt werden aus.

das cgi-programm sollte aber auch die erste seite mit dem namen auslesen.

wie mache ich das??

mein cgi-script:
-----------------
#!/usr/bin/perl

use strict;
use CGI;
my $CGI = new CGI;
use CGI::Carp qw(fatalsToBrowser);

open(HTML, ">>Neue_Seite.html");
print HTML cgi->param('name');
print HTML cgi->param('daten');
close(HTML);
-----------------

danek im voraus

  1. Hallo,

    ich habe eine html-seite wo ich den namen von einer person ermittle, danach kann die person auf einen knopf drücken und kommt auf eine nächtste html-seite wo die person die restlichen daten eintragen kann. jetzt kann die person auf ein submit-button klicken und ein cgi-programm wird aus geführt. das cgi-programm liest die daten aus und speichert sie dann auf einer neuen html-seite.

    Ist ja auch logisch, oder? Woher soll denn dein CGI Programm die Daten der ersten Seite wissen, wenn es nur die der zweiten gesendet bekommt. Du musst hier entweder

    a) mit Sessions arbeiten und die Daten nach jedem Verschicken in deiner Session speichern

    oder in deinem Fall viel einfacher

    b) die Daten der ersten Seite nach dem Abschicken in der zweiten Seite in <input type="hidden"> Felder eintragen.

    Viele Grüße,

    Stefan

    --
    Lass dir das Tanzen NICHT verbieten
    http://petition-tanzverbot.de.vu
    1. Ach so. Und wie mache ich so ne sessions? Oder kann ich
      mir des hier irgendwo bei Selfhtml durchlesen?

      1. Hallo,

        Ach so. Und wie mache ich so ne sessions? Oder kann ich
        mir des hier irgendwo bei Selfhtml durchlesen?

        Ich denke mal du solltest die oben angesprochene Möglichkeit b) verwenden. Die bekommst du sicher ohne große Probleme selber hin.

        Viele Grüße,

        Stefan

        --
        Lass dir das Tanzen NICHT verbieten
        http://petition-tanzverbot.de.vu
  2. Hi Pitt,

    ich habe eine html-seite wo ich den namen von einer person ermittle, danach kann die person auf einen knopf drücken und kommt auf eine nächtste html-seite

    ... die selbst bereits eine serverseitige (CGI-)Anwendung sein muß.

    wo die person die restlichen daten eintragen kann.
    jetzt kann die person auf ein submit-button klicken und ein cgi-programm wird aus geführt.

    Yep, das ist jetzt die zweite CGI-Anwendung innerhalb Deiner Verarbeitung.

    das cgi-programm liest die daten aus

    Äh, ja. Aber nicht so, wie Du das tust, sondern über die CGI-Schnittstelle.

    und speichert sie dann auf einer neuen html-seite.

    Streiche "auf". Mache Dir bewußt, was CGI ist. (Nein, CGI ist _keine_ Programmiersprache.)

    aber das cgi-programm liest die daten nur aus der zweiten html-seite,

    Schon das darf es nicht tun.

    das cgi-programm sollte aber auch die erste seite mit dem namen auslesen.

    Es existiert keine "erste Seite".

    open(HTML, ">>Neue_Seite.html");

    Und wenn zwei Besucher gleichzeitig Deinen Dialog-Pfad durchlaufen, dann schreiben sie hier gleichzeitig in dieselbe Datei => Chaos in Laos. Nein, so geht das nicht.
    Genau um so etwas zu verhindern, gibt es CGI-Parameter.

    print HTML cgi->param('name');
    print HTML cgi->param('daten');

    Die CGI-Parameter, welche Du korrekterweise eingelesen hast, müssen schon von der ersten CGI-Anwendung selbst wiederum in einen Link, ein Formular, ein was-auch-immer eingetragen werden, mit dem Du von der ersten zur zweiten Seite navigierst.
    Dann kann die zweite CGI-Anwendung diese Werte ebenfalls über die CGI-Schnittstelle wieder einlesen.

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
     => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
    Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.