База данных не вставляется, и я не могу понять, почему, пожалуйста, проверьте мой код и отчет - PullRequest
0 голосов
/ 02 декабря 2018

Я целый день выдергивал свои волосы из-за этого и не нашел решения, почему он не вставляется в БД ... Локально работает, но на веб-сервере - нет, может кто-нибудь взглянет наэтот код и посмотреть, если вы видите ошибку или какой-либо совет

Cheers

Функция

public function Register($name, $email, $password)
{
    try {
        $db = DB();
        $query = $db->prepare("INSERT INTO users(name, email, password) VALUES (:name,:email,:password)");
        $query->bindParam("name", $name, PDO::PARAM_STR);
        $query->bindParam("email", $email, PDO::PARAM_STR);
        $enc_password = hash('sha256', $password);
        $query->bindParam("password", $enc_password, PDO::PARAM_STR);
        $query->execute();
        return $db->lastInsertId();
    } catch (PDOException $e) {
        exit($e->getMessage());
    }
}

И это мой сценарий регистрации

 $app = new SiteLib();
$register_error_message = '';
if (!empty($_POST['btnRegister'])) {
    if ($_POST['name'] == "") {
        $register_error_message = 'Name field is required!';
    } else if ($_POST['email'] == "") {
        $register_error_message = 'Email field is required!';
    } else if ($_POST['password'] == "") {
        $register_error_message = 'Password field is required!';
    } else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        $register_error_message = 'Invalid email address!';
    } else if ($app->isEmail($_POST['email'])) {
        $register_error_message = 'Email is already in use!';
    } else {
        $user_id = $app->Register($_POST['name'], $_POST['email'], $_POST['password']);
        $_SESSION['user_id'] = $user_id;
       header("Location:frontpage.php");
       exit();
        }
    }

Заранее спасибо за любую помощь

РЕДАКТИРОВАТЬ:

Это ошибка

Warning: PDOStatement::setAttribute(): SQLSTATE[IM001]: Driver does not support this function: This driver doesn't support setting attributes in /customers/3/c/2/er.co.uk/httpd.www/lib/library.php on line 10 Warning: Cannot modify header information - headers already sent by (output started at /customers/3/c/2/er.co.uk/httpd.www/lib/library.php:10) in /customers/3/c/2/preptracker.co.uk/httpd.www/register.php on line 25

Это строка 10 из Library.php

$query->bindParam("name", $name, PDO::PARAM_STR);

А это строка 25 из Register.php

header("location:frontpage.php");

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...