php-url编码的用途?
根据W3学校的说法: URL编码将字符转换为可通过Internet传输的格式。 URL只能使用ASCII字符集通过Internet发送。 由于URL通常包含ASCII集之外的字符,因此必须将URL转换为有效的ASCII格式 我在insert查询之后有一个url encode语句:php-url编码的用途?,php,urlencode,Php,Urlencode,根据W3学校的说法: URL编码将字符转换为可通过Internet传输的格式。 URL只能使用ASCII字符集通过Internet发送。 由于URL通常包含ASCII集之外的字符,因此必须将URL转换为有效的ASCII格式 我在insert查询之后有一个url encode语句: $Query = "INSERT INTO $Table_1 VALUES ('0','".mysql_escape_string($forename)."','".mysql_escape_string($surna
$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());
}
为什么有必要?因为电子邮件地址中的@等字符正在标头重定向中发送?根据
及
所以这是一个标准所要求的
PS:正如您所见,
@
是查询中使用的有效字符,无需额外编码。解释还不够吗?(虽然不完全正确)你说不完全正确是什么意思?!出于某种原因,它提到了ASCII,而这里只允许ASCII字符的一小部分。请查看我的答案以了解进一步的解释。
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
query = *( pchar / "/" / "?" )
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
pct-encoded = "%" HEXDIG HEXDIG
HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
ALPHA = %x41-5A / %x61-7A ; A-Z / a-z
DIGIT = %x30-39 ; 0-9