Schrift
[thread]149[/thread]

CGI Variablen mit post übergeben: Ein cgi Skript aufrufen+Variable übergeb

Leser: 2


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
Lena85
 2004-01-17 01:02
#958 #958
User since
2003-12-23
9 Artikel
BenutzerIn
[default_avatar]
Guten Abend,
ich möchte ein cgi-Skript von einen anderen cgi-Script aufrufen und dabei 1 Variable mit der Post-Methode übergeben, damit die Variable im Browser nicht sichbar wird.
Im Detail:
Nach dem login muss ein weiteres Skript aufgerufen werden und im Browser sichtbar werden. Übergeben möchte ich   dabei den Username.
Habe von hidden feldern gelesen, aber wie schicke ich die automatisch ab?
Geht das überhaupt und kann mir jemand beim Sytax helfen?
Perl/Windows/z.Zt.localhost
Lena
jan
 2004-01-17 02:26
#959 #959
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
das geht nicht mit reinen html-mitteln - du kannst aber mit javascript ein formular absenden:
im body-tag deiner html-ausgabe setzt du folgenden onload-handler:

Code: (dl )
<body onload="document.forms[0].submit()">


und dann setzt du ein formular in die seite:
Code: (dl )
1
2
3
4
5
6
<form action="script2.pl" method="post">
<input type="hidden" name="username" value="deinUsername">
<noscript>
<input type="submit" value="klicken Sie hier, um auf die n&auml;chste seite zu gelangen">
</noscript>
</form>


damit wird das formular automatisch abgesendet, wenn das laden abgeschlossen ist - hat jemand kein javascript aktiviert, interpretiert sein browser den <noscript>-bereich und sieht einen submit-button, den er dann klicken soll...
[E|B]
 2004-01-17 11:49
#960 #960
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@jan

Schon, aber der Browser wartet dann auf den Output des Scripts, während Lena glaube ich zwei Scripts gleichzeitig aufrufen möchte.
Oder sehe ich das falsch?
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Lena85
 2004-01-17 13:20
#961 #961
User since
2003-12-23
9 Artikel
BenutzerIn
[default_avatar]
Guten Tag zusammen,
Vielen Dank für die schnellen Andworten.
Also:
Das 1. loginscript mit Passwortprüfung ruft, wenn login erfolgreich, eine 2.script auf, was den Usernamen braucht, der beim ersten Script eingegeben wurde.
Ich habe schon die Variablen mit der get-Methode übergeben, nur sieht man den in der Browseradresse. Das ist so nicht gewünscht. Hilft das weiter?
Lena
Danke nochmal und ein schönes Wochenende
eisbeer
 2004-01-17 13:25
#962 #962
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Übergebe es doch per POST, nicht per GET, dann ist
es für den User unsichtbar ...
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
Tom
 2004-01-17 13:45
#963 #963
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich habe das so gemacht,

Formular
Code: (dl )
1
2
3
4
5
6
<form name="register" method="post" action="http://127.0.0.2/post.cgi">                            
<table cellpadding="0" cellspacing="1">
<input type="text" name="username" >
....
...
..


Und in dein zweites Script setzt du

Code: (dl )
$username		= param('username');


In der Variable $username steht dann der übermittelte Username

Tom\n\n

<!--EDIT|Tom|1074340031-->
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
[E|B]
 2004-01-17 14:03
#964 #964
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Wenn das 2. Script auf dem selben Server liegt kannst du es vom ersten Script aus mit "require" einbinden und dann die Variable weiterbenutzen. (also so wie Tom beschrieben hat)
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Lena85
 2004-01-17 14:51
#965 #965
User since
2003-12-23
9 Artikel
BenutzerIn
[default_avatar]
Man(n), seit Ihr schnell!
Ich arbeite mit HTML::Template. Also habe ich eine login.cgi und eine html-Template. In dem Script ist die login Abfrage. Wenn die Bedingungen nicht erfüllt sind, wird das Formular noch einmal aufgerufen. Wenn das Login korrekt ist, muss jetzt der Aufruf aus dem Script direkt an eine, nennen wir sie index.cgi erfolgen mit Übergabe des vorher eingegeben Usernamen.
Wie baue ich da "require" mit ein?
Lena - ich blaube, das wird ein laaanges Wochenende;)
Tom
 2004-01-17 15:35
#966 #966
User since
2003-09-20
470 Artikel
BenutzerIn
[Homepage] [default_avatar]
Also ich habe da keine require benutzt, weiß nicht was [E|B] da meint, füge es mal so ein wie ich geschrieben hab dann sollte es gehen.

Tom
Computerprobleme??? -> http://www.weber-computerhilfe.de

Fordere keine Anerkennung!
Zeige was und man wird Dich kennen
eisbeer
 2004-01-17 17:00
#967 #967
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ahh ich glaub ich weis was du meinst:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# loginscript

# hier kommt der ganze CGI und Idenifizierungs-
# kram hin...

if ($LoginIstOk) {
# leite den lieben user weiter
$anDieseURLweiterleiten = "http://www.deinserv.er/index.cgi?username=$DerUsername&passwort=$DasPasswort";
print "Location: $anDieseURLweiterleiten\n\n";
exit; # am allerbesten gleich exit...
}
else {
# Login war falsch, entweder nochmal
# zum login-formular leiten oder zuerst
# felher ausgeben
}
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2004-01-17 01:02.