[GastForen Archiv Perl und CGI Variablen in HTML Dokument ausgeben.

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

Variablen in HTML Dokument ausgeben.

Anonym
Beiträge gesamt: 22827

3. Nov 2004, 10:53
Beitrag # 1 von 12
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe ein Problem und zwar würde ich gerne Variablen die ich in einer .pl Datei deklariert habe z.B. ein Vorname in einem HTML Dokument ausgeben.
Das Problem ist jetzt nur folgendes ich hab keinen plan wie ich das deklarieren muss oder soll, dass es auch in dem HTML Dokument ausgegeben wird.

Mir würde es auch reichen wenn mir einer sagt, wie ich in einer .pl Datei (im print"<html> teil) Radiobuttons Hyperlinks oder sonstige "dynamischen" Aktionen Ausführen lassen kann. Das funktioniert bei mir nicht, kommen immer fehler.

brauche dringend hilfe.
Danke im vorraus
X

Variablen in HTML Dokument ausgeben.

SabineP
Beiträge gesamt: 7586

3. Nov 2004, 11:01
Beitrag # 2 von 12
Beitrag ID: #120837
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Anonym,

my $Vorname; #Deklaration
print $Vorname; #Ausgabe

Welche Dynamischen Aktionen willst Du ausführen?

>> Das funktioniert bei mir nicht, kommen immer fehler.
Ja welche denn?

Gruß Sabine


als Antwort auf: [#120832]
(Dieser Beitrag wurde von SabineP am 3. Nov 2004, 11:02 geändert)

Variablen in HTML Dokument ausgeben.

Anonym
Beiträge gesamt: 22827

3. Nov 2004, 11:16
Beitrag # 3 von 12
Beitrag ID: #120843
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
also eigentlich hab ich folgendes Problem.
Ich hab ne html Seite Members.html bei der man Username und Passwort eingibt. Dann wird in dem Script Members.pl das das ganze verarbeitet, ob der username und Passwort übereinstimmen (pwd.txt)
Sobald es richtig eingegeben wurden komm ich auf ein html Dokument, bei dem dranstehen soll Hallo Mayer.
(Das ganze wird richtig im Browser angezeigt, http://www.meineseite.de/richtig?name=Mayer aber ich bekomm den Mayer nicht auf mein html dokument.)

Darunter sollte dann eine Umfrage stehen.
z.B. Wollen Sie kommen:
Ja
Nein

Zusätzlich wird das ganze Protokolliert, also z.B.
User Mayer loggt sich an. dann steht in der Protokoll datei folgendes:
Mayer

Es sollte zusätzlich noch protokolliert werden was er ausgewählt hat, also letztendlich so:
Mayer
Ja


als Antwort auf: [#120832]

Variablen in HTML Dokument ausgeben.

SabineP
Beiträge gesamt: 7586

3. Nov 2004, 11:23
Beitrag # 4 von 12
Beitrag ID: #120848
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich kenne Dein Script nicht.

Schreib doch mal in die HTML-Ausgabe ob

print $name;

den Benutzername Mayer ausgibt.

Das ist nur ein Blindversuch, mehr geht nicht ohne Quellcode des Scripts.

Gruß Sabine


als Antwort auf: [#120832]

Variablen in HTML Dokument ausgeben.

Anonym
Beiträge gesamt: 22827

3. Nov 2004, 11:35
Beitrag # 5 von 12
Beitrag ID: #120854
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
#anmeldescript
#members.html
<form name="eing" method="post" action="./members.pl">
<align="center"><br>
Username: <input type="text" name="name">
<br>
Passwort: <input type="password" name="password" >
<br>
<input type="submit" value="Abschicken">
</div>
</form>
______________________________________________
#eigentliche Script
#members.pl
#!/usr/bin/perl -w

#standardtext der mir die gelieferten daten in das hash FORM schreibt:
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});


} else {
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}

#Hier werden die variablen definiert!
$right_url = "print.pl?name=$FORM{name}";
$wrong_url ="fehler.pl?name=$FORM{name}";
$PWfile = "PWfile.txt";
$richtig = 0;

#Öffnet mir die datei und schreibt sie mir in das array @members
open(DATEI,"<$PWfile") || die "Fehler beim Öffnen\n";
@members = <DATEI>;
close(DATEI);

#für jede zeile die kontrolle durchführen ob user und pw stimmen:
foreach $member(@members)
{
$semi = index($member,";");
chomp($USER = substr($member,0,$semi));
chomp($PW = substr($member,$semi +1));
if ($USER eq $FORM{name} && $PW eq $FORM{password})

{
$richtig=1;
break;

}
}



# naja und die abfrage auf die richtigkeit:
if($richtig eq 1)
{
print "Location: $right_url \n\n";

open (NAME, '>>Name.txt');
print NAME " $FORM{name} \n";
chop ($Satz);
close (NAME);
}
else
{
print "Location: $wrong_url \n\n";
}
_____________________________________________________

#print.pl (das ist das Problem Dokument)
#! /usr/bin/perl -w

$q = $ENV{'QUERY_STRING'};

($name, $w, $q,) = split(/=/, $q);

$w =~ tr/+/ /;
$w =~ s/%([a-fA-F0-9].)/pack("C", hex($1))/eg;

print "
<html>
<head>
<title>Hallo $w</title>
</head>
<body>
<h1>Herzlich Willkommen $w</h1>
Möchten Sie an unserer Umfrage teilnehmen?
</body>
</html>"
_________________________________________________

in der print.pl Datei müsste jetzt die Umfrage erscheinen,
welche ich leider nicht in das Script bekomme.

Ich habe statt der print.pl auch eine print.html datei versucht, die mir aber leider nicht den Namen schreibt.
das ist mein Problem.
Hoffe es kann mir jemand helfen.


als Antwort auf: [#120832]

Variablen in HTML Dokument ausgeben.

SabineP
Beiträge gesamt: 7586

3. Nov 2004, 12:08
Beitrag # 6 von 12
Beitrag ID: #120874
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Die geänderte print.pl

#! /usr/bin/perl -w
my $name;
$q = $ENV{'QUERY_STRING'};

($name, $w, $q,) = split(/=/, $q);

$w =~ tr/+/ /;
$w =~ s/%([a-fA-F0-9].)/pack("C", hex($1))/eg;

print "Content-Type: text/html\n\n";

print "
<html>
<head>
<title>Hallo $w</title>
</head>
<body>
<h1>Herzlich Willkommen $w</h1>
Möchten Sie an unserer Umfrage teilnehmen?
</body>
</html>";


>> in der print.pl Datei müsste jetzt die Umfrage erscheinen

Das Formular für die Umfrage kannst Du in die HTML-Ausgabe zwischen print " und "; einsetzen.

Gruß Sabine


als Antwort auf: [#120832]

Variablen in HTML Dokument ausgeben.

Anonym
Beiträge gesamt: 22827

3. Nov 2004, 12:25
Beitrag # 7 von 12
Beitrag ID: #120882
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich habs versucht, es gibt zwar ganz normal jetzt immer noch den Namen in der print.pl aus, aber ich kann immer noch keine Umfrage laufen lassen, da kommen dann ne liste an CGI Fehlern.
Kein plan warum und wieso, aber ich bekomm da zwischen dem teil
print "
<html>
.
.
.
</html>";
einfach nichts anderes rein als statische sachen.
Ich will da drinnen umfragen, Hyperlinks usw zum funktionieren bekommen.
Danke für deine Hilfe


als Antwort auf: [#120832]

Variablen in HTML Dokument ausgeben.

SabineP
Beiträge gesamt: 7586

3. Nov 2004, 12:43
Beitrag # 8 von 12
Beitrag ID: #120895
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
>> jetzt immer noch den Namen in der print.pl aus

Du wolltest den Namen doch anzeigen und das klappt doch jetzt auch so wie gewünscht?

Code für einen Link und Umfrage-Formular in der HTML-Ausgabe:

print qq|
<html>
<head>
<title>Hallo $w</title>
</head>
<body>
<h1>Herzlich Willkommen $w</h1>

Möchten Sie an unserer Umfrage teilnehmen?

<FORM METHOD="POST" ACTION="umfrage.pl">
ja<INPUT TYPE="radio" NAME="umfrage" value="ja">
nein<INPUT TYPE="radio" NAME="umfrage" value="nein">
<input type="submit">
</FORM>

<a href="http://example.com">Link</a>

</body>
</html>
|;


Gruß Sabine


als Antwort auf: [#120832]

Variablen in HTML Dokument ausgeben.

Anonym
Beiträge gesamt: 22827

3. Nov 2004, 13:32
Beitrag # 9 von 12
Beitrag ID: #120920
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke *erleichterung*

jetzt klappts, bin voll erleichtert.
Hab leider noch n problem, wie deklarier ich jetzt die beiden Umfragen (ja, nein) dass es auch in der Protokoll datei gespeichert wird???



als Antwort auf: [#120832]

Variablen in HTML Dokument ausgeben.

SabineP
Beiträge gesamt: 7586

3. Nov 2004, 14:00
Beitrag # 10 von 12
Beitrag ID: #120926
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das kommt darauf an, was Du protokollieren möchtest.
Herr Mayer kann sich ja beliebig oft einloggen.
Jetzt hat er 3 Möglichkeiten:
1. Die Umfrage nicht ausfüllen.
2. Die Umfrage mit ja absenden
3. Die Umfrage mit nein absenden

Du kannst zum Beispiel ein Script schreiben, das die Protokolldatei öffnet und
Datum/Uhrzeit, Scriptname (z.B. umfrage.pl), Benutzername und den übergebenen Formularwert (ja/nein)
in der Protokolldatei speichert.

Gruß Sabine


als Antwort auf: [#120832]

Variablen in HTML Dokument ausgeben.

Anonym
Beiträge gesamt: 22827

3. Nov 2004, 14:10
Beitrag # 11 von 12
Beitrag ID: #120930
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habs selbst rausgefunden.
Nein unter Protokoll hab ich gemeint, dass eine .txt datei geöffnet wird, und dort dann anschließend der Username(der sich eingeloggt hat) und dazu seine Auswahl (ja oder nein) dazu geschrieben wurde.
Bei mir sieht dass jetzt folgender Maßen aus:

Mayer
Ja

Huber
Nein
....

ne frage am Rande, warum hat das vorhin mit dem
print "
<html>....
...</html>"; nicht funktioniert, sonder erst mit

print qq|
<html>....
...</html>;
|
???


als Antwort auf: [#120832]

Variablen in HTML Dokument ausgeben.

SabineP
Beiträge gesamt: 7586

3. Nov 2004, 14:34
Beitrag # 12 von 12
Beitrag ID: #120944
Bewertung:
(4636 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
print "<html>.......</html>"; klappt wenn innerhalb des HTML-Codes kein Anführungszeichen " vorkommt.
print qq|<html>.......</html>|; klappt wenn innerhalb des HTML-Codes kein senkrechter Strich | vorkommt.

http://perldoc.com/...Quote-like-Operators

Gruß Sabine


als Antwort auf: [#120832]
X