2011-10-03 84 views
0

我不能让我的变量在页面上回显,即使它显示在URL中。下面是它传递未定义的变量 - 通过URL传递变量

<a href='eventform.php?$eventname'> 

的链接代码即可获得它的其他页面上:

$eventname = 0; 
if (isset($_GET['eventname'])) { 
$eventname = $_GET['eventname']; 
} 
echo $_GET['eventname']; 

它显示0,但不是山2012是在顶部的URL。请帮我解决这个问题

我是否正确显示在其他页面上?

回答

3

您需要:

  • 给它一个名称的查询字符串
  • 消毒数据的URI
  • 消毒的URI HTML

这样:

<a href='eventform.php?eventname=<?php 
    echo htmlspecialchars(urlencode($eventname)); 
?>'> 
+0

它摆脱了错误,但它仍然不会在页面上使用我的isset代码 – SebastianOpperman

+0

回显var,并且url也是这样出现的:sportevent/eventform。 php?eventname =%3C?php%20%20%20%20echo%20htmlspecialchars(%20urlencode(%20Marathon%202012%20)%20);?%3E – SebastianOpperman

+0

明白了,谢谢大家的帮忙 – SebastianOpperman

-1
<a href='eventform.php?<?php=$eventname?>'> 

或者:

<a href='eventform.php?<?php echo $eventname?>'> 

虽然你可能想:

<a href='eventform.php?eventname=<?php echo $eventname?>'> 

^^设置$_GET['eventname']$eventname

+0

要小心带回声像那样。它可能在php.ini中被禁用。 –

+0

@Topener自PHP 5.4.0开始,<?=始终可用。http://php.net/manual/en/ini.core.php#ini.short-open-tag – Neal

+1

不知道,但最新的稳定仍然是5.3.8 –

2

你忘了把eventname =放入你的url中,例如:

<a href="eventform.php?eventname=<?php echo $eventname; ?>">