我用PHP编写了一些代码,将一些信息插入我的数据库中。有趣的是,该代码确实可以在XAMPP(PHP 5.5.19)上的Windows PC上运行,但是在Ubuntu服务器(lamp-server,PHP 5.5.9)上,我在运行时会出现一个空白页。我认为这与渗透无关,因为(一段时间后)我出于绝望将其设置为 CHMOD 777。我已经用谷歌搜索了几个小时(也许是错误的术语,我不知道为什么它不起作用),但我似乎找不到答案。
<?php
//includes
include 'connect.php';
include 'salt.php';
if(isset($_POST['registerusername']) && isset($_POST['registerpassword']) && isset($_POST['registeremail'])){
//escape strings
$username = mysqli_real_escape_string($con, $_POST['registerusername']);
$password = mysqli_real_escape_string($con, $_POST['registerpassword']);
$email = mysqli_real_escape_string($con, $_POST['registeremail']);
//check mail
$query = mysqli_query($con, "SELECT email FROM users WHERE email = '$email'")or die(mysqli_error($con));
if(mysqli_num_rows($query) == 0){
$num = 1;
//generate random number
while($num){
$id = mt_rand(1000000000, 9999999999);
$query = mysqli_query($con, "SELECT ID FROM users WHERE ID = '$id'")or die(mysqli_error($con));
$num = mysqli_num_rows($query);
echo $num;
}
//hash and salt password
$password = salt($username, $password, $email, date("YmD HiS"));
//insert in database
mysqli_query($con, "INSERT INTO users(username, password, registrationdate, email, active, ID) VALUES('$username', '$password',NOW(), '$email', '1', '$id')") or die(mysqli_error($con));
}
else{
//Mail already exist in database
header("Location: login.php?emailfail");
die('Nomail');
}
}
else{
//fail or nothing inserted in form
header("Location: login.php?fail");
}
?>
我只想知道文件包含的内容。如果它确实包含
<? instead of <?php
这可能是一个问题,与
http://php.net/manual/fr/ini.core.php#ini.short-open-tag
可能有你的问题。我不是100%确定,但它确实对我有用。对于更具体的错误,而不是白页,请选中ini_set;问候;
您提供的信息不足以提供解决方案,首先请按照以下步骤操作并在php ini文件中启用错误报告,然后您将遇到问题,为什么您无法看到任何内容。
-
使用您喜欢的编辑器打开位于"/etc/php5/apache2/php.ini"的 PHP.ini 文件。
-
查找并更新以下变量:error_reporting = E_ALL。 display_errors = 开。
现在运行您的页面,您将获得错误报告是什么问题。