Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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
使用参数从JavaScript调用PHP脚本_Javascript_Php_Jquery_Ajax - Fatal编程技术网

使用参数从JavaScript调用PHP脚本

使用参数从JavaScript调用PHP脚本,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我对Google和StackOverflow做了很多研究,但我无法解决这个问题(这就是为什么这个问题不重复): 我有一个js函数,在单击时调用(工作)。通过这个函数,我试图调用一个PHP脚本来执行。。。但它没有反应。。。请告诉我有什么问题(请提供完整的解决方案) PHP代码: <?php $servername = "bot-sam.lima-db.de:3306"; $username = "USER379138"; $password = "pwd"; $dbname = "db_3

我对Google和StackOverflow做了很多研究,但我无法解决这个问题(这就是为什么这个问题不重复): 我有一个js函数,在单击时调用(工作)。通过这个函数,我试图调用一个PHP脚本来执行。。。但它没有反应。。。请告诉我有什么问题(请提供完整的解决方案)


PHP代码:

<?php
$servername = "bot-sam.lima-db.de:3306";
$username = "USER379138";
$password = "pwd";
$dbname = "db_379138_1";

$q = $_POST['q'];
$a = $_POST['a'];

function alert($msg) {
    echo "<script type='text/javascript'>alert('$msg');</script>";
}

echo $q . $a;
// echo and alert are not opening so i think the php script isn't executing
alert("question is " . $q);
alert("answer is " . $a);

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO knowledge_base ('question', 'answer')
VALUES ($q, $a)";

if (mysqli_query($conn, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>

很抱歉问这么简单的问题,但我无法解决问题…

尝试使用以下代码

function myfunc() {
    var question = "test1";
    var answer = "test2";
    $.ajax({
        url: 'phpscript.php',
        type: 'POST',
        data: {q: question, a: answer},
        dataType: 'json',
        success: function(result) {
         console.log(result);
       }
    });
}

数据类型:“json”?您希望从php脚本中获取json,但php会响应html!这是正确的URL吗?浏览器将假定脚本与您所在的页面位于同一文件夹中(除非您有标记)。此外,您的成功函数看起来可疑。我相信您需要指定类似function(){…}的东西。您的代码包含一个--您正在将原始的、未过滤的、未验证的用户输入直接传递到SQL字符串中。SQL注入是。另外,您可能已经给了我们登录数据库所需的实际凭据和信息-您可能需要更改,如果问题或答案都是字符串,则SQL需要引用这些值。正如@gattsbr所指出的,这很容易受到sql注入的攻击。当您使用ajax调用php脚本时,alert语句不会发出
警报
。。代码不起作用,但现在success函数没有调用。我将
数据类型
更改为
文本
。。。现在调用suces函数,但SQL数据库为空…@fipsi console.log输出是什么?
function myfunc() {
    var question = "test1";
    var answer = "test2";
    $.ajax({
        url: 'phpscript.php',
        type: 'POST',
        data: {q: question, a: answer},
        dataType: 'json',
        success: function(result) {
         console.log(result);
       }
    });
}