0

次のコードは、ユーザーがサイトへのアクセスを許可される前にデータベースで利用可能かどうかを確認しますが、ユーザーが値を入力すると、データベースに登録されていなくてもログインします。このコードの後に​​、フィールドが空でデフォルトのテキストフィールド値でない場合にそのデータベースに値が入力されないようにするために使用したJQueryコードがあります。ただし、ログインするたびに、有効なテキストの入力を求めるプロンプトが表示され、必要なフィールドに入力する前に何も実行できなくなるのではなく、ログインプロセスが続行されます。

<?php 
    if(isset($_SESSION["owner"])){
        header("Location:index.php");
        exit();
    }
?>
<?php
    require_once("includes/connection.php");
    if(isset($_POST["username"]) && isset($_POST["password"])){
        $owner = $_POST["username"];
        $password = $_POST["password"];
        $query = "SELECT id FROM users WHERE username = '$owner' AND password ='$password' LIMIT 1";
        $sql = mysql_query($query,$connection);
        $existCount = mysql_num_rows($sql);
        if($existCount == 1){   
            while($row = mysql_fetch_array($sql)){
                $id = $row["id"];
            }
            $_SESSION["id"] =$id;
            $_SESSION["owner"] = $owner; 
            $_SESSION["password"] =$password;
            echo"welcome back" .$owner."<a href=\"index.php\"> please continue</a>";
            exit();
        }
        else{
            header("Location:login.php");
            exit();
        }
    }
    require_once("includes/header.php");
?>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js?ver=3.2.1'></script>
<script type='text/javascript' src='/bobs/admin/javascript/login.js'></script>
<div class="cBoth"></div>
<div id="sep"></div>

<div class="Calign">
<div id="formcontent">

<div class="flotr">
 <h2>Book faster every time</h2> 
 <br/>
 <p class="widthis">Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source.</p>
</div><!-- end of flotr div text --->

<div class="flotr">
<div id="errordisplay"></div>
   <fieldset class="spacing">
   <form method="post" action="admin/formProc/formproc.php" id="frmnewuser">
     <h2>New to Travelnstay ?</h2>
     <p class="widthis">A Travelnstay account is required to continue.</p> 
     <p class="formsp">Username</p>
     <p><label><input type="text" name="username" height="15px"  value="Username "id="username"/><label></p>
     <p class="formsp">Email</p>
     <p><label><input type="text" name="email" value="Your Email" id="email"/><label></p>
     <p class="formsp">Re-email</p>
     <p><label><input type="text" name="reemail" value="Retype your Email"  id="reemail"/><label></p>
     <p class="formsp">Password</p> 
     <p><label><input type="password" name="password" id="password"/><label></p>
     <p class="formsp">Re-password</p>
     <p><label><input type="password" name="repassword" id="repassword" /><label></p>
     <p class="formsp"><label><input type="submit" name="newuser" value="SING ME UP"/><label></p>
   </form>
  </fieldset>
</div><!-- end of flotr div sign up--->




<div class="flotl">
   <fieldset class="spacing">
   <form method="post" action="login.php">
   <h2>Sign in</h2>
   <p class="widthis">You need to log in to access your account.</p> 
   <p class="formsp">Username</p>
   <p><input type="text" name="username"  value="username" id="usernamelog"/></p>
   <p class="formsp">Password</p>
   <p><input type="password" name="password"  /></p>
   <p></p>
   <p class="formsp"><label><input type="submit" name="login" value="Login"/><label></p>   
   </form>
   </fieldset>
</div><!-- end of flotl div login--->


 </div>
</div>


<div class="cBoth"><!-- clear Both--></div> 
<!--<script src="/bobs/admin/javascript/formscript.js"></script>-->
<?php require_once("includes/footer.php"); ?>

次の行はJQueryコードです。

$(document).ready(function(){
    //this will waip out anyhting in that text field.    
    $("#usernamelog").click(function(){
        $(this).val("");
        $(this).css("color","#741863");
    });          
    $("input:submit").click(function(){
        var username = $("#usernamelog").val();            
        if((username == "")||(username == "username")){
           alert("Please enter a valid username");
        }          
    });
});
4

2 に答える 2

2

送信プロセスを停止する必要があります。クリックハンドラからfalseを返すと、これを実行できます。

  $("input:submit").click(function(){
    var username = $("#usernamelog").val();

    if((username == "")||(username == "username")){
       alert("Please enter a valid username");
       return false;
    }

  });
于 2012-08-05T08:48:37.057 に答える
1

以下を使用してデフォルトの動作を防ぐ必要がありますreturn false

if(username == "" || username == "username") {
  alert("Please enter a valid username");
  return false;
}

を使用することもできますpreventDefault()。また、@ event.preventDefault()とreturnfalseを確認してください。

于 2012-08-05T08:47:40.910 に答える