Hi everyone!
I started learning perl about one month ago.
After havin fun and even getting some scripts running, the fun stopped 3
days ago. :(
Having found a problem I am not able to figure out myself, I'm not quite
sure any more what to do.
In my script (see below for excerpt) the user enters his/her
name/surname. by using those the password is retrieved from am mysql DB
via DBI, which is done in a subroutine (&fetch).
It works correct, displays the $password2 as it should. But I could not
yet figure out, how to pass the $password2 on to the next subroutine
(&pageone), which is called from inside an if-construct.
(If I do not use the if-construct, all is displayed on the same page at
the same time....)
Calling sub fetch from within the next subroutine again does not work
either :(
If anybody can help me, i would be very grateful since I do not know
howw to solve that problem...
Regards,
John
Here's the code
#!/usr/bin/perl -w
use CGI qw(param);
use DBI;
use strict;
###########################
# Config section
###########################
# action
my $action = param('action');
#data source name
my $dsn = 'DBI:mysql:etpa:localhost:3306';
#user
my $db_user = 'etpup';
#pass
my $db_pass = '1234abcd';
#f_name
my $f_name = param('f_name');
#f_surname
my $f_surname = param('f_surname');
#pass
my $pass = param('password');
#etp
my $f_etp = param('f_etp');
unless ($action){&Online_Database_Search}
elsif (($action eq "pw") and (($f_name eq "") or ($f_surname eq
""))){&Online_Database_Search}
my $password2 = &fetch;
&pw;
if ($action eq "login"){&pageone}
elsif ($action eq "name"){&search_by_name}
elsif ($action eq "print_name"){&print_name}
elsif ($action eq "etp"){&search_by_etp}
elsif ($action eq "print_etp"){&print_etp}
elsif ($action eq "nation"){&search_by_nation}
elsif ($action eq "print_nation"){&print_nation}
elsif ($action eq "keyword"){&search_by_keyword}
elsif ($action eq "print_keyword"){&print_keyword}
#########################################################################
# subs
#########################################################################
sub pw {
my $dbh = DBI->connect( $dsn, $db_user, $db_pass ) || die "Can nat
connect to MySQL DB $DBI::errstr\n";
my $get_pw = $dbh->prepare(
"select name, surname, password from memberscopy
where name = '$f_name' and surname = '$f_surname' "
);
$get_pw->execute();
while ( my ( @data ) = $get_pw->fetchrow_array() ) {
print "Content-type: text/html\n\n";
print qq~
<html>
<head>
<title>Enter password</title>
</head>
<body bgcolor="#000850" text="#FFFFFF" link="FFFF00"
target="main">
$password2
<div align="center">
<font face="Arial, Helvetica, sans-serif" COLOR="#FFFFFF">
<b>Dear $data[0] $data[1],</b><br><br>
<div align="left">Please enter now the password you have
received by email.<p>
If you did not receive an email within 15 minutes after
applying for a password, <p>
please send an <a href="mailto:XXX\@xxx.xx">email to the
Administrator.</a>
</div>
</font>
<br>
<form action="login2.cgi" method="post" target="main">
<input type="hidden" name="action" value="login">
<font face="Arial, Helvetica" size="2">Passwort</font>
<input type="password" name="password" size="15"><br><br>
<input type="Submit" value="Log In">
</form>
</div>
$data[0], $data[1]
</body>
</html>
~;
}
}
#########################################################################
sub fetch {
my $dbh = DBI->connect( $dsn, $db_user, $db_pass) ;
( my $password2 ) = $dbh->selectrow_array( "
select password from memberscopy
where name = '$f_name'
and surname = '$f_surname' "
);
return $password2;
}
#########################################################################
sub pageone {
print "Content-type: text/html\n\n";
print qq~
<html>
<head>
<title> Welcome</title>
</head>
<body bgcolor="#000850" text="#FFFFFF" link="FFFF00">
// $password2
<div align="center">
<font face="Verdana, Arial" size="2" color="#FFFFFF">
<b>ETPA member Area - Welcome ( / $password2)</b></font><br><br>
In this area...[blablablablabla]<br>
<image src="../pics/etp-logo_cr-mini.gif" align="center">
PASSWORT "$password2"
<hr>
</body>
</html>
~;
}
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]