У меня 2 страницы. Мне нужно "addproduct.php", чтобы проверить, зарегистрирован ли пользователь в качестве администратора. У меня есть сценарий входа. Извиняюсь, если это глупый вопрос, но новый для PHP.
Я хочу, чтобы пользователь, который дошел до этой страницы, который не зарегистрирован в качестве администратора ("isadmin" - это строка в пользовательской базе данных), перенаправляется на страницу входа в систему, а когда кто-то регистрируется в качестве администратора для отображаемой страницы,
login.php;
<?php
session_start();
$un = $_POST["username"];
$pw = $_POST["password"];
$conn = new PDO ("mysql:host=localhost;dbname=assign026;", "assign026",
"ziSietiu");
$results = $conn->query("select * from users where username='$un' and
password='$pw'");
$row = $results->fetch();
if($row == false)
{
echo "Incorrect password!";// There were matching rows
}
else
{
$_SESSION["gatekeeper"] = $un;
$_SESSION["isadmin"] = $row["isadmin"];
header ("Location: index.php");
}
?>
И addproduct.php
<?php
session_start();
?>
<?php
// Test that the authentication session variable exists
if(!isset($_SESSION["isadmin"]) || $row["isadmin"] == 1)
{
header('Location: login.html');
exit();
}
else
{
echo ($_SESSION["isadmin"]);
}
?>
<div>
<h2>Add new product</h2>
<form method="post" action="addproductscript.php">
<p>Insert product here</p>
<input type="text" name="name" placeholder="name">
<input type="text" name="manufacturer" placeholder="manufacturer">
<input type="text" name="description" placeholder="description">
<input type="text" name="price" placeholder="price">
<input type="text" name="stocklevel" placeholder="stocklevel">
<input type="text" name="agelimit" placeholder="agelimit">
<input type="submit" value="Submit">
</form>
</div>
На основе вашего кода if(!isset($_SESSION["isadmin"]) || $row["isadmin"] == 1)
, $row["isadmin"]
не определен, поэтому он не имеет значения,
Что вы можете сделать, это if(!isset($_SESSION["isadmin"]) || $_SESSION["isadmin"] == 1)
|| $_SESSION["isadmin"] == 0
if(!isset($_SESSION["isadmin"]) || $row["isadmin"] == 1)
выдаст ошибку, поскольку$row
не определена. Так что сценарий на этом останавливается.