传递给新页面的PHP变量没有显示出来

时间:2011-12-14 23:55:15

标签: php variables

我正在为某人搜索网站,但我已收到上一位主持人/网站管理员的所有文件。

该网站有一个通过paypal的订购系统,但是需要从产品页面here传递到订购页面的两个变量没有显示出来。

订购页面的URL似乎正确传递了变量,如下所示

http://www.italian-christmas-cookies.com/orderbelow.php?p=55&service=Angel%20Reading

但它们没有显示在订购页面上

代码如下所示。

<b>Personalised
 <?
echo $service;
?></b>
</p>

<p>Price: &pound;<?
echo $p;
?></b>
</p>

所以我希望它可以显示

个性化的天使阅读

价格:£55

我很感激那些经验丰富的人的指点。

由于 格伦

更新:

谢谢大家,所有帖子都有所帮助,它给了我进步和一些教育。我不知道原作者多久以前编写的代码所以可能会有一些古老的方法。

继续进行将类似的原则适用于稍后在代码中,其中表单捕获一些用户输入并在下面分配一个变量名称,如$ dateofbirth,稍后在电子邮件中使用给所有者?换句话说,目前出生日期和其他字段未包含在电子邮件中

<p>Date of Birth <i>(dd/mm/yyyy)</i><br /><input name="dateofbirth" value="<? echo $dateofbirth;?>" type="text" style="width: 350px;" /></p>


<p><br /><input type="hidden" name="service" value="<?
echo $service;
?>" />

<input type="hidden" name="p" value="<?
echo $p;
?>" />
<input type="submit" value="Order now" /></p>
</form>

发送电子邮件代码在这里

$emailtext = "From: " . $clientname . "\r\n";
$emailtext .= "Service ordered: " . $service . "\r\n";
$emailtext .= "Price to pay: £" . $p . "\r\n";
$emailtext .= "Date of birth: " . $dateofbirth . "\r\n";
$emailtext .= "Questions:\r\n\r\n" . $questions . "\r\n\r\n";
$emailtext .= "Comments:\r\n\r\n" . $comments . "\r\n\r\n";
$emailtext .= $email;

总之,上面的代码是旧的,过时的,不受支持的,需要现代化才能使其有效吗?

感谢。

5 个答案:

答案 0 :(得分:2)

要使用GET参数,您必须从$_GET数组中检索它,如下所示:

$_GET['service']

请务必在显示之前清理$_GET['service']以防止XSS和其他可能的攻击。<​​/ p>

答案 1 :(得分:2)

显然,&#34;注册全局&#34;功能(http://www.php.net/manual/en/security.globals.php)在PHP配置中关闭。

你有两个可能性:要么你打开&#34;注册全局&#34; (出于正当理由不再推荐)。或者您通过以下方式访问GET参数:

<b>Personalised
 <?
echo $_GET["service"];
?></b>
</p>

<p>Price: &pound;<?
echo $_GET['p'];
?></b>
</p>

答案 2 :(得分:1)

<p>
    <b>Personalised <?php echo $_GET['service']; ?></b>
</p>

<p>
    <b>Price: &pound;<?php echo $_GET['p'];?></b>
</p>

您需要指定您正在调用$ _GET vars。另外,请务必使用<?php,而不仅仅是<?

答案 3 :(得分:1)

您需要使用$_GET['service']$_GET['p']从网址获取参数:

<b>Personalised
<?
echo $_GET['service'];
?></b>
</p>

<p>Price: &pound;<?
echo $_GET['p'];
?></b>
</p>

答案 4 :(得分:0)

据我了解,您需要回显通过url传递的参数。如果是这样,请使用$ _GET数组

<b>Personalised
 <?
echo $_GET['service'];
?></b>
</p>

<p>Price: &pound;<?
echo $_GET['p'];
?></b>
</p>