1

Web サイトのログイン フォームを作成しましたが、現在機能しておらず、invalid.php に誘導され、認証が失敗したことを示しています。

 <?php
     session_start();
     include("scripts/dbconnect.php");
     $numrows=0;
     $password=$_POST['password'];
     $email=$_POST['email'];
     $query="select fname,lname,email from mayan_users where (password='$password' && email='$email')";
     $link = mysql_query($query);
     if (!$link) {
      die('login error');
     }
     $numrows=mysql_num_rows($link);
     if ($numrows>0){  // authentication is successfull
      $row = mysql_fetch_array($link, MYSQL_ASSOC);
      $_SESSION['user']['fname']=$row['fname'];
      $_SESSION['user']['lname']=$row['lname'];
      $_SESSION['user']['email']=$row['email'];
      header("location:../index2.php");
     } else {
      header("location:../invalid.php");  // authentication was unsuccessfull
     }
    ?>

ここに私のログインフォームがあります

<div id="Loginform" style="background-color:fuchsia; width:100%">

<span id="logspan">
     <input type="email" name="email" id="email" placeholder="Email" required />
     <input type="password" name="password" id="password" placeholder="Password" required/>
     <input type="button" name="submit" style="cursor:pointer" id="submit" value="Log In" onclick="logMeIn()" />
    </span>

</div>
4

4 に答える 4

4

他の方法でログインを送信しない場合は、ログインをフォームタグでラップする必要がある場合があります。

<form method="post" action="">
     <span id="logspan">
         <input type="email" name="email" id="email" placeholder="Email" required />
         <input type="password" name="password" id="password" placeholder="Password" required/>
         <input type="button" name="submit" style="cursor:pointer" id="submit" value="Log In" onclick="logMeIn()" />
     </span>
</form>

PHPが別のドキュメントにある場合は、アクションをフォームプロセッサに設定します

action="form-processor.php"

(njkに感謝します!)

于 2013-01-11T15:13:48.570 に答える
1

フォーム タグがありません。このように追加してください

<form method="POST" action="">
<!-- INSERT INPUTS HERE -->
</form>
于 2013-01-11T15:13:12.593 に答える
0

これを試して:

<form id="Loginform" style="background-color:fuchsia; width:100%">

<span id="logspan">
     <input type="email" name="email" id="email" placeholder="Email" required />
     <input type="password" name="password" id="password" placeholder="Password" required/>
     <input type="button" name="submit" style="cursor:pointer" id="submit" value="Log In" onclick="logMeIn()" />
    </span>

</form>
于 2013-01-11T15:14:37.957 に答える
0

まず、PHP のバージョンが PDO をサポートしている場合は、PDO を使用することをお勧めします。
次に、JavaScript関数が正しい方法でパラメーターを送信すると思います。
最後に、行数のチェックを避けることができます。単に

if($row = mysql_fetch_array($link))
{
  ...
}
else
{
  header("location: ../invalid.php");
  exit; //It's a good practice
}
于 2013-01-11T15:29:25.697 に答える