このコードを使用してURLを認証しています。
私の場合は正常に動作して
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を使用していますが、予備知識があるので、プログラミングの初心者です。
適切なテスト済みコードで上記の2つの問題を修正するのを手伝ってください。
編集:
問題1はローカルで動作しており、リンクで提供されているものと同じコードを使用しています。問題2は、ローカルホストでログインを許可できるように、ローカルデータベースからこれらのフィールド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
するとユーザー名とパスワードの入力を求められ、検証が成功すると、保護されたダウンが表示されます。これはすべてローカルホストでは正常に機能していますが、サーバーでは機能していません。
誰かplsがこの
おかげで私を助けてくれますか:)