im в настоящее время изо всех сил пытается заставить мой PHP войти в систему. Iv использовал разделение проблем для структурирования моего php.PHP-вход с mySQL
Iv уже настроен в моей базе данных Таблица пользователей с идентификационными знаками, именем пользователя и паролем.
Я не думаю, что есть проблема с подключением к моей базе данных, поскольку я использовал один и тот же код в других проектах, и он работает там.
Это мой user_repository.php:
<?php
require_once "database.php";
function authenticate_user($username, $password, &$error) {
\t $sql = "select * from Users where username= '${username}'";
\t $sql .=" and password='{password}'";
\t $result = query($sql);
\t if ($result->num_rows!=1) {
\t \t $error = "Username or password was incroeect.";
\t \t return null;
\t }
return $result-> fetch_assoc();
}
function get_user_by_id($id, &$error) {
\t $sql = "select * from Users where id={$id} limit 1;";
\t $result = query($sql);
\t return $result->fetch_assoc();
}
?>
Это мой database.php:
<?php
\t define("SQLHOST", "localhost");
\t define("SQLUSER", "b3006796");
\t define("SQLDB", "b3006796_db3");
\t define("SQLPASSWORD", "*******");
\t function connect_to_database() {
\t \t $mysqli = new mysqli(SQLHOST, SQLUSER, SQLPASSWORD, SQLDB);
\t \t if($mysqli->connect_errno) {
\t \t \t echo "failed to connect to mysql: ".$mysqli->connect_errno;
\t \t \t exit();
\t \t }
\t \t return $mysqli;
\t }
\t function query ($sql) {
\t \t $mysqli = connect_to_database();
\t \t $result = $mysqli->query($sql);
\t \t if (!$result) {
\t \t \t echo "failed to run query: ".$mysqli->error;
\t \t \t exit();
}
return $result;
}
?>
Это мой index.php :
<?php
\t session_start();
\t require_once "user_repository.php";
\t $error = null;
\t if (isset ($_POST["username"]) && isset($_POST["password"])) {
\t \t $username = $_POST ["username"];
\t \t $password = $_POST ["password"];
\t \t // Get the assoc array for the user.
\t \t $user = authenticate_user($username, $password, $error);
\t \t //No error means valid password here.
\t \t if (!$error) {
\t \t \t $_SESSION['currentUser'] = $user['id'];
\t \t \t header("location:account.php");
\t \t \t exit();
\t \t }
\t \t }
?>
<html>
<head>
\t <title> DIWA Login </title>
</head>
<body>
\t <h1>login</h1>
\t <form method="post">
\t \t Username:<input name="username"/>
\t \t Password:<input name="password" type="password"/>
\t \t <input type="submit"/>
\t \t <?php if ($error);?>
\t \t <p><?php echo $error; ?></p>
\t </form?
</body>
</html>
И это мой Account.php:
<?php
\t session_start();
\t require_once "user_repository.php";
\t $error = null;
\t if (!isset($_SESSION["currentUser"])) {
\t header ("Location: login.php");
\t exit();
\t }
\t $user = get_user_by_id($_SESSION["currentUser"], $error);
\t ?>
\t <html>
\t <head>
\t \t <title> DIWA Account </title>
\t </head>
\t <body>
\t \t <h1> Account </h1>
\t \t <p> User ID: <?php echo $user["id"]; ?></p>
\t </body>
\t </html>
Благодаря
так в чем ваш вопрос – dsharew
$ sql. = "И password = '{пароль}'"; - вы пропустили «$» - $ password –