变量在 (2) PHP 个脚本之间不起作用
Variabls not working between (2) PHP Scripts
我有 (2) PHP 脚本:一个用 PHP 4.0 编写,第二个用 PHP 5.6 编写(我的 ISP 升级了服务器,他们只 运行 PHP 现在是 5.6,所以我不得不将 4.0 脚本转换为 5.6)
然而,当我使用 PHP 4.0 脚本时,在 ISP 升级之前一切正常,但是当我使用 PHP 5.6 脚本(已转换)时,该脚本无法连接到mySQL 服务器或 return 任意值
我想知道初始变量是否有问题,或者第二个 PHP 5.6 脚本是从早期的 PHP 4.0 脚本
谢谢
这是 (2) PHP 脚本
PHP 4.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;
}
}
?>
这里是 PHP 5.6 脚本
<?php
//error_reporting(1);
//ini_set('display_errors', '1');
// mysql connection
$db_host = 'sql.servername.com';
$db_user = 'var1';
$db_pass = 'var2';
$db_name = 'var3';
$dbh = new PDO('mysql:host='.$db_host.';dbname='.$db_name.';charset=utf8', $db_user, $db_pass);
// submit form
if (isset($_POST['submit']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $dbh->prepare("SELECT * FROM USER_ACCOUNTS WHERE username = :username AND password = :password");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();
$number_of_rows = $stmt->fetchColumn();
// Valid Username and Password
if ($number_of_rows > 0)
{
$row = $stmt->fetchAll();
$output = '';
while($row)
{
// 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;
}
}
}
?>
已解决 - 只需在脚本中将 $REMOTE_ADDR
替换为 $_SERVER['REMOTE_ADDR']
即可从 PHP 4.0 转换为 PHP 5.6 :)
我有 (2) PHP 脚本:一个用 PHP 4.0 编写,第二个用 PHP 5.6 编写(我的 ISP 升级了服务器,他们只 运行 PHP 现在是 5.6,所以我不得不将 4.0 脚本转换为 5.6)
然而,当我使用 PHP 4.0 脚本时,在 ISP 升级之前一切正常,但是当我使用 PHP 5.6 脚本(已转换)时,该脚本无法连接到mySQL 服务器或 return 任意值
我想知道初始变量是否有问题,或者第二个 PHP 5.6 脚本是从早期的 PHP 4.0 脚本
谢谢
这是 (2) PHP 脚本
PHP 4.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;
}
}
?>
这里是 PHP 5.6 脚本
<?php
//error_reporting(1);
//ini_set('display_errors', '1');
// mysql connection
$db_host = 'sql.servername.com';
$db_user = 'var1';
$db_pass = 'var2';
$db_name = 'var3';
$dbh = new PDO('mysql:host='.$db_host.';dbname='.$db_name.';charset=utf8', $db_user, $db_pass);
// submit form
if (isset($_POST['submit']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $dbh->prepare("SELECT * FROM USER_ACCOUNTS WHERE username = :username AND password = :password");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();
$number_of_rows = $stmt->fetchColumn();
// Valid Username and Password
if ($number_of_rows > 0)
{
$row = $stmt->fetchAll();
$output = '';
while($row)
{
// 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;
}
}
}
?>
已解决 - 只需在脚本中将 $REMOTE_ADDR
替换为 $_SERVER['REMOTE_ADDR']
即可从 PHP 4.0 转换为 PHP 5.6 :)