gpt4 book ai didi

php - 用下划线替换 URL 中的空格

转载 作者:行者123 更新时间:2023-12-04 22:02:07 24 4
gpt4 key购买 nike

如何用下划线(_)替换 URL 中的空格?

$query = mysql_query("SELECT * FROM users WHERE username = '$_GET[user]'");

但是,如果用户在她/他的用户名中有空格,我想用下划线替换空格。
因此 profile.php?user=John Johnson 的 URL 将是 profile.php?user=John_Johnson。

我怎样才能做到这一点?

谢谢!

最佳答案

正如其他地方所提到的, str_replace 会做你特别想要的,但是......
我会更担心profile.php?user=John' DROP DATABASE--不要构建这样的查询。曾经。见 SQL Injection原因之一。看看this article正确的方法。
哦,还有 a comic用作内存辅助来强化你永远不应该这样做。
编辑:响应您的回复(您最好编辑原始问题,以便很明显您正在澄清您的问题)。如果您将用户“John Johnson”存储在数据库中,但您想使用 URL profile.php?user=John_Johnson 访问他,你需要扭转你正在做的替换:

 $user  = str_replace('_', ' ', $_GET['user']);
$user = mysql_escape_string($user);
$query = mysql_query("SELECT * FROM users WHERE username = '$user'");

// finns inte användaren så skriver vi ut ett felmeddelande
if (!mysql_num_rows($query)) exit('<p>The user you are looking for appears to be missing.</p>');
这需要 profile.php?user=John_Johnson并生成 sql 查询: SELECT * FROM users WHERE username = 'John Johnson'您回复的示例代码将采用 profile.php?user=John Johnson并生成 sql 查询: SELECT * FROM users WHERE username = 'John_Johnson'我怀疑这与您想要的相反。
但同样,我强烈建议您查看准备好的陈述。 mysql_escape_string确实是权宜之计。所需要的只是忘记使用它一次,然后您就打开了您的网站以进行黑客攻击。

关于php - 用下划线替换 URL 中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/583025/

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