PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : perlfrage



tom021
31-08-2003, 15:01
hi leute !

ich bin mal wieder mit perl am rumspielen. ich habe nun ein frage.
ich möchte auf meiner homepage den eintritt in meinen privaten bereich mittels passwortabfrage kontrollieren. ist das passwort richtig will ich automatisch eine ganz bestimmte seite aufrufen lassen.
Nun die frage: ist folgendes in perl möglich:

in pseudo code:


if (password == richtig)
then öffne NeueSeite.html;
else
print "falsches passwort";



oder muss ich den html code von NeueSeite.html komplett ins perlscript schreiben ?
ich will auf keinen fall javascript benutzen.

über eine antwort würde ich mich sehr freuen

mfg
tom

sagi
31-08-2003, 16:21
<meta http-equiv="refresh" content="2; url=http://cargal.org" />

im <head> oder du setzt schon im Header eine location: URL.

Bei der 1. Variante kannst du zusaetzlich noch die Zeit (im Beispiel ist das 2 Sekunden) angeben, und die HTML Seite wird in dieser Zeit angezeigt.

mfg

c.

tom021
31-08-2003, 16:29
aha.
vielen dank für die antwort.

mfg
tom

tomes
31-08-2003, 17:17
if (password == richtig)
then öffne NeueSeite.html;
else
print "falsches passwort";




if ($password eq "richtig") {öffne NeueSeite.html;}
else { print "falsches passwort"; }

Ein == ist nur fuer numeric und then gibt es in Perl nicht, sondern geschweifte Klammern --> {}
Beispiel:


#!/usr/bin/perl -w

use strict;
use CGI;
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);
my $password=$cgi->param('password');# Uebergebenes Password
if($password eq "richtig"){
print $cgi->redirect($cgi->url_param('meinEingang.html'));
}else{
print $cgi->redirect($cgi->url_param('falsepassw.html'));
}

Allerding wuerde jeder der die URL zu meinEingang.html kennt, diese auch direkt aufrufen koennen.
Also besser ist eine Session erstellen.

T;o)Mes

tom021
31-08-2003, 17:29
hi tomes !



Allerding wuerde jeder der die URL zu meinEingang.html kennt, diese auch direkt aufrufen koennen.

ja, das hab ich mir auch schon überlegt. du meinst ich sollte eine neue session starten ? was ist eine session bzw wie starte ich eine neue session ?

vielen dank
mfg
tom

peschmae
31-08-2003, 17:56
Wie wärs mit nem vernünftigen Threadtitel?

Danke :)

MfG Peschmä

tomes
31-08-2003, 18:52
Die einfachste Moeglichkeit waere, das Password oder ein anderes Password mit zuuebergeben und dann immer abzufragen.


...
print $cgi->redirect($cgi->url_param('meinEingang.html?password=$password'));
...

neue Seite
...
my $password=$cgi->param('password');
if($password ne "richtig"){ print $cgi->redirect($cgi->url_param('falsepassw.html'));}
else{
...
hier kommt dann die Seite(html)
...
}

Ist, wie gesagt, die leichteste Moeglichkeit.
Die andere waere so eine Art php-Session.
d.h. Es wird in ein File z.B. Username, Password, timestamp geschrieben. Diese File bekommt einen Hash als Name, welche dann auf jeder Seite ausgelesen wird.

Die richtige waehre diese --> http://search.cpan.org/author/SHERZODR/CGI-Session-3.95/Session/File.pm
Vor allem beachte die Links unten auf der Seite ;)

T;o)Mes

tom021
31-08-2003, 19:38
mmmhh. ich denke das deine hilfe ziemlich gut , aber mein verständnis für perl noch ziemlich schlecht ist.

leider kann ich mit dem object CGI (ich nehm mal an, dass es ein objekt ist) nicht viel anfangen. bisher hab ich das tutorial von jürgen wolff (hier (http://www.pronix.de/Perl_cgi/Perl/index.shtml) ) überflogen und ansonsten null perl erfahrung.

ich denke das was du vorgeschlagen hast ist noch zu kompliziert für mich. kann mir eigentlich jemand ne vernünftige site empfehlen, von der man perl lernen kann.
ein buch über perl hab ich schon bestellt und ist unterwegs. ich hoffe dass ich ein bisschen mehr kann, wenn ich das gelesen hab.

mfg
tom

tomes
31-08-2003, 21:11
Ich habe damit irgendwann mal angefangen und nutze sie heute noch, wenn ich schnell mal was suche --> http://www.netzmafia.de/skripten/perl/
Ansonsten, auch wenns *ueberschlau* klingt --> google ;)

T;o)Mes