首页 > 解决方案 > 您如何正确处理 php/mysql 中的哈希/磅/数字 (#) 符号?

问题描述

我有这个网站,用户可以在其中输入稳定的名称来与其他成员在游戏中竞争。通常这很好,因为我可以转义或使用添加斜杠来处理撇号和其他此类字符。我遇到的问题是,当用户在稳定名称中使用哈希/磅/数字符号(如下面的第一个示例)或一堆特殊字符(如下面的第二个示例)时...

#a new rising
ΔMi−1 = −αΣn=1NDi[n][Σj∈C{i}Fji[n - 1] + Fexti[[n-1]]

当它作为 url 的一部分传递到第二个页面并且稳定附加到 URL 以用作 GET 变量以从数据库中提取详细信息时,不会返回任何内容。我已经尝试在 $stable 变量上使用 urlencode、rawurlencode 和百分比编码,正如本网站上其他问题中所建议的那样,但似乎没有任何效果。以下是有问题的代码示例...

引用 URL --- mydomain.com/stable.php?stable=#a new rise&season=59

stable.php 的代码...

$stable = addslashes($_GET["stable"]);
$season = $_GET['season'];

echo $stable;

$sql = "SELECT total, wins, loss, ties FROM History_Stables WHERE stable = '$stable' AND season = '$season'";
$res = $link->query($sql);
$arr = $res->fetch_array();

$pts = $arr[total];
$w = $arr[wins];
$l = $arr[loss];
$t = $arr[ties];

等等。为了将哈希/磅/数字符号正确编码为 %23,我究竟错过了什么?

标签: phpmysql

解决方案


推荐阅读