我有一个页面,它基本上允许管理员用户创建管理员用户类型(基本上是一个寄存器功能。所以当提交值时,它们存储在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?所有其他字段都处理得很好。任何帮助深表感谢!谢谢。
答案 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]; ?>