【发布时间】:2017-10-18 10:27:22
【问题描述】:
在我的 php 代码中,我为 php 传递了一个 id,以从 sql server 获取信息。 它似乎工作正常,但每当我的名称中有一个“&”时,它就不再工作了
$doc_info = array();
$id = "ID not set";
if(isset($_GET['document_id'])) {
$id = $_GET['document_id'];
$id = str_replace('___', '&', $id);
$doc_info = get_document_info($id);
$doc_info['dummy'] = " ";
}
适用于“2017_test id”的 id 示例
http://localhost/php/single-entry.php?document_id=2017_test%20id
在这里我得到了正确的信息。
“2017_e&i EDV”无效的 id 示例
http://localhost/php/single-entry.php?document_id=2017_e&i%20EDV
这里我得到 PHP 警告:未定义索引。虽然数据在数据库中。
我将 id 传递给另一个函数,该函数使用此 ID 获取存储在 DB 中的信息数组。 在第一个示例中,我获取了数据,但如果名称有 '&' 我得到 Undefined index
【问题讨论】:
-
“不起作用”到底是什么意思?
-
了解 url 编码,因为
?、=和&等某些字符在 URL 中作为 GET 参数分隔符具有特殊含义 -
$_GET 中的 & 是一个特殊字符。从 G_GET 转换为 $_POST 看看是否有帮助
标签: php html sql-server