Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
变量不在(2)个PHP脚本之间工作_Php_Mysql_Php 5.6_Php4 - Fatal编程技术网

变量不在(2)个PHP脚本之间工作

变量不在(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

我有(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="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/列。让我知道事情的进展。既然这样解决了问题,记得在页面允许你做的时候接受你自己的答案。