变量不在(2)个PHP脚本之间工作
我有(2)个PHP脚本:一个是用PHP4.0编写的,另一个是用PHP5.6编写的(我的ISP升级了服务器,现在它们只运行PHP5.6,所以我不得不将4.0脚本转换为5.6) 然而,当我使用PHP4.0脚本时,在ISP升级之前,一切都运行得很好,但当我使用PHP5.6脚本(已转换)时,该脚本不会连接到mySQL服务器或返回任何值 我想知道,最初的变量是否有问题,或者从早期的PHP4.0脚本转换而来的第二个PHP5.6脚本是否缺少某些内容变量不在(2)个PHP脚本之间工作,php,mysql,php-5.6,php4,Php,Mysql,Php 5.6,Php4,我有(2)个PHP脚本:一个是用PHP4.0编写的,另一个是用PHP5.6编写的(我的ISP升级了服务器,现在它们只运行PHP5.6,所以我不得不将4.0脚本转换为5.6) 然而,当我使用PHP4.0脚本时,在ISP升级之前,一切都运行得很好,但当我使用PHP5.6脚本(已转换)时,该脚本不会连接到mySQL服务器或返回任何值 我想知道,最初的变量是否有问题,或者从早期的PHP4.0脚本转换而来的第二个PHP5.6脚本是否缺少某些内容 <?php $userdb="var
<?php
$userdb="var1";
$pass="var2";
$database="var3";
mysql_connect("sql.servername.com",$userdb,$pass);
@mysql_select_db($database) or die ( header('location: status4.htm') );
$match = "select id from USER_ACCOUNTS where username = '$username' and password = '$password'";
$qry = mysql_query($match)
or die ( header('location: status.htm?status=9') );
$num_rows = mysql_num_rows($qry);
// Valid Username and Password
if ($num_rows > 0) {
$qry = "SELECT * FROM USER_ACCOUNTS WHERE username like '%" . $username . "%'";
$res = mysql_query($qry);
$output='';
while($row = mysql_fetch_assoc($res)){
// loop through all returned results
$output .= '&viewUsername=' . $row['viewUsername'] . '&viewPassword=' . $row['viewPassword'] . '&username=' . $row['username'] .
'&password=' . $row['password'] . '&name=' . $row['name'] . '&title=' . $row['title'] . '&email=' . $row['email'] . '&admin=' .
$row['admin'] . '&file=' . $row['file'] . '&file2=' . $row['file2'] . '&file3=' . $row['file3'] . '&file4=' . $row['file4'];
echo "&status=1";
echo $output;
}
}
?>
谢谢
下面是(2)个PHP脚本
PHP4.0脚本
<?php
$userdb="var1";
$pass="var2";
$database="var3";
mysql_connect("sql.servername.com",$userdb,$pass);
@mysql_select_db($database) or die ( header('location: status4.htm') );
$match = "select id from USER_ACCOUNTS where username = '$username' and password = '$password'";
$qry = mysql_query($match)
or die ( header('location: status.htm?status=9') );
$num_rows = mysql_num_rows($qry);
// Valid Username and Password
if ($num_rows > 0) {
$qry = "SELECT * FROM USER_ACCOUNTS WHERE username like '%" . $username . "%'";
$res = mysql_query($qry);
$output='';
while($row = mysql_fetch_assoc($res)){
// loop through all returned results
$output .= '&viewUsername=' . $row['viewUsername'] . '&viewPassword=' . $row['viewPassword'] . '&username=' . $row['username'] .
'&password=' . $row['password'] . '&name=' . $row['name'] . '&title=' . $row['title'] . '&email=' . $row['email'] . '&admin=' .
$row['admin'] . '&file=' . $row['file'] . '&file2=' . $row['file2'] . '&file3=' . $row['file3'] . '&file4=' . $row['file4'];
echo "&status=1";
echo $output;
}
}
?>
解决了它-在从php4.0转换到PHP5.6的脚本中,只需将$REMOTE\u ADDR
替换为$\u SERVER['REMOTE\u ADDR']
)php4太过时了,在这里并不相关。您应该尝试从正在运行的5.6脚本中提供更多调试。比较这两个脚本对5.6的运行没有多大帮助。你会遇到什么错误?两者之间的一些差异是;在第二个例子中,有POST数组。使用php的错误报告来查看其结果和PDO上的异常。@ServerProgrammer如果未连接,则使用PDO的错误处理和setAttribute选项。您还应该在测试期间取消对错误报告的注释。@ServerProgrammer查看我的一个答案,其中包含完整的PDO方法和连接上的错误处理,以检查行是否存在。如果这对您有效,那么从那里开始,修改它以适合您的db/列。让我知道事情的进展。既然这样解决了问题,记得在页面允许你做的时候接受你自己的答案。