我使用this code來驗證我的URL。Http URL保護在localhost中工作,但在服務器上失敗
其工作罰款,我
localhost
但是當我加載到服務器(GoDaddy的),它的反覆詢問用戶名和密碼。我想要控制這些用戶名和密碼字段並將它們連接到我的數據庫。
對於正在使用這樣的代碼:
$conid = mysql_connect("localhost", "root", "");
if(!$conid) {
die("sorry unable to establish a connection".mysql_error());
}
echo "connected succesfully<br>";
mysql_select_db("passurl", $conid);
$rr = mysql_query("select password from validate where username='$user' ");
while($row = mysql_fetch_array($rr)) {
$x = $row['password'];
}
if($x == $password) {
//take into the website
}
因此當用戶名密碼&由用戶輸入,就成功驗證它考慮到該頁面。
我使用PHP-MYSQL,因爲我有初步的知識,是編程的新手。
善意幫助我解決上述兩個問題與適當的測試代碼。
編輯: 問題一在本地工作,使用的鏈接中提供的代碼相同。問題二是試圖從我的本地數據庫中檢索那些username
和password
字段,以便可以在我的本地主機上授予登錄名(如果它在稍後階段工作,我將使數據庫聯機)。
編輯-2:
ty.php
包含像
<?php
$auth_realm = 'Access restricted';
require_once 'auth.php';
echo "You've logged in as {$_SESSION['username']}<br>";
echo '<p><a href="?action=logOut">LogOut</a></p>'
?>
<center><h1>now you see the protected content</h1></center>
和auth.php
代碼包含
<?php
$_user_ = 'test';
$_password_ = 'test';
session_start();
$url_action = (empty($_REQUEST['action'])) ? 'logIn' : $_REQUEST['action'];
$auth_realm = (isset($auth_realm)) ? $auth_realm : '';
if (isset($url_action)) {
if (is_callable($url_action)) {
call_user_func($url_action);
} else {
echo 'Function does not exist, request terminated';
};
};
function logIn() {
global $auth_realm;
if (!isset($_SESSION['username'])) {
if (!isset($_SESSION['login'])) {
$_SESSION['login'] = TRUE;
header('WWW-Authenticate: Basic realm="'.$auth_realm.'"');
header('HTTP/1.0 401 Unauthorized');
echo 'You must enter a valid login and password';
echo '<p><a href="?action=logOut">Try again</a></p>';
exit;
} else {
$user = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : '';
$password = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
$result = authenticate($user, $password);
if ($result == 0) {
$_SESSION['username'] = $user;
} else {
session_unset($_SESSION['login']);
errMes($result);
echo '<p><a href="">Try again</a></p>';
exit;
};
};
};
}
function authenticate($user, $password) {
global $_user_;
global $_password_;
if (($user == $_user_)&&($password == $_password_)) { return 0; }
else { return 1; };
}
function errMes($errno) {
switch ($errno) {
case 0:
break;
case 1:
echo 'The username or password you entered is incorrect';
break;
default:
echo 'Unknown error';
};
}
function logOut() {
session_destroy();
if (isset($_SESSION['username'])) {
session_unset($_SESSION['username']);
echo "You've successfully logged out<br>";
echo '<p><a href="?action=logIn">LogIn</a></p>';
} else {
header("Location: ?action=logIn", TRUE, 301);
};
if (isset($_SESSION['login'])) { session_unset($_SESSION['login']); };
exit;
}
?>
所以一旦我們打ty.php
它要求用戶名和密碼,並在驗證成功它顯示受保護的下。所有這些在localhost中工作正常,但在服務器上不起作用。
有人可以請幫我出這
感謝提前:)
正確的格式,請 – JimmyBanks 2012-04-05 12:53:30
請你能告訴你滿了,實際的代碼。同時驗證您的公共主機上的數據庫連接是否正常。 – DaveRandom 2012-04-05 12:57:52
@DaveRandom完整的代碼與所提供的鏈接相同。 – krishna 2012-04-05 13:06:54