我正在尝试创建一个链接,允许我的分页搜索转到结果的下一页,包括网址中的搜索字词
我使用我创建的链接收到以下错误
解析错误:语法错误,意外T_ENCAPSED_AND_WHITESPACE,期望第47行/home/dd615/public_html/searchPage.php中的T_STRING或T_VARIABLE或T_NUM_STRING
这是链接
echo "<a href='{$_SERVER['PHP_SELF']}?search=$_GET['search']?pagenumber=1'> FIRST </a>";
任何帮助将不胜感激
答案 0 :(得分:0)
您还需要包装第二个变量:
echo "<a href='{$_SERVER['PHP_SELF']}?search={$_GET['search']}&pagenumber=1'> FIRST </a>";
但是使用正确的编码会更好。所以试试这个:
echo '<a href="' . htmlspecialchars($_SERVER['PHP_SELF'].'?search='.urlencode($_GET['search']).'&pagenumber=1') . '"> FIRST </a>';
urlencode
用于对网址查询中不合适的任何字符进行编码(根据application/x-www-form-urlencoded type)和htmlspecialchars
转义HTML特殊字符。
答案 1 :(得分:0)
这是因为特殊的字符串语法。您使用花括号$ _SERVER ['PHP_SELF']进行了包围,但未能对$ _GET ['search']执行相同操作。 请参阅string syntax manual page,值得一读
另请注意,查询字符串中只能有一个?
字符,&
应该用作字符串其余部分的分隔符
答案 2 :(得分:0)
你实际问题的答案是你需要在$ _GET ['search']周围加上大括号,因为它在这些引号内。像这样:
echo "<a href='{$_SERVER['PHP_SELF']}?search={$_GET['search']}?pagenumber=1'> FIRST </a>";
另外,与您的问题无关,您可能想要更改第二个'?'到'&amp;'像这样:
echo "<a href='{$_SERVER['PHP_SELF']}?search={$_GET['search']}&pagenumber=1'> FIRST </a>";
但话说回来,也许不是。