Я пытаюсь изучить PHP и настроить веб-сайт, основанный на доступе пользователей. Наконец, я нашел шаблон, который в основном прост в использовании и реализации. Однако после нескольких часов попыток изменить шаблон я должен просить помощи.Помощь для начинающих: PHP MySQL (PDO) Функция
Следующий код отлично работает, и я изменил исходный шаблон, чтобы иметь возможность входа в систему, используя адрес электронной почты как имя пользователя и сохраненный пароль из базы данных. Исходный шаблон был основан на имени пользователя, а не на адресе электронной почты. То, что я пытаюсь достичь, состоит в том, чтобы каким-то образом также включить поле «имя пользователя» из той же базы данных и таблицы и сохранить его как параметр $ username для использования в другом месте на сайте, например, с помощью «echo». Я бы хотел использовать поле, но для имени зарегистрированного участника, а не для имени пользователя для входа.
Я уверен, что есть простой способ, но что бы я ни изменил, я продолжаю получать сообщения об ошибках, и я просто пока что не понимаю синтаксиса.
<?php
include('password.php');
class User extends Password{
private $_db;
function __construct($db){
parent::__construct();
$this->_db = $db;
}
private function get_user_hash($email){
try {
$stmt = $this->_db->prepare('SELECT password FROM members WHERE email = :email AND active="Yes"');
$stmt->execute(array('email' => $email));
$row = $stmt->fetch();
return $row['password'];
} catch(PDOException $e) {
echo '<p class="bg-danger">'.$e->getMessage().'</p>';
}
}
public function login($email,$password){
$hashed = $this->get_user_hash($email);
if($this->password_verify($password,$hashed) == 1){
$_SESSION['loggedin'] = true;
return true;
}
}
public function logout(){
session_destroy();
}
public function is_logged_in(){
if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true){
return true;
}
}
}
?>
Добро пожаловать в Stackoverflow! Я хотел бы попросить несколько вещей. 1. В будущем вы не могли бы поместить такие вещи, как: «Помощь для начинающих» в названии? 2. Можете ли вы уточнить ошибки, которые вы получаете, когда говорите такие вещи, как: * Я продолжаю получать сообщения об ошибках *? Спасибо. – Loko
Приносим извинения за это и будем держать это в виду для будущих сообщений. – Mike