从localhost迁移时,服务器未读取setup.php
使用phpmyadmin,我已经将网站的文件和表从本地主机迁移到服务器 我是如何设置的:用户必须使用用户名和密码登录(从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
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();
?>