У меня есть очень простой набор операторов elseif для перенаправления пользователей с использованием заголовка после подтверждения правильности пароля / имени пользователя. Как и ожидалось, он отлично работает на локальном хосте и во всех настольных браузерах. (Том переходит на страницу администратора, если пароль Томса правильный / другие правильные пароли переходят на назначенную им страницу)
Однако при запуске на мобильных мобильных устройствах происходит переход к оператору else. (Том переходит на домашнюю страницу (НЕПРАВИЛЬНАЯ СТРАНИЦА), если пароль Томса правильный / другие правильные пароли переходят на домашнюю страницу, НЕ на страницу, которой они назначены)
Я попытался изменить все операторы на if вместо elseif (как объяснено в другом вопросе о переполнении стека)
предостережение: я понимаю, что это небезопасно, и намереваюсь включить подготовленные операторы / хеширование пароля для безопасности Но мне нужно понять это, прежде чем я смогу продолжить.
Я часами пытался выяснить, почему и пробовал многочисленные варианты. Я надеюсь, что это нечто простое, чего я просто не вижу.
Я новичок в использовании PHP, поэтому будьте осторожны, если это кажется действительно очевидным. Я убил много часов, пытаясь выяснить это через этот сайт и другие, и я также пытаюсь узнать как можно больше, сколько смогу.
Заранее спасибо .....
<?php
session_start();
if (isset($_POST['submit'])) {
include_once 'dbh.inc.php';
$name = mysqli_real_escape_string($conn, $_POST['name']);
$pwd = mysqli_real_escape_string($conn, $_POST['pwd']);
//error handlers
//check for empty fields
if (empty($name) || empty($pwd) ){
header("Location: ../index.php?entry=empty");
exit();
} else {
// check if input characters are valid
if (!preg_match("/^[a-zA-Z]*$/", $name) || !preg_match("/^[a-zA-Z]*$/", $pwd)) {
header("Location: ../index.php?entry=invalid-entry");
exit();
} else {
$sql = "SELECT * FROM users WHERE user_name='$name' AND user_pwd='$pwd'";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck < 1) {
header("Location: ../index.php?login=error");
exit();
} else {
if ($row = mysqli_fetch_assoc($result)) {
$_SESSION['u_name'] = $row['user_name'];
$_SESSION['u_pwd'] = $row['user_pwd'];
if ($name == 'tom') {
header("Location: ../admin.php?login=success");
exit;
} elseif ($name == 'dick') {
header("Location: ../page_one.php?login=success");
exit;
} elseif ($name == 'harry') {
header("Location: ../page_two.php?login=success");
exit;
} elseif ($name == 'joe') {
header("Location: ../page_three.php?login=success");
exit;
} elseif ($name == 'bloggs') {
header("Location: ../page_four.php?login=success");
exit;
} else {
header("Location: ../HOME.php?login=success");
exit;
}
}
}
}
}
} else {
header("Location: ../index.php");
exit();
}