Я создал небольшой сайт с небольшим количеством php. Он отлично работает на моем локальном хосте (даже без информации о базе данных он загружает HTML и CSS).
Однако, когда я выкладываю его в Интернет, я просто получаю пустую страницу, без ошибок, ничего. Однако, когда я вручную набираю страницу, она перенаправляет на страницу входа (что хорошо).
Кто-нибудь испытывал это раньше?
Спасибо
EDIT2: после некоторых советов по отладке я получил эту ошибку
Предупреждение: include_once (classes / users.class.php): не удалось открыть поток:
нет такого файла или директории в
/customers/c/2/9/nicolasdecroos.be/httpd.www/eindwerk/login.php on
строка 8 Предупреждение: include_once (): сбой открытия
‘classes / users.class.php’ для включения
(include_path = ‘.: / usr / share / php’) в
/customers/c/2/9/nicolasdecroos.be/httpd.www/eindwerk/login.php on
строка 8 Неустранимая ошибка: класс «пользователь» не найден в
/customers/c/2/9/nicolasdecroos.be/httpd.www/eindwerk/login.php on
строка 9
Изменить: вот код PHP на странице входа
<?php
session_start();
include_once("classes/users.class.php");
$user = new user();
if(isset($_SESSION['loggedin']))
{
header('location: index.php');
}
else
{
if(!empty($_POST))
{
try
{
$user->login($_POST['studentennummer'],$_POST['password']);
}
catch (Exception $error)
{
$message = $error->getMessage();
}
}
}
?>
Это users.class
* Извините, если это слишком много кода, я не уверен, какая часть будет наиболее интересной.
<?php
include_once("classes/db.class.php");
class user
{
private $m_sStudentennummer;
private $m_sPassword;
private $m_sStatus;
public function __get($p_sProperty)
{
switch ($p_sProperty)
{
case 'Studentennummer':
return $this->m_sStudentennummer;
break;
case 'Password':
return $this->m_sPassword;
break;
case 'Status':
return $this->m_sStatus;
break;
}
}
public function __set($p_sProperty, $p_vValue)
{
switch ($p_sProperty)
{
case 'Studentennummer':
$this->m_sStudentennummer = $p_vValue;
break;
case 'Password':
$this->m_sPassword = $p_vValue;
break;
case 'Status':
$this->m_sStatus = $p_vValue;
break;
}
}
public function userCheck($p_sInput)
{
$db = new db();
$sql = "SELECT * FROM users WHERE u_id = '". $p_sInput . "'";
$result = $db->conn->query($sql);
if ($result->num_rows == 0)
{
return "true";
}
else
{
return "false";
}
}
public function login($p_sStudentennummer, $p_sPassword)
{
$db = new db();
$sql = "SELECT * FROM users WHERE u_nr = '".$db->conn->real_escape_string($p_sStudentennummer)."' AND u_pass = '".$db->conn->real_escape_string($p_sPassword)."';";
$result = $db->conn->query($sql);
$rows = $result->fetch_assoc();
$status = "SELECT * FROM users WHERE u_nr = '".$db->conn->real_escape_string($p_sStudentennummer)."' AND u_pass = '".$db->conn->real_escape_string($p_sPassword)."' AND u_group = 'student'";
$statusRes = $db->conn->query($status);
if ($result->num_rows == 1)
{
if ($statusRes->num_rows == 1)
{
$_SESSION['u_id'] = $rows['u_id'];
$_SESSION['loggedin'] = 1;
header('Location: index.php');
}
else
{
$_SESSION['u_id'] = $rows['u_id'];
$_SESSION['loggedin'] = 1;
header('Location: my_events.php');
}
}
else
{
throw new Exception("Username and/or password are invalid.");
}
}
}
?>
Измените уровень ошибки для онлайн-хостинга, если можете.
Он будет отображать все ошибки на экране, но это очень полезно (по крайней мере, для меня).
<? error_reporting(E_ALL); ?>
Хорошо,
Это было что-то глупое, но я опубликую это, если у кого-то есть проблемы с этим.
Карта называласьС«в коде было написано как»сдевицы».
На localhost это не было проблемой, но когда вы размещаете его в сети, это так.