2015-01-15 3 views
0

양식을 제출하기 전에 javascript를 사용하여 양식의 유효성을 검사하고 싶습니다. 서버가 입력란 아래에 오류 (있는 경우)를 표시하고 싶습니다.이 코드에서 dis를 할 수 있습니까? 외부 자바 스크립트 파일을 사용하여 ??자바 스크립트를 사용하여 양식 유효성을 검사하는 방법

<!DOCTYPE HTML> 
    <html> 
    <head> 
    <style> 
    .error {color: #FF0000;} 
     .label_text { 
float: left; 
width: 44%; 
text-align:right; 
font-weight:bold; 
color:purple; 
} 
.register1{ 
text-align:center;} 
.header_tag{text-align:center; 
font-weight:bold; 
color:green;} 
.header_tag1{ margin:10px; 
float:left; 
text-align:center; 
font-weight:bold; 
color:green} 
.register_section{border:1px solid black; 
text-align:center; 
padding:20px; 
margin-left:30%; 
margin-right:30%; 
float:none; 
height:350px; 
} 
.input{ text-align:left; 
float:left; 
border:2px solid black; 
} 
.gender{float:left;} 
.register{ float:left; 
text-align:center; 
color:green; 
font-weight:bold; 
padding:10px; 
margin-left:36%;} 
    </style> 
    </head> 

    <body> 

    <?php 
    // define variables and set to empty values 
    $nameErr = $passwordErr = $password2Err = $emailErr = $genderErr = ""; 
    $name = $password = $confirmpassword = $email = $gender = $description = ""; 
$result=""; 

    if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     $username = ""; 
    $password = ""; 
    $hostname = ""; 
    //connection to the database 
    $dbhandle = mysql_connect($hostname, $username, $password) 
    or die("Unable to connect to MySQL"); 
    echo "Connected to MySQL<br>"; 
    //select a database to work with 
    $selected = mysql_select_db("test",$dbhandle) 
     or die("Could not select test"); 

     if (empty($_POST["name"])) { 
     $nameErr = "Name is required"; 
     } else { 
     $name = test_input($_POST["name"]); 
     if (!preg_match("/^[a-zA-Z ]*$/",$name)) { 
      $nameErr = "Only letters and white space allowed"; 
     } 
     } 
     if (empty($_POST["password"])) { 
     $passwordErr = "Password is required"; 
     } else { 
     $password = test_input($_POST["password"]); 
     } 
     if (empty($_POST["confirmpassword"])) { 
     $password2Err = "Confirm Password"; 
     } else { 
     $password = test_input($_POST["confirmpassword"]); 
     } 
     if ($_POST['password']!= $_POST['confirmpassword']) 
    { 
     echo("Oops! Password did not match! Try again. "); 
    } 

     if (empty($_POST["email"])) { 
     $emailErr = "Email is required"; 
     } else { 
     $email = test_input($_POST["email"]); 
     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
      $emailErr = "Invalid email format"; 
     } 
     } 

     if (empty($_POST["description"])) { 
     $comment = ""; 
     } else { 
     $comment = test_input($_POST["description"]); 
     } 

     if (empty($_POST["gender"])) { 
     $genderErr = "Gender is required"; 
     } else { 
     $gender = test_input($_POST["gender"]); 
     } 

    if (empty($genderErr)) 
    {if (empty($emailErr)){ 
     if (empty($password2Err)){ 
      if (empty($passwordErr)){ 
       if (empty($nameErr)){ 

      $result=mysql_query("SELECT * FROM person WHERE username ='$name' AND password='$password'AND Email='$email'"); 
    if (mysql_num_rows($result)==0 ) 
     { // IF no previous user is using this username. 


       $result1=mysql_query("INSERT INTO person(username,password,Email,Gender) VALUES ('$name', '$password','$email','$gender')"); 


       { if($result1) 
       ////If the Insert Query was successfull. 

        // Send an email 

        // Finish the page: 
        { 
        echo '<div class="success">Thank you for registering! A confirmation email has been sent to ' . $email . ' </div>'; 

       } 
       else 
       { // If it did not run OK. 
        echo '<div class="errormsgbox">You could not be registered due to a system error. We apologize for any inconvenience.</div>'; 
       } 
       } 

      } 


      // The username is not available. 
      else 
      { echo '<div class="errormsgbox" >That username has already been registered.</div>'; 
      } 
      } 
     } 
    } 
     } 
    } 
    } 



    function test_input($data) { 
     $data = trim($data); 
     $data = stripslashes($data); 
     $data = htmlspecialchars($data); 
     return $data; 
    } 

    ?> 
