如何使用php将隐藏的字段数据插入数据库

时间:2016-02-03 12:32:23

标签: php html mysql

嗨登录网站iam在登录后填写表格时在隐藏字段中获取用户名我需要在数据库中插入用户名。但是我收到错误

注意:未定义索引:电子邮件

这是我的代码

的index.php

<?php  
$username = $_SESSION['username'];
if($username) 
{ 
?>
<h3> Welcome <?php echo $username; ?></h3>
<?php 
}  
else 
{ 
echo "no"; 
} 
?> 
<body>       
    <input type='hidden' value="<?php echo $username; ?>" name='email'>        
    <input type="button" value="Logout" id="logout" onClick="document.location.href='login.php'" />    
    <form method="post" action="details.php" id="myform">            
        <ul class="tab-content">
                <li class="tab-pane active" id="salary">                
                            <h3>Details</h3>
                            <table style="border-collapse: collapse;border: 1px solid black;">
                            <tr class="spaces">
                              <th>User Name</th></tr>
                              <tr>
                              <td><input type="text" name="user_name" value="" required /></td>
                              </tr>

details.php

<?php
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());
$db = mysql_select_db("accountant", $connection);
$email=$_POST['email'];
$name=$_POST['user_name'];
$query=mysql_query("INSERT INTO user_details(email,user_name)values('$email','$name')");

任何人都可以提前帮助我

填写此表单时,我还需要在数据库中插入隐藏字段值

6 个答案:

答案 0 :(得分:1)

您隐藏的字段必须在您的表单中。否则,其值不提交表单操作,您将收到未定义的通知

<form method="post" action="details.php" id="myform"> 
 <input type='hidden' value="<?php echo $username; ?>" name='email'>      

--- rest code---

 <input type="button" value="Logout" id="logout" onClick="document.location.href='login.php'" />  

</form>

答案 1 :(得分:1)

您收到未定义的索引通知,因为您没有在<form></form>

中使用隐藏的输入
<input type='hidden' value="<?php echo $username; ?>" name='email'>

请记住隐藏或可见的归档,您将在<form></form>内定义,否则您将收到通知。

旁注:

请使用mysqli_*PDO扩展名,因为mysql_*已弃用且在PHP 7中不可用。

还有一个问题,您的提交按钮也位于<form>旁边,但它会起作用,因为您正在使用onclick()事件,但这不是一个好习惯。

您的代码对 SQL注入是开放的,您需要使用SQL注入来防止。

最后一件事,我希望您在文件的顶部使用session_start()在原始代码中获取$_SESSION['username'];,请重新检查。

答案 2 :(得分:0)

尝试将该字段放在表单标记中,然后就完成了。

<?php
    $username = $_SESSION['username'];
    if($username){?>
        <h3> Welcome <?php echo $username; ?></h3>
    <?php } else {
        echo "no";
    }
?>
<body>
    <input type="button" value="Logout" id="logout" onClick="document.location.href='login.php'" />
    <form method="post" action="details.php" id="myform">
        <input type='hidden' value="<?php echo $username; ?>" name='email'>
        <ul class="tab-content">
            <li class="tab-pane active" id="salary">
                <h3>Details</h3>
                <table style="border-collapse: collapse;border: 1px solid black;">
                    <tr class="spaces">
                        <th>User Name</th>
                    </tr>
                    <tr>
                        <td>
                            <input type="text" name="user_name" value="" required />
                        </td>
                    </tr>

答案 3 :(得分:0)

的index.php

<?php  
$username = $_SESSION['username'];
if($username) 
{ 
?>
<h3> Welcome <?php echo $username; ?></h3>
<?php 
}  
else 
{ 
echo "no"; 
} 
?> 
<body>       

<input type="button" value="Logout" id="logout" onClick="document.location.href='login.php'" />    
<form method="post" action="details.php" id="myform">            
    <ul class="tab-content">
            <li class="tab-pane active" id="salary">
  <input type='hidden' value="<?php echo $username; ?>" name='email'>                 
                        <h3>Details</h3>
                        <table style="border-collapse: collapse;border: 1px solid black;">
                        <tr class="spaces">
                          <th>User Name</th></tr>
                          <tr>
                          <td><input type="text" name="user_name" value="" required /></td>
                          </tr>

答案 4 :(得分:0)

<?php
  session_start();
  // you have to start the session in order to work with php session.  
  $username = $_SESSION['username'];  
?>

答案 5 :(得分:0)

> <form method="post" action="details.php" id="myform">   <input
> type='hidden' value="<?php echo $username; ?>" name='email'>      
> 
>  <input type="button" value="Logout" id="logout"
> onClick="document.location.href='login.php'" />  
> 
> </form>

隐藏类型始终包含隐藏值