gpt4 book ai didi

php - 无法插入数据库(steamauth)

转载 作者:行者123 更新时间:2023-11-29 22:01:41 24 4
gpt4 key购买 nike

我的网络 Steam 身份验证器有问题。如您所知,steam 提供了一个脚本,允许人们通过 steam 数据库连接到您的站点。我的问题是:只要有人的名字中有特殊字符(例如简单的引号),它就会在我的数据库中添加一个空白名称...

这是来自 steam 的代码:

if($openid->validate()) { 
$id = $openid->identity;
$ptn = "/^http:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/";
preg_match($ptn, $id, $matches);

$_SESSION['steamid'] = $matches[1];
$link = mysql_connect("localhost", "", "");
$db_selected = mysql_select_db('', $link);
$query = mysql_query("SELECT * FROM users WHERE steamid='".$_SESSION['steamid']."'");
if (mysql_num_rows($query) == 0) {
mysql_query("INSERT INTO users (steamid) VALUES ('".$_SESSION['steamid']."')") or die("MySQL ERROR: ".mysql_error());
}
if (isset($steamauth['loginpage'])) {
header('Location: '.$steamauth['loginpage']);
}
} else {
echo "User is not logged in.\n";
}

我尝试将其移至 PDO,但无法连接。有人有想法将 steamname 添加到我的数据库中而不需要引号吗?或者接受它们作为 no-mysql ?

我知道mysql中有一个函数,但它不再起作用了(mysql_real_escape_string)

最佳答案

由于您仍在使用 mysql(您应该将其更改为 mySQLI 或 PDO)

您可以使用mysql_real_escape_string()确保输入可以插入到数据库中。 (使用一个新变量来展示我是如何做到的)。

当您更改为 PDO og mySQLI mysql_real_escape_string() 将无法工作,因为您现在没有事件的 mysql 连接。

重要的是 mysql_real_escape_string() 位于 mySQL 连接之后

if($openid->validate()) { 
$id = $openid->identity;
$ptn = "/^http:\/\/steamcommunity\.com\/openid\/id\/(7[0-9]{15,25}+)$/";
preg_match($ptn, $id, $matches);

$_SESSION['steamid'] = $matches[1];
$link = mysql_connect("localhost", "", "");
$db_selected = mysql_select_db('', $link);

$steamId = mysql_real_escape_string ($matches[1]);

$query = mysql_query("SELECT * FROM users WHERE steamid='".$steamId."'");
if (mysql_num_rows($query) == 0) {
mysql_query("INSERT INTO users (steamid) VALUES ('".$steamId."')") or die("MySQL ERROR: ".mysql_error());
}
if (isset($steamauth['loginpage'])) {
header('Location: '.$steamauth['loginpage']);
}
} else {
echo "User is not logged in.\n";
}

关于php - 无法插入数据库(steamauth),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32584331/

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