Я пытаюсь создать систему входа в систему для моего сайта, но получаю неожиданную ошибку - PullRequest
0 голосов
/ 05 апреля 2020

Недавно я начал разработку для своего веб-сайта и решил создать систему входа в систему для реализации дополнительных функций, таких как комментирование, задание вопросов и т. Д. c. Однако, когда я работаю над своим "signup.in c. php "file, я получаю синтаксическую ошибку, сообщающую мне, что в строке 12. есть неожиданный '}'. Я также пробовал php проверки в сети, и они сообщают мне то же самое, с той лишь разницей, что есть неожиданное ')' в строке 12.

Я забыл закрыть некоторые скобки?

Вот код:

<?php
if (isset($_POST['signup-submit'])) { 

   require 'dbh.inc.php';

   $username = $_POST['uid'];
   $email = $_POST['mail'];
   $password = $_POST['pwd'];
   $passwordRepeat = $_POST['pwd-repeat'];

   if (empty($username) || empty($username) || empty($username) || empty($username)) {
     header("Location: ../signup.php?error=emptyfields&uid=".$username."&mail=".$email);
   }

}

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

Если вам нужна дополнительная информация о моем проблема, оставьте комментарий, и я постараюсь ответить как можно скорее.

1 Ответ

0 голосов
/ 05 апреля 2020

пример сценария входа в систему с PHP DBO

<?php

// database class
class DB {

    private $pdo;

    // contructor to connect to database on db object create
    public function __construct($host, $dbname, $username, $password) {
        // database connect pdo object
        $pdo = new PDO('mysql:host='.$host.';dbname='.$dbname.';charset=utf8', $username, $password);
        // allow errors to haslt script
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $this->pdo = $pdo;
    }

    public function query($query, $params = array()) {
        // prepare query from parameters
        $statement = $this->pdo->prepare($query);
        // execute query
        $statement->execute($params);
        // if 1st word in query is select
        if (explode(' ', $query)[0] == 'SELECT') {
            // fetch query data
            $data = $statement->fetchAll(PDO::FETCH_ASSOC);
            // fetched data
            return $data;
        }
    }

}


// database variable
$db = new DB("host", "database", "username", "password");

// check if login button clicked
if (isset($_POST['login'])) {
        // get form values and set to variables
        $username = $_POST['username'];
        $password = $_POST['password'];
        // check if username is registered
        if ($db-query('SELECT username FROM users WHERE username=:username', array(':username'=>$username))) {
                // verify password submitted
                if (password_verify($password, $db-query('SELECT password FROM users WHERE username=:username', array(':username'=>$username))[0]['password'])) {
                        echo 'Logged in!';
                        // set to true to generate token below
                        $cstrong = True;
                        $token = bin2hex(openssl_random_pseudo_bytes(64, $cstrong));
                        // set user id variable from actual user id
                        $user_id = $db-query('SELECT id FROM users WHERE username=:username', array(':username'=>$username))[0]['id'];
                        // insert token in login token table 
                        $db-query('INSERT INTO login_tokens VALUES (\'\', :token, :user_id)', array(':token'=>sha1($token), ':user_id'=>$user_id));
                        // set main cookie 
                        setcookie("SNID", $token, time() + 60 * 60 * 24 * 7, '/', NULL, NULL, TRUE);
                        // set cookie to reset 1st cookie without asking user to login again
                        setcookie("SNID_", '1', time() + 60 * 60 * 24 * 3, '/', NULL, NULL, TRUE);

                } else {
                        echo 'Incorrect Password!';
                }

        } else {
                echo 'User not registered!';
        }

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