在会话期间将数据插入数据库

时间:2015-01-01 11:16:53

标签: php mysql session insert

我正在使用会话构建一个三部分注册系统。第一部分在主页上,这里有一个名为form1的登录名和一个名为form2的注册表。这个问题是关于注册形式2。在form2中,用户将电子邮件和密码插入到数据库表中,并自动创建iduser。创建会话,这部分工作正常。在使用会话的signup_part2.php中,我回显iduser和电子邮件以证明信息已插入数据库。然后在signup_part2.php中有第二种形式,但是当我点击提交时,没有任何内容被插入到数据库表中的那些用户的字段中。 如何在用户会话期间将数据插入数据库表?

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 = '458mn$8n@bty67mg%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;
}
?>

1 个答案:

答案 0 :(得分:0)

发现我的错误

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

应该是

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