-3

重複の可能性:
PHP/MySQL ログインの問題

Web サイトのメンバー エリアにログインしようとすると、データベースにリンクされないため、ゼロ データを入力してもメンバー エリアに移動します。

以下の php と HTML の何が問題になっていますか。

 <?php
 session_start();
 include("dbconnect.php");
 $numrows=0;
 $sqlMember = mysql_real_escape_string($member);
$sqlPassword = mysql_real_escape_string($password);
$query="select First_name fname, Last_name lname, Email email, Membership_Number from members where (Membership_Number='$sqlMember' and Password='$sqlPassword')";

  $link = mysql_query($query);
 if (!$link) {
  die('login error');
 }
 $numrows=mysql_num_rows($link);
 if ($numrows>0){  // authentication is successfull
  while($row = mysql_fetch_array($query));
  $_SESSION['user']['first_name']=$row['first_name'];
  $_SESSION['user']['last_name']=$row['last_name'];
  $_SESSION['user']['Membership_Number ']=$row['Membership_Number '];
  echo $_SESSION['user']['fname'].' '.$_SESSION['user']['lname'];
  header("location:members_area.php");
 } else {
  header("location:../invalid.php");  // authentication was unsuccessfull
 }
?>

HTML

<form id="jjjj" action="Send_log_details.php" class="register">
    <ul>
    <li>
    Membership Number:<br>
    <input type="text" id="Membership_Number" name="Membership_Number">
    </li>
        <li>
    Password:<br>
<input type="password"  id="Password" name="Password" value="Log in">
        </li>
    <li>

    <input type="submit" name="register" value="Login" onclick="logMeIn()">             
        </li>
        </ul>
        </form>
4

2 に答える 2

1
$sqlMember = mysql_real_escape_string($member);
$sqlPassword = mysql_real_escape_string($password);

する必要があります

$sqlMember = mysql_real_escape_string($_POST["Membership_Number"]);
$sqlPassword = mysql_real_escape_string($_POST["Password"]);

<form id="jjjj" action="Send_log_details.php" class="register">

する必要があります

<form id="jjjj" action="Send_log_details.php" class="register" method="POST">
于 2013-01-11T16:34:21.197 に答える
1

あなたのSQLは私には間違っているようです。そうでないことを願っています。

// Your code
$query="select First_name fname, Last_name lname, Email email, Membership_Number from members where (Membership_Number='$sqlMember' and Password='$sqlPassword')";

// My code
$query="select fname AS First_name, lname AS Last_name, email AS Email, Membership_Number from members where (Membership_Number='$sqlMember' and Password='$sqlPassword')";

さらに、次の場合にのみログインが成功したものとして受け入れますmysql_num_rows($query) == 1

于 2013-01-11T16:39:28.470 に答える