Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 限制用户提交表单_Php_Html_Forms - Fatal编程技术网

Php 限制用户提交表单

Php 限制用户提交表单,php,html,forms,Php,Html,Forms,我有一个填充和提交数据的HTML表单。现在我想限制用户点击提交,即我只想要一组我想点击提交的用户,如果任何其他人点击提交,消息应显示为“您无权提交” 表格示例如下: <html> <?php echo ( !empty($_SESSION ['user']) ) ? $_SESSION ['user'] : 'USER'; ?> <body> <form action="action_page.php"> First name:<br&g

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

表格示例如下:

<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>

名字:

姓氏:


在这里,我可以从以下位置获取用户名:

<?php echo ( !empty($_SESSION ['user']) ) ? $_SESSION ['user'] : 'USER'; ?>

此“用户”正在从登录页面收集信息。任何使用其凭据登录的用户,其用户名都将在页面中传递,以便进行会话

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


提前感谢。

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

尝试以下操作:

编辑:

因为OP希望只向经理显示按钮,所以我们将编写一个查询来获取这些用户

$sel='从表'u name'中选择'usergroup',其中user_id='。$'u会话['user'];
$res=mysqli\u查询($con,$sel);
$row=mysqli\u fetch\u assoc($res);
?>
名字:

姓氏:



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

基本上将整个内容分为两个模板:

  • 一个是你想要提交的用户的表单
  • 对于只想显示数据的节点,可以使用不带任何表单元素的节点(使用常规节点:div、span等)。
    因为如果输入字段不起任何作用,那么设置/更改输入字段是没有意义的

我想你说的是权限?你在哪里使用jQuery?当用户不允许使用提交按钮时,你不觉得不显示提交按钮更容易吗?(只是好奇)最好不要将表单显示给无法进行更改的用户,或者至少对于无法按下表单的用户,不要将提交按钮放在表单上。这一切都可以通过生成表单的PHP代码实现。这实际上是一个示例表单。在实际表单中,我有其他信息,必须向所有用户显示@Ed de Almeida是的,对于未经授权的用户,关闭按钮可以隐藏。您能告诉我如何操作吗?我希望显示表单,但只需要对提交按钮拥有权限,因为我有其他必须对所有用户可见的信息。所有用户都可以登录,但是所有的用户只有很少的几个可以提交..但是在这里谁登录过都可以提交..所以,你的条件是什么@user5358888,你想显示哪个用户的按钮?请说明情况,以便我能在这方面帮助你,我会在这里回显db的一些信息,除此之外,还将有输入字段。每个人都应该能够查看正在回送的数据,但只有少数用户能够提交其中键入的某些信息。例如,员工应该能够查看信息,但只有经理才能键入信息并提交it@user5358888,所以你的db-like管理器中必须有任何条件/组,所以我们可以使用我刚刚发布的表单作为示例进行管理…但是我回显了db中的一些数据。每个用户都可以登录,但我只希望少数用户单击“提交”,其他人应该可以查看db中的信息..我明白了,但在第一步中,您禁用了提交按钮,然后遇到问题,即表单是通过按enter键发送的,然后您可能会与onsubmit事件处理程序发生冲突,然后有人提交错误,他/她无法提交表单或诸如此类的事情(即,您的页面已损坏,请立即修复!),然后。。。无论什么长距离短距离:分开视图,显示每组各自的视图。如果用户不能使用表单或输入,则不要显示表单或输入。通过提交表单或一些JS更新视图。您能告诉我如何为用户分离视图吗?通过将模板分离为两个不同的文件/函数/类,分别为一个组创建标记,您只需选择在此处调用哪个文件/函数/类。一旦您必须管理第三个组,或者视图开始分散,混合模板就会变得更加复杂(您说不会发生这种情况;我也经常这么说,这是错误的)。如果您担心冗余,请将这些共享部分拆分为外部文件/功能/模块;我不想说你应该重复你自己。
$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>