WSOD после миграции с Linux на Windows

Первоначально мой веб-сайт был настроен локально на моем ноутбуке с ОС Linux, а недавно я перенес свою работу оттуда на мой основной ПК — Windows. Моя причина перенести мою работу в том, что я обнаружил, что тип Linux, который я использую, невероятно глючит, когда соединение постоянно отключается, даже если интернет работает нормально, или обновление веб-сайта займет невероятно много времени.

Теперь я использую XAMPP вместо того, чтобы вручную устанавливать локальный хост с PHP, Apache и MySQL. Средой разработки, которую я также использую сейчас, является PhpStorm, которая напрямую связана с моим phpmyadmin.

Теперь моя проблема в том, что теперь я получаю WSOD — Белый Экран Смерти, когда я, скажем, пытаюсь зарегистрировать кого-то через мой веб-сайт, этот пустой белый экран не отображает никаких ошибок, и я искал каждую возможную помощь, которую мог найти, чтобы исправить это. Пока что безуспешно, поэтому сейчас я застрял в неопределенности относительно того, является ли мой код проблемой или чем-то еще, я просто не могу сказать.

Это то же самое, когда я пробую свою функцию входа в систему.

Это работало нормально на моем ноутбуке, несмотря на мелкие ошибки здесь и там.

У меня включен отчет об ошибках, и я попытался включить его в php.ini файл, который игнорируется или заставляет XAMPP отклонить его (не работает).

Вот мой код в любом случае и для базы данных, и для регистрации, просто для примера:

register.php:

<?php

require 'connection.php';

ini_set('display_errors', 1);
ini_set('html_errors', 0);
error_reporting(E_ALL);$firstname = isset($_POST['firstname']) ? $_POST['firstname'] : '';
$lastname = isset($_POST['lastname']) ? $_POST['lastname'] : '';
$email = isset($_POST['email']) ? $_POST['email'] : '';
$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
$confirmpassword = isset($_POST['confirmpassword']) ? $_POST['confirmpassword'] : '';

$message[] = '';

if (!empty($_POST['username']) && !empty($_POST['password']))
{

//var_dump($password, $confirmpassword);
if(strlen($password) > 6 && strlen($password) < 32)
{

if($password == $confirmpassword)
{
$records = $conn->prepare('SELECT * FROM users WHERE Username = :username');
$records->bindParam(':username', $_POST['username']);
$records->execute();
$results = $records->fetchAll(PDO::FETCH_ASSOC);

//var_dump($results);

if(count($results) > 0)
{
echo 'That username is already in use, please use a different one.';

}
else
{
$emailRecords = $conn->prepare('SELECT * FROM users WHERE Email = :email');
$emailRecords->bindParam(':email', $_POST['email']);
$emailRecords->execute();
$emailResults = $emailRecords->fetchAll(PDO::FETCH_ASSOC);

if(count($emailResults) > 0)
{
echo 'That email is already in use, are you sure you\'re not registered with us already? <a href="loginPage.php">Login Here</a>';
}
else
{

$sql = "INSERT INTO users (Firstname, Lastname, Role, Email, Username, Password) VALUES (:firstname, :lastname, :role, :email, :username, :passwords)";
$stmt = $conn->prepare($sql);
$hashPassword = password_hash($password, PASSWORD_DEFAULT);

$stmt->bindParam(':firstname', strip_tags($firstname));
$stmt->bindParam(':lastname', strip_tags($lastname));
$stmt->bindParam(':role', $_POST['role']);
$stmt->bindParam(':email', strip_tags($email));
$stmt->bindParam(':username',strip_tags($username));
$stmt->bindParam(':passwords',strip_tags($hashPassword));

if ($stmt->execute())
{
echo 'Well done! You have successfully registered with us!';
header('Location:loginPage.php');
}
else
{
echo 'There seems to be an issue getting you registered.';
//$message = 'There seems to be an issue getting you registered.';
}
}
}
}
else
{
echo 'Your passwords do not match, please enter them correctly.';
//$message = 'Your passwords do not match, please enter them correctly.';
//header('Location:registerPage.php');
}
}
else
{
echo 'Your password must be between 6 to 32 characters.';
//header('Location:registerPage.php');
}
}

База данных — Таблица пользователей: (обязательно для входа в систему и регистрации)

CREATE TABLE users
(
id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
Firstname VARCHAR(50) NOT NULL,
Lastname VARCHAR(50) NOT NULL,
Role VARCHAR(30) NOT NULL,
Email VARCHAR(150) NOT NULL,
Username VARCHAR(60) NOT NULL,
Password VARCHAR(128) NOT NULL
);
CREATE UNIQUE INDEX Email ON users (Email);
CREATE UNIQUE INDEX Username ON users (Username);

0

Решение

Вы используете собственный встроенный веб-сервер PhpStorm, который имеет немного проблемы прямо сейчас (особенно с запросами POST, например, WEB-17317 — Вы можете посмотреть этот билет (звезда / голосование / комментарий), чтобы получать уведомления о любом прогрессе).

Решение состоит в том, чтобы использовать собственный веб-сервер (Apache от вашего XAMPP).

  1. Определите запись развертывания соответствующего типа. In place Тип может быть в порядке, если ваш Apache может обслуживать файлы из этого места; в противном случае либо настройте веб-сервер так, чтобы он мог это сделать … либо используйте другой тип развертывания (например, Local or Mounted Folders для IDE, чтобы скопировать файлы в другое место для вас).
  2. Настройте его (укажите желаемый URL и т. Д.) — убедитесь, что на первых двух вкладках не отображаются предупреждения о незаполненных полях.
  3. Отметьте его как Default для этого проекта.

Теперь IDE будет использовать этот базовый URL, когда вы будете использовать Open in Browser или действия Run / Debug (ПРИМЕЧАНИЕ: это не повлияет на любые существующие конфигурации Run / Debug — только будущие; вам придется обновлять текущие конфигурации Run / Debug вручную).


В чем разница между двумя: https://stackoverflow.com/a/33598214/783119

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]