這是我用來驗證用戶的精簡版本,它對我的PHP v5.0.2/MySQL 4.0.21服務器,但在我的PHP v5.1.6/MySQL v5.0.45服務器上失敗。PHP/MySQL登錄在一臺服務器上運行(PHP 5.0.2),但不能在另一臺服務器上運行(PHP 5.1.6)
在下面的代碼中,我應該知道任何可能不被新版本的PHP & MySQL支持的東西嗎?全局變量已啓用。
<?php
if(!isset($HTTP_POST_VARS['username'])&&!isset($HTTP_POST_VARS['password']))
{
//Visitor needs to enter a name and password
?>
<h1>Please Log In</h1>
This page is secret.
<form method="post" action="<?php echo $PHP_SELF;?>">
<table border="1">
<tr>
<th> Username </th>
<td> <input type="text" name="username"> </td>
</tr>
<tr>
<th> Password </th>
<td> <input type="password" name="password"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Log In">
</td>
</tr>
</table>
</form>
<?php
}
else
{
// connect to mysql
include('../cgi-bin/db.php');
$username = $HTTP_POST_VARS['username'];
$password = md5($HTTP_POST_VARS['password']);
if(!$db)
{
echo 'Cannot connect to database.';
exit;
}
// select the appropriate database
$mysql = mysql_select_db('quickwebcms');
if(!$mysql)
{
echo 'Cannot select database.';
exit;
}
// query the database to see if there is a record which matches
$query = "select count(*) from auth where
username = '$username' and
password = '$password'";
$result = mysql_query($query);
if(!$result)
{
echo 'Cannot run query.';
exit;
}
$count = mysql_result($result, 0, 0);
if ($count > 0)
{
// visitor's name and password combination are correct
echo '<h1>Here it is!</h1>';
echo 'I bet you are glad you can see this secret page.';
}
else
{
// visitor's name and password combination are not correct
echo '<h1>Go Away!</h1>';
echo 'You are not authorized to view this resource.';
}
}
?>
mysql_error()說連接的問題是什麼? – 2009-10-16 23:24:13