Mam problem. Przy logowaniu jest wszystko ok, tylko jak wpiszę do formularza jakiegoś użytkownika który nie istnieje to przenosi mnie do pliku który odpowiada za logowanie i tyle. Wydaje mi się że to jest przez pętlę while, ale co tu dokładnie jest źle?
<?php
class user {
public $user;
private $pass;
public function checkuser() {
$pdo = new pdo ('mysql:host=localhost;dbname=oop','root','mentormiszcz1e');
$row= $pdo-> query ("SELECT name,password FROM `trials` WHERE name= '".$_POST['user']."'");
while ($line= $row-> fetch()) {
$this-> user= $line['name'];
$this-> pass= $line['password'];
if ($this->user== $_POST['user'] && $this-> pass
== md5($_POST['pass'])) { $_SESSION['logged']= $_POST['user'];
header ("Location: protect.php"); }
else {
header ("Location: login.html"); }
if ($line['name'] > 0) {
echo 'This user does not exist'; }
} // end while
$row-> closeCursor();
} // end function
}
$user= new user;
$user-> checkuser();
?>
strona chroniona:
<?php
include ("class.php");
if (isset($_SESSION['logged'])) { echo 'Logged as: ' . $_SESSION['logged'] . '<a href="logout.php">Sign out</a>'; }
else {
header ("Location: login.html"); }
?>
Formularz:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us"> <form action="class.php" method="post"> <input type="text" name="user" /> <input type="password" name="pass" /> <input type="submit" value="Sign in" />