2015-01-01 4 views
0

세션을 사용하여 3 부분으로 구성된 가입 시스템을 구축 중입니다. 첫 번째 부분은 홈페이지에 있으며 form1이라는 로그인과 form2라는 가입이 있습니다. 이 질문은 sign2에 관한 것입니다. form2에서 사용자는 전자 메일과 암호를 DB 테이블에 삽입하고 iduser는 자동으로 자동 생성됩니다. 세션이 만들어지고,이 부분은 잘 작동합니다. signup_part2.php 세션에서 나는 정보가 데이터베이스에 삽입되었음을 증명하기 위해 iduser와 email을 출력합니다. 그런 다음 signup_part2.php에 두 번째 양식이 있지만 제출을 클릭하면 아무 것도 해당 사용자의 필드에 데이터베이스 테이블에 삽입되지 않습니다. 사용자 세션 중에 어떻게 DB 테이블에 데이터를 삽입 할 수 있습니까?세션 중에 데이터베이스에 데이터 삽입

home.php

<?php 
session_start(); 
require('connect.php'); 
require('header.php'); 
$form1 = <<<EOT 
<div id="homebox1"> 
    <div id="logohome"> 
     <h2>Welcome</h2></br> 


    </div> 
    <div id="homecolumn1"> 
     <p>Login</p></br> 
     <form id="login" action="home.php" method="POST"> 
      <input name="emaillogin" placeholder="email" type="email" rows="20"> </input></br> 
      <input name="passwordlogin" placeholder="password" type="password" rows="20"> </input></br> 
      <input type="submit" name="submita" value="Log In"> </input> 
     </form> 
    </div> 

EOT; 
$form2 = <<<EOT 

    <div id="homecolumn2"> 
     <p>Sign Up</p></br> 
     <form id="signuppart1" action="home.php" method="post"> 
      <input name="signupemail" placeholder="email" type="email" rows="20" required> </input></br> 
      <input pattern="(?=^.{8,50}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$" name="signuppassword" placeholder="password" type="password" rows="20" required> </input></br> 
      <input name="submitb" type="submit" value="Sign Up"> </input> 
</form> 
    </div> 

EOT; 
$footer = <<<EOT 
    <div id="footerhome1"> 


    </div> 
</div> 

EOT; 


/*-------------------------------------form1----------------------------------------*/ 
if(isset($_POST['submita'])){ 
    $email = mysql_escape_string($_POST['emaillogin']); 
    $pass = mysql_escape_string($_POST['passwordlogin']); 

    $salt = '[email protected]%563!&78fj^543*41s'; 
    $pass = md5($pass . $salt); 




$sql = mysql_query ("SELECT * FROM `profile` WHERE `email` = '$email' AND `password`= '$pass' "); 
if(mysql_num_rows($sql) > 0){ 
    // ADDITIONAL CODE //pull userdata from db 
    while($row = mysql_fetch_array($sql)){ 
     $_SESSION['logged_in']['fnlname'] = $row['fnlname'];  
     $_SESSION['logged_in']['username'] = $row['username']; 
     $_SESSION['logged_in']['gender'] = $row['gender']; 
    } 
    // END ADDITIONAL CODE 



    header('location: profile.php');  

}else{ 
echo <<<EOT 
<div id="homebox1"> 
    <div id="logohome"> 
     <h2>Welcome</h2></br> 


    </div> 
    <div id="homecolumn1"> 
     <p>Login</p></br> 
     <form id="login" action="home.php" method="POST"> 
      <input name="emaillogin" placeholder="email" type="email" rows="20"> </input></br> 
      <input name="passwordlogin" placeholder="password" type="password" rows="20"> </input></br> 
      <input type="submit" name="submita" value="Log In"> </input> 
       <p style="color:red;">"Wrong password or username"</p> 
     </form> 
    </div> 

EOT; 

} 
}else{ 

echo $form1; 
} 
/*-------------------------------------form2----------------------------------------*/ 
if(isset($_POST['submitb'])){ 
    //perform verification 
    $email1 = $_POST['signupemail']; 
    $pass1 = $_POST['signuppassword']; 
      if ($pass1 == NULL){ 

        echo <<<EOT 
    <p style="color:red;">"Enter a password"</p> 


EOT; 
      exit(); 
     } 


    $email1 = mysql_escape_string($email1); 
    $password = mysql_escape_string($pass1); 
$salt = 'justasalt'; 
     $password = md5($password . $salt); 
$sql2 = mysql_query("SELECT * FROM `profile` WHERE `email` = '$email1' "); 
     if(mysql_num_rows($sql2) > 0){ 
      echo $form2; 
        echo <<<EOT 

       <p style="color:red;">"Sorry, that email already exists!"</p> 





EOT; 

      exit(); 
     } 
else{ 







     mysql_query("INSERT INTO `profile` (`iduser`, `password`, `email`)VALUES(NULL, '$password', '$email1')"); 
     $sql = mysql_query ("SELECT * FROM `profile` WHERE `email` = '$email1' AND `password`= '$password' "); 
if(mysql_num_rows($sql) > 0){ 
    // ADDITIONAL CODE //pull userdata from db 
    while($row = mysql_fetch_array($sql)){ 
     $_SESSION['logged_in']['iduser'] = $row['iduser'];  
     $_SESSION['logged_in']['fnlname'] = $row['fnlname'];  
     $_SESSION['logged_in']['username'] = $row['username']; 
     $_SESSION['logged_in']['gender'] = $row['gender']; 
     $_SESSION['logged_in']['location'] = $row['location'];  
     $_SESSION['logged_in']['website'] = $row['website']; 
     $_SESSION['logged_in']['age'] = $row['age'];  
     $_SESSION['logged_in']['joined'] = $row['joined'];   
     $_SESSION['logged_in']['email'] = $row['email'];  
    } 
     header("location: signup_part2.php"); 

     } 
} 
} 
else{ 

echo $form2; 
} 


