Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.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_Jquery - Fatal编程技术网

Php 按用户权限隐藏输入值,但仍提交

Php 按用户权限隐藏输入值,但仍提交,php,jquery,Php,Jquery,我有一个表单,在这里我可以获得登录用户的第一个权限 在我的示例中,已简化为: $user\u privilege=1用户可以查看/编辑所有字段 $user\u privilege=2用户无法查看/编辑价格字段 然后用户可以查看/编辑表单 问题在于,如果产品具有以下值: name = "example title" description = "example description" price = 56 如果我是在提交表单期间用户权限为1的用户,则值将被更正并更新。 但是,如果我是一个没有价

我有一个表单,在这里我可以获得登录用户的第一个权限

在我的示例中,已简化为:

$user\u privilege=1
用户可以查看/编辑所有字段

$user\u privilege=2
用户无法查看/编辑价格字段

然后用户可以查看/编辑表单

问题在于,如果产品具有以下值:

name = "example title"
description = "example description"
price = 56
如果我是在提交表单期间用户权限为1的用户,则值将被更正并更新。 但是,如果我是一个没有价格特权的用户,在提交期间,$price不会被提交,默认值为空

我想要的是,如果没有编辑价格的用户提交更改(名称和说明),则不得更新价格

最好的方法是什么?我不想编辑我的实际函数insert_product和edit_product(因为我的web应用程序上还有很多类似的场景)。。。 我想得到一个隐藏在jquery端的解决方案…比如使用type=“password”和readonly(如果我没有特权的话)


Price:我建议使用javascript(jQuery)隐藏潜在的敏感功能不是继续的方式-为了防止错误访问级别的用户在phpany中执行服务器端的无效更新,您只在客户端执行的操作当然不是一个解决方案。您需要验证脚本在服务器端收到的参数。仅仅因为您将输入字段设置为只读,并不意味着在提交表单之前,我不能通过开发工具在浏览器中编辑该字段。(如果我甚至使用“浏览器”向您的站点发出请求。)我建议使用javascript(jQuery)隐藏潜在的敏感功能不是继续进行的方式-为了防止错误访问级别的用户进行无效更新,请在服务器端执行您只在客户端执行的操作,这当然不是一个解决办法。您需要验证脚本在服务器端收到的参数。仅仅因为您将输入字段设置为只读,并不意味着在提交表单之前,我不能通过开发工具在浏览器中编辑该字段。(如果我甚至使用“浏览器”向您的网站提出请求。)
Price: <input type="<?php if ( $user_privilege == 2 ) { ?>password<?php } else { ?>text<?php } ?>" name="price" id="price" value="<?php echo $price; ?>" <?php if ( $user_privilege == 2 ) { ?>readonly<?php } ?>>
<?php

   // GET USER PRIVILEGES

   $user_privilege = get_user_privileges(); // return 1 for Admin with all permission. return 2 if not permission to views/edit PRICES


   $action = "insert";
   $id = "";
   $name = "";
   $description = "";
   $price = "";

   if ( isset($_GET['id']) ) {

       $action = "edit";
       $id = $_GET['id'];
       $product = ge_product($id);
       $name = $product['Name'];
       $description = $product['Description'];
       $price = $product['Price'];
   }

   if ( isset($_POST['action']) ) {

      $name = isset($_POST['name']) ? $_POST['name'] : "";
      $description = isset($_POST['description']) ? $_POST['description'] : "";

      $price = isset($_POST['price']) ? $_POST['price'] : "";

      if ( $_POST['action'] == "insert" ) {
         $id = insert_product($name, $description, $price);
      } else {
         if ( $_POST['action'] == "edit" ) {
             edit_product($id, $name, $description, $price);
         }
      }

   }

?>

<form id="form" method="post" action="">
   Product name: <input type="text" name="name" id="name" value="<?php echo $name; ?>">
   <br>
   Description: <input type="text" name="description" id="description" value="<?php echo $description; ?>">
   <br>

   <?php if ( $user_privilege != 2 ) { ?>

   Price: <input type="text" name="price" id="price" value="<?php echo $price; ?>">
   <br>

   <?php } ?>

   <input type="hidden" name="id" value="<?php echo $id; ?>">       
   <input type="hidden" name="action" value="<?php echo $action; ?>">
   <button type="submit"><?php echo $action; ?></button>
</form>