Я разрабатываю приложение на php и ms sql. В приложении есть эта страница, в которой есть только одно поле ввода usser, которое принимает имя пользователя. Нет, я хочу добавить функцию, которая проверяет, существует ли пользователь в базе данных, а затем перенаправляет его на следующую страницу, иначе выдает ошибку.
<?php
require_once './pages/header.php';
require_once './functions/queries.php';
?>
<div class = "container" >
<form class = "cmxform" id = "Form">
<div id = "FormResult" class = "hide" role = "alert">
<button type = "button" class = "close" data-dismiss = "alert" aria-label = "Close"><span aria-hidden = "true">×</span></button>
<div id = "resultFormContent"></div>
</div>
<div class = "form-group col-md-12">
* Indicates required field
</div>
<div class = "form-row">
<div class = "form-group col-md-4">
<label for = "fName">First Name *</label>
<input type = "text" class = "form-control" id = "User" name = "User" required>
</div>
</div>
<div class = "form-group col-md-12">
<button class = "btn btn-info btn-primary" id = "registerSubmit" type = "submit">Submit</button>
</div>
</form>
</div>
query.php
<?php
require_once("db-connect.php");
class Queries{
public static function getUser($Id){
$conn = DB::databaseConnection();
$sql = "SELECT User FROM Admins WHERE Id = :Id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':Id', $Id);
if ($stmt->execute()) {
return $stmt->fetch(PDO::FETCH_ASSOC);
} else {
return null;
}
}
}
Страница, на которую я хочу направить пользователя, если он существует в базе данных, называется read.php.
В вашей форме требуется действие атрибута для отправки данных на страницу php.
<form action='some-file.php'>...</form>
Вам необходимо создать этот файл и получить параметры из запроса и использовать их в своей функции.
$userName = $_REQUEST['User'];
if (getUser($userName)) {
...
} else {
...
}
Проверьте http://www.php.net/manual/pt_BR/function.header.php для перенаправления.
Да, страница атрибута действия должна быть read.php, но пользователь должен получить к ней доступ, только если он находится в базе данных.
Вы можете просто проверить, были ли возвращены какие-либо строки. Если возвращается одна строка, значит, вы знаете, что пользователь существует. Если вы получили более одного возврата, у вас есть дубликаты в ваших данных или ваш запрос неверен. Если строки не возвращаются, то либо ваш запрос неверен, либо в базе данных нет пользователей.