?> 

signup_part2.php

<?php 
session_start(); 
include "connect.php"; 
include "header.php"; 
$iduser=$_SESSION['logged_in']['iduser']; 
$sql = mysql_query("SELECT * FROM `profile` WHERE `iduser` = '$iduser' ");  
        while($row = mysql_fetch_array($sql)){ 
        $iduser = $row['iduser']; 
        $password = $row['password']; 
        $email = $row['email'];      
        $fnlname = $row['fnlname'];  
        $username = $row['username']; 
        $joineddate = $row['joineddate'];      
        $gender = $row['gender']; 
        $age = $row['age']; 
        $location = $row['location']; 
        $website = $row['website'];       





}      
echo "$iduser $password $email";        
$form1 = <<<EOT 
<div id="homebox1"> 
    <div id="logohome"> 
     <h2>Welcome</h2></br> 


    </div> 
    <div id="signupcolumn1"> 
     <p>Please fillout your info</p> 
     <form id="signup2" action="signup_part2.php" method="POST"> 
      <p><input name="fnlname" placeholder="First and Last Name" type="text" size="50" required>*</br> 
      <input name="username" placeholder="Username" type="text" size="50" required>*</br>   
      <input name="age" placeholder="Your Age" type="" size="50" required>*</br></p> 
<p><input style="text-align:left;" type="radio" name="gender" value="male"/>Male</br> 
<input style="text-align:left;" type="radio" name="gender" value="female"/>Female</br> 
<input style="text-align:left;" type="radio" name="gender" value="blank"/>Leave Blank</br></p> 


      <p><input name="location" placeholder="Location" type="" size="50" >Opt.</br> 
      <input name="website" placeholder="Website" type="" size="50">Opt. </br></p> 
      <input name="joineddate" placeholder="joineddate" type="hidden" size="50"> 
      <input type="submit" name="submita" value="Next"> 
    </div> 
     </form> 


EOT; 
if(isset($_POST['submita'])){ 
    //perform verification 
    $fnlname = $_POST['fnlname']; 
    $username = $_POST['username']; 
    $age = $_POST['age']; 
    $gender = $_POST['gender']; 
    $location = $_POST['location']; 
    $website = $_POST['website']; 
    $joineddate = $_POST['joineddate']; 
$iduser=$_SESSION['logged_in']['iduser']; 
     /*$fnlname = mysql_escape_string($fnlname); 
     $username = mysql_escape_string($username); 
     $age = mysql_escape_string($age); 
     $gender = mysql_escape_string($gender); 
     $location = mysql_escape_string($location); 
     $website = mysql_escape_string($website); */ 
$sql1 = mysql_query("SELECT * FROM `profile` WHERE `username` = '$username' "); 
     if(mysql_num_rows($sql1) > 0){ 
      echo "Sorry, that username already exists!"; 

      }else{ 



     mysql_query("UPDATE profile SET fnlname='$fnlname' joineddate='$joineddate' gender='$gender' age='$age' location='$location' website='$website' WHERE iduser=$iduser "); 


      } 



}else{ 
echo $form1; 
} 
?> 
+0

mysql_ 함수는 더 이상 사용되지 않습니다. [mysqli] (http://php.net/manual/en/book.mysqli.php) 또는 [PDO] (http://php.net/manual/tr/book.pdo .php)를 mysql_function 대신에 사용한다. – salep

+0

왜 삽입 쿼리에 null 값을 전달합니까 –

+0

내 실수로 제출 이름이 게시 된 submita와 같지 않음을 발견했습니다. –

답변

0

를 찾을 수 내 실수

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

는해야

if(isset($_POST['submita'])) 
관련 문제