<div class="register1"> 
    <h2 class="header_tag">REGISTER HERE</h2> 
    <p><span class="error"></span></p> 
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
      <div class="register_section"> 
    <div class="label_text"> 
     Name:<span class="error">* </div> 
    <div class="input"> 
    <input type="text" name="name"><br> </div> 
     <span class="error"><?php echo $nameErr;?></span> 
     <br><br> 
     <div class="label_text"> 
     Password:<span class="error">* </div> 
     <div class="input"> 
     <input type="text" name="password"><br> </div> 
     <span class="error"><?php echo $passwordErr;?></span> 
     <br><br> 
     <div class="label_text"> 
     Confirm Password:<span class="error">* </div> 
     <div class="input"> 
     <input type="text" name="confirmpassword"><br> </div> 
     <span class="error"><?php echo $password2Err;?></span> 
     <br><br> 

     <div class="label_text"> 
     E-mail:<span class="error">* </div> 
     <div class="input"> 
     <input type="text" name="email"><br></div> 
     <span class="error"><?php echo $emailErr;?></span> 
     <br><br> 
     <div class="label_text"> 
     Description: </div> 
     <div class="input"> 
     <textarea name="description" rows="5" cols="22"></textarea> </div> 
     <br><br> 
     <div class="label_text"> 
     Gender:<span class="error">* </div> 
     <div class="gender"> 
     <input type="radio" name="gender" value="female">Female 
     <input type="radio" name="gender" value="male">Male 
     </div> 
     <span class="error"><?php echo $genderErr;?></span> 
     <br><br><br> 
     <div class="register"> 
     <input type="submit" name="submit" value="REGISTER"> 
     <br> 
     <h3 class="header_tag1">"<a href="login_access.php">Back to Login</a> 
     </div> 

     </div> 
     </div> 
    </form> 



    </body> 
    </html> 
+1

새 경험이 있으니 먼저 여기를 둘러 보시고 싶습니다. http://stackoverflow.com/tour 그렇다면 다음을 읽어보십시오. http://stackoverflow.com/help/how-to -ask 그리고 마지막에 MCVE를 만들려고합니다. http://stackoverflow.com/help/mcve – Rizier123

+0

채팅 룸을 사용하지 말아 주셔서 감사합니다. 추가로 몇 가지 입력 할 필요가없는 것처럼 보입니다. 문자를 사용하여 질문을 읽을 수있게 만들면 대개 누군가 편집 작업을하게됩니다. 이전 연구 및 노력을 특징으로하는 명확하고 간결한 질문은 여기에 크게 감사드립니다! – halfer

+2

죄송합니다. 'test_input'은 가능한 모든 필터링 기능 **을 사용합니다 **. 여기에 mysql_real_escape_string을 사용해야한다. 트리밍은 괜찮지 만'stripslashes'는 잘못되었으며'htmlspecialchars'는 입력이 아니라 출력 레이어에 속합니다. – halfer

답변

1

당신이 할하려고하는 것은 적절 클라이언트 측 유효성 검사라고 :

여기 내 코드입니다.

가장 쉬운 방법은 타사 라이브러리 (예 : FormValidation)를 사용하는 것입니다.

예를 들어, 이메일 필드를 검증하기 위해, 당신은 같은 것을 할 수있는 : 물론

<form method="post" id="register_user" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
    ... 
    <input type="text" name="email" data-fv-emailaddress="true" data-fv-emailaddress-message="The value is not a valid email address" /> 
    ... 
</form> 

<script> 
$('#register_user').submit(function() { 
    $('#register_user').formValidation(); 
}); 
</script> 

을, 당신은 jQuery를, FormValidation에 필요한 CSS와 JS 라이브러리를 포함해야해야하고 있습니다 적합한 콘텐츠 프레임 워크 (예 : 부트 스트랩).

기본 사용자 관리 스크립트를 찾고 있다면 기록을 다시 작성하지 않는 것이 좋습니다. 기존 스크립트 (예 : UserFrosting)를 가져 와서 필요에 맞게 수정하십시오.

관련 문제