正确的链接格式

时间:2010-03-16 18:56:03

标签: php html

我正在尝试创建一个链接,允许我的分页搜索转到结果的下一页,包括网址中的搜索字词

我使用我创建的链接收到以下错误

解析错误:语法错误,意外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>";

任何帮助将不胜感激

3 个答案:

答案 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>";

但话说回来,也许不是。