【发布时间】:2014-04-07 22:28:30
【问题描述】:
根据 W3 学校:
URL 编码将字符转换为可以通过 Internet 传输的格式。 URL 只能使用 ASCII 字符集通过 Internet 发送。 由于 URL 通常包含 ASCII 集之外的字符,因此必须将 URL 转换为有效的 ASCII 格式。
我在插入查询之后有一个 url 编码语句:
$Query = "INSERT INTO $Table_1 VALUES ('0','".mysql_escape_string($forename)."','".mysql_escape_string($surname)."', '".mysql_escape_string($username)."', '".mysql_escape_string($password)."', '".mysql_escape_string($email)."')";
if(mysql_db_query ($DBName, $Query)) {
$message = " - You have successfully registered";
header("Location: register.php?message=".urlencode($message));
} else {
die("Query was: $Query. Error: ".mysql_error());
}
为什么有必要?因为电子邮件地址中的 @ 等字符在标头重定向中发送?
【问题讨论】:
-
w3schools的解释还不够吗? (虽然不完全正确)
-
不完全正确是什么意思?!
-
它出于某种原因提到了 ASCII,而那里只允许使用狭窄的 ASCII 字符子集。检查我的答案以获得进一步的解释。