Итак, я создал страницу user_login.php (состоящую из html, формы входа), форма:
<form method="post" action="scripts/login.php">
<p>Username: <input type="text" name="Username" /></p>
<p>Password: <input type="password" name="Password" /></p>
<p><input type="submit" value="Sign In" /></p>
</form>
Кроме того, у меня есть скрипт login.php (см. ниже)
<?php
include "scripts/connection.php";
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form
$myusername = mysqli_real_escape_string($link,$_POST['Username']);
$mypassword = mysqli_real_escape_string($link,$_POST['Password']);
$sql = "SELECT * FROM Customer WHERE Customer_Username = '$myusername' and Customer_Password = '$mypassword'";
$result = mysqli_query($link,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$active = $row['active'];
$count = mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count == 1) {
$_SESSION['Username'] = $myusername;
header("location: Welcome.php");
}else {
$error = "Your Username or Password is invalid";
}
}
?>
Теперь я знаю, что мой connection.php работает, так как я использую его в другом месте на своем сайте.
Моя проблема в том, что когда я просматриваю страницу user_login.php в своем браузере, когда я нажимаю кнопку «Войти», я перехожу к файлу www.website.com/login.php, но вся страница пуста (белая ). Это происходит независимо от того, ввожу ли я что-то в поля имени пользователя и пароля или оставляю их пустыми.
Очевидно, что мне нужно, если поля пусты или не соответствуют записям в БД, отображается сообщение об ошибке. Если логины совпадают, они перенаправляются в файл Welcome.php.
Не 100%, если в сценарии login.php чего-то не хватает, поэтому любая помощь будет очень признательна.
ОБНОВЛЕНИЕ
После добавления:
session_start();
error_reporting(E_ALL);
ini_set('display_errors', 1);
include "scripts/connection.php";
в верхней части моего кода я теперь получаю длинное сообщение об ошибке вместо чистого белого экрана:
Предупреждение: include(scripts/connection.php): не удалось открыть поток: нет такого файла или каталога в scripts/login.php в строке 5
Предупреждение: include(): не удалось открыть 'scripts/connection.php' для включения (include_path='.:/usr/share/php:/usr/share/pear') в scripts/login.php в строке 5
Примечание: Неопределенная переменная: ссылка в scripts/login.php в строке 10.
Предупреждение: mysqli_real_escape_string() ожидает, что параметр 1 будет mysqli, значение null указано в /scripts/login.php в строке 10.
Примечание: Неопределенная переменная: ссылка в /scripts/login.php в строке 11
Предупреждение: mysqli_real_escape_string() ожидает, что параметр 1 будет mysqli, ноль указан в /scripts/login.php в строке 11.
Примечание: Неопределенная переменная: ссылка в /scripts/login.php в строке 14.
Предупреждение: mysqli_query() ожидает, что параметр 1 будет mysqli, ноль указан в /scripts/login.php в строке 14.
Предупреждение: mysqli_fetch_array() ожидает, что параметр 1 будет mysqli_result, значение null указано в /scripts/login.php в строке 15.
Предупреждение: mysqli_num_rows() ожидает, что параметр 1 будет mysqli_result, ноль указан в /scripts/login.php в строке 18.
password_hash()
пакет совместимости. Убедитесь, что вы не экранируете пароли или используете любые другие механизм очистки на них перед перемешиванием. При этом изменяется пароль и возникает ненужное дополнительное кодирование. - person Jay Blanchard   schedule 18.01.2017<?php
тегаerror_reporting(E_ALL); ini_set('display_errors', 1);
. - person Jay Blanchard   schedule 18.01.2017$_SERVER["REQUEST_METHOD"]
? Вы повторили это? - person Jay Blanchard   schedule 18.01.2017$_SERVER["REQUEST_METHOD"]
? Добавьтеecho $_SERVER["REQUEST_METHOD"];
перед операторомif
. Держу пари, что вы никогда не войдете в состояниеif
. - person Jay Blanchard   schedule 18.01.2017include "connection.php";
- person Jay Blanchard   schedule 18.01.2017