PHP问题;发布隐藏价值?

时间:2010-03-12 19:50:43

标签: php post hidden-field

我有一个页面,它基本上允许管理员用户创建管理员用户类型(基本上是一个寄存器功能。所以当提交值时,它们存储在DB中,非常非常基本的东西。但是,我有一个隐藏的变量type..reasons是我有3个不同的用户级别,我已将它们声明为整数(例如7 =经理,8 =用户等)。

有人可以帮我解决如何正确传递这个隐藏值,以便它存储在数据库中......

这是我的表格:

<form id="userreg" name="userreg" method="post" action="adduser-process.php"> 
<label>Full Name:</label> <input name="fullname" size="40" id="fullname" value="<?php if (isset($_POST['fullname'])); ?>"/>
    <br />
    <label>Username:</label> <input name="username" size="40" id="username" value="<?php if (isset($_POST['username'])); ?>"/>       <br />
    <label>Password:</label> <input name="password" size="40" id="password" value="<?php if (isset($_POST['password'])); ?>"/>        <br />
    <label>Email Address:</label> <input name="emailaddress" size="40" id="emailaddress" value="<?php if (isset($_POST['emailaddress'])); ?>"/> 
    <br />
    <input name="userlevel" type="hidden" size="1" id="userlevel" value="<?php $_POST[5]; ?>" /> <br />
    <input value="Add User" class="addbtn" type="submit" /> 
    </form></div>

接下来,这是运行查询的脚本:

    <?php 

require_once "config.php";


 $fullname = $_POST['fullname'];
 $username = $_POST['username'];
 $password = $_POST['password'];
 $emailaddress = $_POST['emailaddress'];
 $userlevel = $_POST[5];


 $sql = "INSERT INTO users_tb VALUES('".$user_id."','".$fullname."','".$username."',MD5('".$password."'),'".$emailaddress."','".$userlevel."')";
 $result = mysql_query($sql, $connection)
  or die("MySQL Error: ".mysql_error());

 header("Location: administratorfrontview.php");
 exit();
 ?>  

我基本上试图为这个表单传递一个常量值为'5'的隐藏类型,因为它不会被更改...同时我在这里,由于某种原因,'fullname'不是存储在DB中!! !! WTH?所有其他字段都处理得很好。任何帮助深表感谢!谢谢。

2 个答案:

答案 0 :(得分:3)

两件事。其中一个$userlevel应该等于$_POST['userlevel']而不是5,因为POST数据并不总是按此顺序排列。二,你的insert语句应该以列名开头(以防止任何数据以错误的顺序排列)。

$sql = "INSERT INFO users_tb (id, name, username, password, email, userlevel) ".
       "('".$user_id."','".$fullname."','".$username."',MD5('".$password."'),'".
       $emailaddress."','".$userlevel."')";

答案 1 :(得分:2)

用于输出值的PHP是错误的。使用:

<?= $_POST[5]; ?>

<?php echo $_POST[5]; ?>