从localhost迁移时,服务器未读取setup.php

从localhost迁移时,服务器未读取setup.php,php,localhost,database-migration,Php,Localhost,Database Migration,使用phpmyadmin,我已经将网站的文件和表从本地主机迁移到服务器 我是如何设置的:用户必须使用用户名和密码登录(checklogin.php)才能进入主页(index.php) 下面是checklogin.php的内容: <?php $host="localhost"; // Host name $username="garbo49"; // Mysql username $password="turf"; // Mysql password $db_name="garb

使用phpmyadmin,我已经将网站的文件和表从本地主机迁移到服务器

我是如何设置的:用户必须使用用户名和密码登录(
checklogin.php
)才能进入主页(
index.php

下面是checklogin.php的内容:

<?php
$host="localhost"; // Host name 
$username="garbo49"; // Mysql username 
$password="turf"; // Mysql password 
$db_name="garbo49"; // Database name 
$tbl_name="members"; // Table name 

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){

// Register $myusername, $mypassword and redirect to file "loginsuccess.php"
$_SESSION['myusername']= "myusername"; 
$_SESSION['mypassword']= "mypassword"; 
header("location:loginsuccess.php");
}
else {
echo "Wrong Username or Password";
}
?>
当所有细节都与新数据库对应时,为什么服务器拒绝读取setup.php?如果您有任何见解,我将不胜感激

解决方案:在(评论)的指导下-查看错误日志发现,介入的错误实际上是:
调用未定义的函数mysqli\u fetch\u all()
。所以我猜这意味着我的出色主机没有提供msqli支持(它的PHP安装不是用mysqlnd编译的)。
因此,我使用$result->fetch_assoc()代替

它是VPS服务器还是通过FTP上传到共享主机,然后尝试为脚本设置+x权限。(假设运行linux)

此外,当您在VPS上时,请尝试设置www数据用户(不使用su php时)

其次,当你包含一些东西时,检查路径。在服务器之间移动时,最好确保包含的文件是正确的。通常,当我开发时,我会尝试动态生成脚本的完整路径,因此我将100%确保不管路径如何,都会包含脚本

PHP魔法常量可能有助于:

您还可以检查服务器日志,以找出发生了什么错误。根据您何时使用Plesk或Cpanel或自定义配置,您应该:

  • 对于Plesk外观:
  • 对于Cpanel外观:
  • 假设您可以在设置错误日志路径的路径上使用Apache和自定义Vhost look

还可以使用以下命令在php上启用错误报告:

如果转储get_included_files(),会得到什么?@William Lee我应该在哪个文件中运行该命令?请尝试将其放在代码的第一行:“error_reporting(E_ALL);”然后是“ini_set('display_errors',1);”并尝试模拟空白页,SETUP .PHP必须在Error报告和InIOSET之后进行,这样会影响StupU.PHP并显示出困扰您的问题。有您的问题,您的主机没有MySQL支持。
<?php
$hn = 'localhost';
$db = 'garbo49';
$un = 'garbo49';
$pw = 'turf'; 

#DB Connection:
 $conn = new mysqli($hn, $un, $pw, $db);
 if ($conn->connect_error) die($conn->connect_error);

#Functions:
require_once ('function.php');


#Section setup:
$newsrow = news_data($conn);
$reviewsrow = reviews_data($conn);
$blogrow = blog_data($conn);
$reciperow = recipe_data($conn);
$foodiqrow = foodiq_data($conn);
$eventsrow = events_data($conn); 


//$result->close();
//$conn->close();

?>