Ho seguito tutto ciò che spiega il libro, ho anche usato i file pronti che ti dà il libro,
bene il mio problema è che quando entro nella pagina dove inserisco email e password x loggarmi
Ottengo sempre l'errore "L'indirizzo di posta elettronica specificato o la password sono errati."
nonostante sia tutto corretto
questo è il codice della pagina per l'access al sito
login.jpgcodice:<?php function userIsLoggedIn() { if (isset($_POST['action']) and $_POST['action'] == 'login') { if (!isset($_POST['email']) or $_POST['email'] == '' or !isset($_POST['password']) or $_POST['password'] == '') { $GLOBALS['loginError'] = 'Please fill in both fields'; return FALSE; } $password = md5($_POST['password'] . 'ijdb'); if (databaseContainsAuthor($_POST['email'], $password)) { session_start(); $_SESSION['loggedIn'] = TRUE; $_SESSION['email'] = $_POST['email']; $_SESSION['password'] = $password; return TRUE; } else { session_start(); unset($_SESSION['loggedIn']); unset($_SESSION['email']); unset($_SESSION['password']); $GLOBALS['loginError'] = 'The specified email address or password was incorrect.'; return FALSE; } } if (isset($_POST['action']) and $_POST['action'] == 'logout') { session_start(); unset($_SESSION['loggedIn']); unset($_SESSION['email']); unset($_SESSION['password']); header('Location: ' . $_POST['goto']); exit(); } session_start(); if (isset($_SESSION['loggedIn'])) { return databaseContainsAuthor($_SESSION['email'], $_SESSION['password']); } } function databaseContainsAuthor($email, $password) { include 'db.inc.php'; try { $sql = 'SELECT COUNT(*) FROM author WHERE email = :email AND password = :password'; $s = $pdo->prepare($sql); $s->bindValue(':email', $email); $s->bindValue(':password', $password); $s->execute(); } catch (PDOException $e) { $error = 'Error searching for author.'; include 'error.html.php'; exit(); } $row = $s->fetch(); if ($row[0] > 0) { return TRUE; } else { return FALSE; } } function userHasRole($role) { include 'db.inc.php'; try { $sql = "SELECT COUNT(*) FROM author INNER JOIN authorrole ON author.id = authorid INNER JOIN role ON roleid = role.id WHERE email = :email AND role.id = :roleId"; $s = $pdo->prepare($sql); $s->bindValue(':email', $_SESSION['email']); $s->bindValue(':roleId', $role); $s->execute(); } catch (PDOException $e) { $error = 'Error searching for author roles.'; include 'error.html.php'; exit(); } $row = $s->fetch(); if ($row[0] > 0) { return TRUE; } else { return FALSE; } }

Rispondi quotando


perchè il codice è preso come sta dallo zip esempio che fornisce il libro, 