Hi Matthew, I resolved the problem like this :
# HTML::Mason if ($validar){ my $dbcon= DBI->connect("dbi:mysql:dbname=dbcontactos","root",""); my $sql = $dbcon->prepare("select name, pass from Utilizador where name=? and pass=?"); $sql->execute($name,$pass) or die "erro" . $sql->errstr; if($sql->rows == 1){ # muda de página $m->redirect('main.html'); # $token = 1; #send token to main.html but not yet } else{ # continua na mesma página $m->redirect('login.html'); # $token = 0; } } Thank you for your reply! 2009/10/14 Matthew Ramadanovic <matthew.ramadano...@yale.edu> > > > >my $dbcon= DBI->connect("dbi:mysql:dbname=dbcontactos","root",""); > >my $sql = $dbcon->prepare("select name,pass from Utilizador where > name='?' >and pass='?'"); > >$sql->execute($user,$pass); > > if($sql == 1){ > >redirect to other page > > } > > if($sql == 0){ > >stay in the login page > > } > > Not quite sure what you are expecting $sql to be. If your intention is > to compare $pass or other table variables to the value in column before > proceeding why not just pull it into a structure that will allow you to > do so? : > > my $pass; > my $name; > my %record; > my $sql = "select name,pass from Utilizador where name='?' and > pass='?'"; > my $sth = $dbh->prepare($sql); > $sth->execute($name,$pass); > my $rowref; > my $column; > my $val; > while ($rowref = $sth->fetchrow_hashref()) { > #not sure if you will have multiple records so you may need to > exit > #the loop after %record is filled the first time > while (($column, $val) = each %$rowref) { > $record{$column} = $val; > } > } > If ($record{'pass'} eq $pass) { > #redirect to other page > } else { > #stay on logon > } > > > -M > > > -----Original Message----- > From: David Silva [mailto:david...@gmail.com] > Sent: Wednesday, October 14, 2009 6:30 AM > To: dbi-users@perl.org > Subject: Stuck with form validation > > Hi everyone, > > I have a form with username and password, and when the user enter the > right > user and pass he/she go to other page. (that is my thought) > > What i did? > > my $dbcon= DBI->connect("dbi:mysql:dbname=dbcontactos","root",""); > my $sql = $dbcon->prepare("select name,pass from Utilizador where > name='?' and pass='?'"); > $sql->execute($user,$pass); > if($sql == 1){ > redirect to other page > } > if($sql == 0){ > stay in the login page > } > > My problem is that i can't see any other way to do this and even if the > values are correct with the ones in database it stays in the login page. > > How can i do this? > > Thank you > -- > David Silva > -- David Silva - http://davidslv.com/