php - Ajax 函数未运行

标签 php jquery mysql sql ajax

所以我想在我的数据库中插入一行。我正在调用一个类似 ajax 的函数来在我的表中插入一个新行。但它没有插入一行。

function showResult(first, last)
    {

    var First = first;
    var Last = last;

       if (window.XMLHttpRequest)
       {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
       }
       else
       {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
       }
       xmlhttp.open("POST","http://www.website.ca/portal/MyChapter2/cgi-bin/DetermineUser.php?FirstName="+First+"&LastName="+Last,true);
       xmlhttp.send();    

  }

这是它转到的文件,以便将行插入到表中。

<?php
require_once (dirname(__FILE__) . '/../../include/Initialization.php');
require_once (PORTAL_PATH . '/include/FormLibrary.php');
require_once (PORTAL_PATH . '/include/SingleRowQuery.php');
require_once (PORTAL_PATH . '/include/Functions.php');
require_once (PORTAL_PATH . '/include/VolunteerInterests.php');
require_once (PORTAL_PATH . '/TaskManager/cgi-bin/AutoTaskFunctions.php');

$FirstName = $_POST['FirstName'];
$LastName = $_POST['LastName'];

$sql="INSERT INTO `Track_Notification`(`Track_ID`, `Track_UserID`) VALUES    ('$FirstName','$LastName')";
echo ("success");

?>

最佳答案

您正在执行 POST,但未通过该 POST 发送任何数据。您在 URL 中发送数据,这实际上是一种 GET 技术:

xmlhttp.open([..snip...] /DetermineUser.php?FirstName="+First+"&LastName="+Last,true);
                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

不管你使用什么 HTTP 动词,如果 URL 中有查询参数,它们将在 $_GET 中,所以

$_GET['FirstName'];
$_GET['Lastname'];'

除此之外,您还容易受到 SQL 注入(inject)攻击,所以享受您的服务器 pwn3d。

关于php - Ajax 函数未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21992191/

相关文章:

php - 获取ip位置和操作系统

php - 如何在 PHP 中比较日期和字符串

javascript - 下面的代码中如何有多个 return 语句?谁能解释一下它在这里是如何工作的?

javascript - CakePHP 从表单中获取数据

php - 在 PHP 中使用数据库创建类别

ios - 使用 Jdeveloper MAF 开发移动应用程序的成本

php - MySQL 和 PHP 数据库?

javascript - 如何在 JavaScript 中使用 PHP?

javascript - 单击后加载 html 时如何动态设置输入的值?

mysql - 使用来自另一个表行的列构建类似 "dynamic pivot"的查询