网站在线托管时的空白页面
Blank page when website is hosted online
我用 php 建立了一个小网站。它在我的本地主机上完美运行(即使没有数据库信息,它也会加载 html 和 css)。
然而,当我把它放到网上时,我只得到一个空白页,没有错误,什么都没有。但是,当我手动输入页面时,它会重定向到登录页面(这很好)。
以前有人遇到过这种情况吗?
谢谢
EDIT2:经过一些调试建议后我得到了这个错误
Warning: include_once(classes/users.class.php): failed to open stream:
No such file or directory in
/customers/c/2/9/nicolasdecroos.be/httpd.www/eindwerk/login.php on
line 8 Warning: include_once(): Failed opening
'classes/users.class.php' for inclusion
(include_path='.:/usr/share/php') in
/customers/c/2/9/nicolasdecroos.be/httpd.www/eindwerk/login.php on
line 8 Fatal error: Class 'user' not found in
/customers/c/2/9/nicolasdecroos.be/httpd.www/eindwerk/login.php on
line 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); ?>
好的,
这有点蠢,但我会 post 以防有人遇到麻烦。
地图名为“Classes”。在代码中它被写成“classes”。
在本地主机上这不是问题,但是当你把它放到网上时它就是问题了。
我用 php 建立了一个小网站。它在我的本地主机上完美运行(即使没有数据库信息,它也会加载 html 和 css)。
然而,当我把它放到网上时,我只得到一个空白页,没有错误,什么都没有。但是,当我手动输入页面时,它会重定向到登录页面(这很好)。
以前有人遇到过这种情况吗?
谢谢 EDIT2:经过一些调试建议后我得到了这个错误
Warning: include_once(classes/users.class.php): failed to open stream: No such file or directory in /customers/c/2/9/nicolasdecroos.be/httpd.www/eindwerk/login.php on line 8 Warning: include_once(): Failed opening 'classes/users.class.php' for inclusion (include_path='.:/usr/share/php') in /customers/c/2/9/nicolasdecroos.be/httpd.www/eindwerk/login.php on line 8 Fatal error: Class 'user' not found in /customers/c/2/9/nicolasdecroos.be/httpd.www/eindwerk/login.php on line 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); ?>
好的,
这有点蠢,但我会 post 以防有人遇到麻烦。
地图名为“Classes”。在代码中它被写成“classes”。
在本地主机上这不是问题,但是当你把它放到网上时它就是问题了。