2013-08-06 3 views
0

이 HTML 코드로 작업하는이 PHP 코드를 얻으려고합니다. PHP는 혼자 작동하지만, HTML 형식을 사용하려고 할 때 PHP 코드를 사용하면 아무 것도하지 않습니다. 나는 이것을 알아 내려고 노력했지만 성공하지는 못했다. 누군가 내가 뭘 잘못하고 있는지 설명해 주실 수 있습니까?PHP에서 html 작업을 수행하는 방법

if(isset($_POST['submit'])){ 

그러나 양식은 어떤 입력 submit 이름이없는 :


<?php 

include_once("config.php"); 
if(isset($_POST['submit'])){ 
     //Perform the verification 

     $uname = $_POST['uname']; 
     $email = $_POST['email']; 
     $email2 = $_POST['email2']; 
     $pass = $_POST['pass']; 
     $pass2 = $_POST['pass2']; 

     if($email == $email2){ 
     if($pass == $pass2){ 
      //All good. Carry on. 

     $query = $sql->prepare("INSERT INTO login (uname, email, pass) VALUES (?, ?, ?)"); 
     $query->bind_param('sss', $uname, $email, $pass); 
     $query -> execute(); 
     header("Location: index.html"); 

     }else{ 
      echo "Passwords do not match.<br />"; 
      exit(); 
      } 
     }else{ 
      echo "Emails do not match.<br /><br />"; 
      exit(); 
      } 
    $sql->close(); 
    $query->close(); 
     } 
?> 



<html> 

    <head> 
     <meta charset="UTF-8" /> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
     <link rel="stylesheet" type="text/css" href="css/style.css" /> 
    </head> 
    <body> 
     <div class="container"> 


      <section>    
       <div id="container_demo" > 
        <a class="hiddenanchor" id="tologin"></a> 
        <div id="wrapper"> 


         <div id="login" class="animate form"> 
          <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
           <h1> Sign up </h1> 
           <p> 
            <label for="usernamesignup" class="uname" data-icon="u">Username</label> 
            <input id="usernamesignup" name="usernamesignup" required="required" type="text"/> 
           </p> 
           <p> 
            <label for="emailsignup" class="email" data-icon="e"> Your email</label> 
            <input id="emailsignup" name="emailsignup" required="required" type="email"/> 
           </p> 
           <p> 
            <label for="emailsignup" class="email2" data-icon="e">Confirm your email</label> 
            <input id="emailsignup" name="emailsignup" required="required" type="email"/> 
           </p> 
           <p> 
            <label for="passwordsignup" class="pass" data-icon="p">Your password </label> 
            <input id="passwordsignup" name="passwordsignup" required="required" type="password"/> 
           </p> 
           <p> 
            <label for="passwordsignup_confirm" class="pass2" data-icon="p">Please confirm your password </label> 
            <input id="passwordsignup_confirm" name="passwordsignup_confirm" required="required" type="password"/> 
           </p> 

           <p class="signin button"> 
            <input type="submit" value="Sign up"/> 
           </p> 
           <p class="change_link"> 
            Already a member ? 
            <a href="index.html" class="to_register"> Go and log in </a> 
           </p> 
          </form> 
         </div> 

        </div> 
       </div> 
      </section> 
     </div> 
    </body> 
</html> 
+3

파일 확장자를'.php'로 변경 했습니까? –

+1

@Akam 질문을 신중하게 읽으십시오. OP는 PHP가 단독으로 작동한다고 말합니다. :) –

+0

Didi를 사용하면 apache.conf에서 PHP가 활성화되었는지 확인할 수 있습니까? 어떤 OS, Server + Version, PHP 버전을 사용하고 있습니까? – cb0

답변

0

제출 버튼의 이름을 지정하지 않았습니다.

<input type="submit" value="Sign up"/> 

이름이 없으면 input의 값이 서버로 전송되지 않습니다. 기본적으로 양식을 제출하면 if(isset(을 찾아 전체 코드를 건너 뜁니다.

+0

좋아요. 이름을 바 꾸었습니다. 이제는 PHP 코드가 필요하지 않은 것처럼 인덱스로 이동합니다. – user2644017

+0

테스트가 끝날 때까지'header ("Location : index.html");'부분을 주석 처리하십시오. –

+0

MySQLi 함수가 반환하는 오류를 테스트합니다. 스크립트의 맨 위에있는 –

2

귀하의 문제가 submit라는 포스트 변수가 있는지 검사하고, 여기에있다. 이 게시물 데이터에 존재 제출 버튼에 의존하지 않기 때문에 REQUEST_METHOD가 더 확인

if($_SERVER['REQUEST_METHOD'] == 'POST'){ 

: 나는로 변경하는 것이 좋습니다.

+0

+1, 이것을 제안하려고했습니다. 또 다른 제안은 숨겨진 입력 필드를 'hidden'또는 뭔가의 이름으로 생성 한 다음 여전히'isset ($ _ POST [ 'hidden'])'을 할 수 있지만이 방법이 더 좋습니다. – Albzi

0

제출 버튼에 name="submit" 속성을 추가해야합니다. 그렇지 않으면 $_POST['submit']이 설정되지 않으며 아무 것도 일어나지 않습니다.

0

추가 정보 : HTML 텍스트 상자 이름이 $ _POST 변수와 일치하지 않습니다. 예를 들어 <input type="text" name="usernamesignup" />은 $ _POST [ "uname"]가 아닌 $ _POST [ "usernamesignup"] 여야합니다.

+0

Mark와 Mihai에게 감사드립니다! 두 분 모두의 도움으로 이제는 효과적입니다. – user2644017

관련 문제