0

私はこのログイン スクリプトを長い間使用してきましたが、これは非常に安定していますが、今では壊れていて気が狂ってしまいます。

基本的に、スクリプトはログインする最初の MySQL 行のユーザーのみを受け入れます。ログイン システムは機能しますが、最初の SQL 行についてのみ、すべての行を無視するように見えますか?

global_database.php

<?php 

$dbhost = 'localhost';
$dbuser = 'dealerpa_guest';
$dbpass = 'password_here';



function dbConnect($db='') {
global $dbhost, $dbuser, $dbpass;

$dbcnx = @mysql_connect($dbhost, $dbuser, $dbpass)
       or die('We are currently applying some major patches and fixes to our systems.        Please try again in 10 Minutes.');

if ($db!='' and !@mysql_select_db($db))
    die('We are currently applying some major patches and fixes to our systems. Please try again in 10 Minutes.');

return $dbcnx;
 }


?>

global_restriction.php

<?php

session_start();


include_once 'global_database.php';
include_once 'global_common.php';

$dealerUsername = isset($_POST['dealerUsername']) ? $_POST['dealerUsername'] :      $_SESSION['dealerUsername'];
$pwd = isset($_POST['pwd']) ? $_POST['pwd'] : $_SESSION['pwd'];


if(!isset($dealerUsername)) {
?>
<html>
<body>
  <form id="dealerLogin" name="dealerLogin" method="post" action="">
<input name="dealerUsername" type="text" id="dealerUsername" size="15"   class="validate[required] text-input" />

  <input name="pwd" type="password" id="pwd" size="15" class="validate[required] text-input" />

 <input name="submit" id="submit" type="submit" value="Login" class="save-button" />

</form>

<?php

exit;
 }

$_SESSION['dealerUsername'] = $dealerUsername;
$_SESSION['pwd'] = $pwd;

dbConnect("dealerpa_account");
$sql = "SELECT * FROM dealerAccount WHERE dealerUsername = '$dealerUsername' AND    dealerPassword = md5('$pwd')";

$result = mysql_query($sql);
if (!$result) {
error('A database error occurred while checking your '.
    'login details.\\nIf this error persists, please '.
    'contact us.');
}

if (mysql_num_rows($result) == 0) {
unset($_SESSION['dealerUsername']);
unset($_SESSION['pwd']);

?>

<html>
<body>
<p>Display Login page again if password is wrong</p>
</body>
<?php
exit;
}

$dealerUsername = mysql_result($result,0,'dealerUsername');
$dealerID = mysql_result($result,0,'dealerID');
?>

PHP の設定を確認し、グローバルの登録がオンになっていることを確認しました。他に試してみることはありますか。奇妙なことに、ログインできるユーザーは 1 人だけです。スクリプトがテーブル全体をチェックしておらず、最初の SQL 行のみを調べているようです。

どんな助けでも大歓迎です。

4

1 に答える 1

0

行インデックスがmysql_result().In で 0 に設定されているため、それが起こっていると思います。代わりに try を使用mysql_resultmysql_fetch_assocます。関連する配列でユーザー情報を取得します。それが役立つことを願っています。

于 2014-05-20T02:58:02.700 に答える