gpt4 book ai didi

javascript - 从ajax获取数据同时放入sql查询

转载 作者:行者123 更新时间:2023-11-30 00:58:38 27 4
gpt4 key购买 nike

当用户在搜索表单中按提交时如何抓取数据(当他选择图形的宽度和长度时)PHP看不到宽度或长变量。执行ajax并同时将ajax变量放入sql查询中。访客,用户尚未登录。

... 
function figure(position) {
var width = parseInt(position.width);
var long = parseInt(position.long);
$.ajax({
url: 'figures.php',
type: "GET",
dataType:"json",
data: {
width: width,
long: long
},
success: function(data) {
//
}
});
}

PHP

 ...
public function getneededfigures() {
$width = $_GET['width'];
$long = $_GET['long'];
$sql = "SELECT * FROM figures WHERE width='$width' AND long='$long'
.. }
...

最佳答案

按照AlexP的建议修改JS:

function figure(position) {
var width = parseInt(position.width);
var long = parseInt(position.long);
$.ajax({
url: 'figures.php?width=' + width + '&long=' + long,
type: "GET",
dataType:"json",
data: {
width: width,
long: long
},
success: function(data) {
//
}
});
}

更好的做法是将变量作为参数传递,而不是直接引用 $_GET 或 $_POST。如果这些值不在查询字符串中会发生什么?如果您想独立于 HTTP 请求手动调用该函数怎么办?

$width = isset($_GET['width']) ? $_GET['width'] : false;
$long = isset($_GET['long']) ? $_GET['long'] : false;
function getneededfigures($width, $long) {
if ( $width && $long ) {
$sql = "SELECT * FROM figures WHERE width = '".some_function_to_sanitize_data($width)."' AND long = '".some_function_to_sanitize_data($long)."'";
...do stuff...
}
return false;
}

请注意,您还需要在将用户输入发送到数据库之前对其进行清理,以防止 SQL 注入(inject)。

关于javascript - 从ajax获取数据同时放入sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20336967/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com