Mam problem w czasie zalogowania. Gdy zrobię tak że jak zaloguję się na stronę i gdy z tej strony wejdę po prostu na plik odpowiadający za logowanie i z powrotem wrócę do tamtej poprzedniej strony to pojawia się błąd że Obiekt tej klasy nie mógł być przekonwertowany do łańcucha. Dokładnie w linii 6 w pliku tym co jest chroniony. Dokładnie komunikat wygląda tak:
Kod
Catchable fatal error: Object of class __PHP_Incomplete_Class could not be converted to string in C:\Program Files\WebServ\httpd-users\test\news\protect.php on line 6
Cały kod:
Plik odpowiadający za logowanie:
<?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['user']= $_POST['user'];
header ("Location: protect.php"); }
else {
header ("Location: log.html"); }
} // end while
$row-> closeCursor();
} // end function
}
$user= new user;
$user-> checkuser();
?>
Plik ten chroniony czyli protect.php
<?php
if (isset($_SESSION['user'])) { echo 'Yo, ' . $_SESSION['user'] . '<a href="logout.php">Sign out</a>'; }
else {
header ("Location: log.html"); }
?>
<!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" />