将变量值从 JS 传递给 PHP

Posted

技术标签:

【中文标题】将变量值从 JS 传递给 PHP【英文标题】:Pass variable value from JS to PHP 【发布时间】:2012-01-29 13:59:45 【问题描述】:

我在将值从 JS 传递到 php 时遇到问题,以便它可以用作 PHP 函数的参数。单击链接后,onclick 事件将触发 JS 函数。这是JS + html代码:

<script type="text/javascript">
   function insertIntoDb() 
      $.GET OR POST("insert.php");
      return false;
   
</script>

<a href="#" onclick="insertIntoDb();">INSERT MY USERNAME</a>

PHP(插入.php):

<?php
    session_start();

    function insert($username)
        $username = mysql_real_escape_string($username);
        $query = mysql_query("INSERT INTO List(Username) VALUES('$username')") or die(mysql_error());
    

    if(isset($_POST['Username']))
        insert($_POST['Username']);
    
?>

感谢能帮助我的人。我对 PHP 和 JS 很陌生,所以请原谅我的愚蠢。

【问题讨论】:

哇——希望我能为你的用户名加一百万分。我只是笑得很厉害,我可能已经尿了自己。不过没有给你答案。对不起。 这里有一个非常重要的安全漏洞。您需要以某种方式确保人们不能只向您的服务器发送 HTTP 请求,它会将内容插入到数据库中,因为这会毁了您的生活。 @MatthewPatrickCashatt 我的用户名怎么了? :) 简单的 CSRF 参考:codeutopia.net/blog/2008/10/16/… 您将 INSERT 链接更改为 REMOVE 链接,恶意用户仍然可以通过使用开发工具提交自己的请求来绕过所有这些。 【参考方案1】:

您将数据从浏览器传递到您的服务器。 Javascript 是一种用于操作浏览器的语言。 PHP 是您的服务器端语言。

您可以在 get 或 post 请求中传递数据,例如“mypage.php?Username=john”

你想要的是一个可以与用户交互的表单

<script type="text/javascript">
    function insertIntoDb() 
      document.getElementById("myform").submit();
      //or if you want to use jquery and ajax
      $.post("insert.php", $("#myform").serialize());
      return false;
    
</script>

<form id="myform" method="post" action="insert.php">
    <a href="#" onclick="insertIntoDb();">INSERT MY USERNAME</a>
    <input type="text" name="Username"></input>
</form>

【讨论】:

【参考方案2】:

index.html

<script src="http://code.jquery.com/jquery-latest.min.js" type='text/javascript'></script>
<script>
   $(document).ready(function() 
       $("#insert").click(function(event)
           $.post('insert.php',username:$(this).html());
       )
   );
</script>
<a href='javascript:void(0);' id='insert'>Username</a>

插入.php

<?php
function insert($username)
    $conn = mysql_connect("host","user","passwd");
    if($conn)
        $username =  mysql_real_escape_string($_POST['username']);
        $result = mysql_query("INSERT INTO test.user(username) VALUES('".$username."')") or die(mysql_error());
        mysql_close($conn);
    

if(isset($_POST['username']))
    insert($_POST['username']);

?>

【讨论】:

以上是关于将变量值从 JS 传递给 PHP的主要内容,如果未能解决你的问题,请参考以下文章

通过单击鼠标将变量值传递给java中的servlet

如何将变量值从一个文件中的一个类传递给另一个文件中的另一个类python tkinter

将变量值从反应构造函数传递到 nodeJS 后端

如何将变量值传递给julia中的宏?

如何将变量值传递给套接字字符串

将变量值传递给 paypal API - first_name 和 last_name