限制用户提交表单

时间:2016-02-25 12:15:31

标签: php html forms

我有一个HTML表单,其中填写并提交数据。现在我想限制用户点击提交,即我只想要提交的用户组,如果有任何其他人点击提交,则应显示消息“您无权提交”。

示例表格是:

public class TableName
{
    public Students students { get; set; }
}

[XmlRoot(ElementName = "students")]
public class Students
{
    [XmlElement(ElementName = "row")]
    public List<Row> Rows { get; set; }
}

public class Row
{
    public string StudentId { get; set; }
    public string StudentName { get; set; }
    public string Password { get; set; }
}

var ser = new XmlSerializer(typeof(TableName));
var def = new XmlSerializerNamespaces();
def.Add("", "");
var obj = ser.Deserialize("xmlPath");

在这里,我将获得用户名:

<html>
<?php echo ( !empty($_SESSION ['user']) ) ? $_SESSION ['user'] : 'USER'; ?>
<body>
<form action="action_page.php">
  First name:<br>
  <input type="text" name="firstname" value="firstname">
  <br>
  Last name:<br>
  <input type="text" name="lastname" value="lastname">
  <br><br>
  <input type="submit" value="Submit">
</form> 
</body>
</html>

这个“用户”正在从登录页面收集。如果用他们的凭据登录,他们的用户名将通过页面传递,以便进行会话。

这里的“用户”我只希望特定用户能够提交。

提前致谢。

3 个答案:

答案 0 :(得分:2)

试试这个:

编辑:

由于OP希望仅向经理人显示按钮,我们将编写一个查询来获取这些用户。

$sel='Select `usergroup` from table_name where user_id='.$_SESSION['user'];
$res=mysqli_query($con,$sel);
$row=mysqli_fetch_assoc($res);
?>

<form action="action_page.php">
  First name:<br>
  <input type="text" name="firstname" value="firstname">
  <br>
  Last name:<br>
  <input type="text" name="lastname" value="lastname">
  <br><br>

  <?php 
  // did changes here

  if($row['usergroup']=='manager') // those users who are manager
  { 
    ?>
    <input type="submit" name="submit" value="Submit">
    <?php 
  } ?>
</form> 
</body>
</html>

答案 1 :(得分:1)

您需要一个用户特定权限存储的数据库表。从会话中获取登录用户后,如果用户具有此权限,则编写选择查询,然后显示表单,否则隐藏表单并显示消息

答案 2 :(得分:1)

...并删除不允许提交的用户的表单节点,因为您可以按Enter键触发提交。

基本上将整个事情分成两个模板:

  • 一个包含您希望能够提交的用户的表单,
  • 和一个没有任何表单元素(使用常规节点代替:div,spans,...),只为那些你想要显示数据的人。
    因为如果输入字段什么都不做,那么拥有/更改输入字段是没有意义的。