【问题标题】:Jquery - GET url value and store in a variableJquery - 获取 url 值并存储在变量中
【发布时间】:2015-01-21 16:15:13
【问题描述】:

我想从我的 url 中获取值并将其存储在一个变量中,以便在我的 sql 查询中将其用作 where 语句。我的 admin_id 很好,但 $x 不起作用。

这是我得到的。

网址http://localhost/ict138final/admin/Aviewrecords.php?edit=2

查询

  $id=$_POST['admin_id'];
  $x=$_POST['edit'];

  $query=mysql_query("DELETE FROM passed_deliverable WHERE deliverable_id={$id} && user_id={$x} ");



 function Delete() {
  window.location.reload();
  lol = $('#wee').text();
  var bayotmarkyu = "<?php  echo $_GET['edit'];  ?>"; 
     $.ajax({   
       type:'POST',
       url:'Adeletedeliverable.php',
       data: {admin_id:lol,edit:bayotmarkyu},
       success: function(data) {
        }
        });
 }

【问题讨论】:

  • {$id} ... {x} - 一个标识符有 $ ,另一个没有.... GET!=POST
  • 如果你想要GET,那你为什么要使用POST?无论如何,您还应该在查询中使用用户输入之前对其进行过滤、检查、清理。
  • 可能有点离题,但您只是要求被黑客入侵。您应该过滤用户输入并使用准备好的语句。此外,不推荐使用 mysql,因此请改用 PDO。
  • $("[name='admin_id']").val("'DROP TABLE passed_deliverable"); 在您的代码中可能有点危险。请使用更安全的 mysql_* 原型,例如 mysqli 或 PDO,您的代码实际上暴露于 sql 注入跨度>
  • 我使用 GET 因为值来自我的 URL,我使用 POST 因为另一个值来自表格行。 @VolkerK

标签: javascript php jquery mysql sql


【解决方案1】:

尝试使用$_POST 分配admin_id 和edit,因为您使用POST 方法发送AJAX 调用。

  //on Adeletedeliverable.php file
  print_r($_POST); //only for debug before assign
  $id=$_POST['admin_id'];
  $x=$_POST['edit'];

  $query=mysql_query("DELETE FROM passed_deliverable WHERE deliverable_id={$id} && user_id={$x} ");
  die(json_encode(array('status'=>'success')));


//On javascript funciton(Aviewrecords.php),so just $_GET['edit'];
 function Delete() {
  window.location.reload();
  lol = $('#wee').text();
  var bayotmarkyu = "<?php  echo $_GET['edit'];  ?>"; 
     $.ajax({   
       type:'POST',  // see your ajax call method carefully
       url:'Adeletedeliverable.php',
       data: {admin_id:lol,edit:bayotmarkyu},
       success: function(data) {
        alert(data.status);
        }
        });
 }

【讨论】:

    【解决方案2】:

    您错误地调用了“x”变量。 应该是 $x

    你得到的应该是一个帖子

    【讨论】:

      【解决方案3】:

      你必须使用 $_GET 而不是 $_POST 。

      $x=$_GET['edit'];
      

      【讨论】:

      • 我没有使用 $_GET 因为在链接之前的 TYPE 中显示 POST
      猜你喜欢
      • 2016-10-19
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      • 2013-11-04
      • 2015-05-03
      • 2013-03-14
      • 2012-07-15
      相关资源
      最近更新 更多