gpt4 book ai didi

php - php 函数参数内的空格问题

转载 作者:行者123 更新时间:2023-11-29 15:05:15 25 4
gpt4 key购买 nike

很抱歉没有格式化我的代码。工具栏不见了...

我想将一些数据插入 mysql 数据库。我在 php 中编写了一个函数:

function add_ID($ID, $token)  {
$add = "INSERT INTO ids (ID, token) VALUES ('$ID', '$token')";
mysql_query($add);
echo 'added successfully';
}
if(isset($_GET['addDeviceID'])) {
add_ID($_GET['ID'], $_GET['token']);
}

在我的 Browswe 的 URL 字段中,我调用如下函数: http://www.justanexample.com/example.php?ID=123123123&token=qwertzuiop

这有效。

如果我在其中一个参数中添加一个空格,例如: http://www.justanexample.com/example.php?ID=123123 123&token=qwertzuiop

我的 mysql 数据库中没有添加任何内容。

如果能得到一些帮助就太好了:)谢谢!

最佳答案

您应该在将输入发送到数据库之前验证您的输入。或者,如果无法进行验证,请过滤和/或转义该值。

验证

如果您期望ID是大于零的整数:

if (!ctype_digit($ID)) {
// invalid ID
}

如果您希望 token 是字母数字字符串:

if (!ctype_alnum($token)) {
// invalid token
}

过滤

过滤正在删除输入的无效部分,使其变得有效:

if (!ctype_digit($ID)) {
$ID = preg_replace('/\D+/', '', $ID);
// $ID does now only contain digits
}
if (!ctype_alnum($token)) {
$token = preg_replace('/\D+/', '', $token);
// $token does now only contain alphanumeric characters
}

转义

转义是替换某些字符串应放入的特定上下文的元字符。对于 MySQL 查询,您应该使用一个函数来转义 context string declaration in MySQL 的元字符。 。 PHP 有mysql_real_escape_string function为此目的:

$add = "INSERT INTO ids (ID, token) VALUES ('".mysql_real_escape_string($ID)."', '".mysql_real_escape_string($token)."')";

关于php - php 函数参数内的空格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2265496/

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