我在PHP中编写了一些代码,将一些信息插入到我的数据库中。有趣的是,代码在我的Windows PC上运行在XAMPP(PHP 5.5.19)上,但在Ubuntu服务器(灯服务器,PHP 5.5.9)上运行时我得到一个空白页面。我不认为这与permisions有关,因为(过了一段时间)我刚刚将它设置为绝望的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");
}
?>
答案 0 :(得分:0)
我只想知道文件包含的内容。如果确实包含
<? instead of <?php
这可能是一个问题,
http://php.net/manual/fr/ini.core.php#ini.short-open-tag
可能有你的问题。我不是百分百肯定,但它对我有用。 要获得更具体的错误,请检查ini_set;而不是白页。 问候;
答案 1 :(得分:0)
您提供的信息不足以提供解决方案,首先请按照以下步骤操作并在php ini文件中启用错误报告,然后您将遇到问题,为什么您无法看到任何内容。
打开位于&#34; /etc/php5/apache2/php.ini"的PHP.ini文件;使用你最喜欢的编辑器。
查找并更新以下变量:error_reporting = E_ALL。 display_errors = On。
现在运行您的页面,您将收到错误报告的问题。