2016-11-06 3 views
-3

PHP 페이지에서 HTML 양식의 값을 선택할 수 없습니다. 빈 문자열을 데이터베이스로 보냅니다. 다음은 HTML과 PHP 코드입니다. 오류를 찾으십시오. 나는 PHP에 익숙하지 않아 문제를 해결할 수 없다. 당신의 form 태그 내부PHP가 HTML 양식에서 데이터를 선택할 수 없습니다.

my html page: 
    <!DOCTYPE html> 

    <html > 
    <head> 
     <meta charset="UTF-8"> 

     <title>LOGIN</title> 



     <link rel="stylesheet" href="css/reset.css"> 


     <link rel='stylesheet prefetch' href='http://fonts.googleapis.com/css?family=Roboto:400,100,300,500,700,900|RobotoDraft:400,100,300,500,700,900'> 

    <link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css'> 


     <link rel="stylesheet" href="css/style.css"> 






     </head> 



    <body> 



    <!-- Mixins--> 
    <!-- Pen Title--> 

    <div class="pen-title"> 

    <h1>SYNCHPHONY</h1> 
    </div> 
    <div class="rerun"><a href="">Rerun Pen</a></div> 
    <div class="container"> 

    <div class="card"></div> 
     <div class="card"> 

     <h1 class="title">Login</h1> 

    <form name="login" action="login.php" method="POST"> 

     <div class="input-container"> 

     <input type="text" id="loginid" required="required"/> 


    <label for="loginid">Login ID</label> 

     <div class="bar"></div> 
      </div> 

     <div class="input-container"> 


     <input type="password" id="password" required="required"/> 

     <label for="password">Password</label> 

     <div class="bar"></div> 
      </div> 

     <div class="button-container"> 

     <button><span>Go</span></button> 
      </div> 


     </form> 

     </div> 

    <div class="card alt"> 
     <div class="toggle"></div> 

     <h1 class="title">Register 

    <div class="close"></div> 
     </h1> 

     <form name="register" action="register.php" method="POST"> 

    <div class="input-container"> 

     <input type="text" id="loginid" required="loginid"/> 

     <label for="loginid">Login ID</label> 

    <div class="bar"></div> 
      </div> 

     <div class="input-container"> 

     <input type="password" id="password" required="required"/> 

    <label for="password">Password</label> 

    <div class="bar"></div> 
      </div> 


    <div class="button-container"> 

     <button value'submitb'><span>Next</span></button> 
      </div> 

     </form> 

    </div> 
    </div> 


     <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> 

      <script src="js/index.js"></script> 



     </body> 
    </html> 

my php page: 

**strong text** <?php 
    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "syncphony"; 
    $loginid=""; 
    $password=""; 
    // Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    if(isset($_POST['loginid'])){ $loginid = $_POST['loginid']; } 
    if(isset($_POST['password'])){ $password = $_POST['password']; } 

    // Escape user inputs for security 
    $loginid = mysqli_real_escape_string($conn,$loginid); 
    $password = mysqli_real_escape_string($conn,$password); 

    // attempt insert query execution 
    $sql = "INSERT INTO users (loginid, password) VALUES ('$loginid', '$password')"; 
    if(mysqli_query($conn, $sql)){ 
     echo "Records added successfully."; 
    } else{ 
     echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn); 
    } 

    // close connection 
    mysqli_close($conn); 
    ?> 
+0

사이드 노트 : ** 암호를 일반 텍스트 형식으로 저장하지 마십시오. 예를 들어, md5() 해시로 저장해야합니다. 사용자가 로그인 할 때 - 암호를 해시 클라이언트 측으로 변환하고 요청에 ** 해시 **를 보내 서버 측 값과 비교합니다. –

+2

아마도 id뿐 아니라 입력에 이름을 지정하고 싶습니까? – KiwiJuicer

+0

이름 속성을 선언하지 않았습니다. $ _POST [ 'loginid']. "loginid"는 입력 된 ID가 아닌 이름이어야합니다. – zed

답변

1

inputname의이 없습니다. 로그인이 시도 :

<input type="text" id="loginid" required="required" name="loginid"/> 

을 암호 : 당신이 XSS attacks으로부터 사용자를 보호 할 수 및 암호를 저장할 때 encryption를 사용하는 경우

<input type="password" id="password" required="required" name="password"/> 

그것은 좋은 것입니다. 또한 코드를 구조화하고 HTML이 유효한지 확인해야합니다.

+1

이것이 어떻게 upvote가 없었는지 모르겠다 - 결코 받아 들여지지 않는 마음 ... +1 –

+0

@MacroMan, 고마워. –

관련 문제