如何使用URL传递PHP变量

问题描述 投票:16回答:7

我想使用URL传递一些PHP变量。

我尝试了以下代码:

link.php

<html>
<body>
<?php
$a='Link1';
$b='Link2';
echo '<a href="pass.php?link=$a">Link 1</a>';
echo '<br/>';
echo '<a href="pass.php?link=$b">Link 2</a>';
?></body></html>`</pre></code>

pass.php
<pre><code>`<html>
<body>
<?php
if ($_GET['link']==$a)
{
echo "Link 1 Clicked";
} else {
echo "Link 2 Clicked";
}
?></body></html>

单击链接Link1Link2时,显示“链接2已单击”。为什么?

php url
7个回答
21
投票

在您的link.php中,您的echo语句必须像这样。

echo '<a href="pass.php?link=' . $a . '>Link 1</a>';
echo '<a href="pass.php?link=' . $b . '">Link 2</a>';

然后在pass.php中,您不能使用$ a,因为它没有用您想要的字符串值初始化。

尽管您可以直接将它与这样的字符串进行比较。

if($_GET['link'] == 'Link1')

另一种方法是使用与link.php相同的方法首先初始化变量。更好的方法是将$ a和$ b变量包含在单个php文件中。然后将其包含在所有要使用该变量的页面中,就像Tim Cooper在其帖子中提到的那样。您也可以将其包含在会话中。


6
投票

您分别在A和B的href中传递了link=$alink=$b。它们被视为字符串,而不是变量。以下应为您解决此问题:

echo '<a href="pass.php?link=' . $a . '">Link 1</a>';

// and

echo '<a href="pass.php?link=' . $b . '">Link 2</a>';

$a的值也不包含在pass.php中。我建议制作一个公共变量文件,并将其包括在所有必要的页面上。


2
投票

以上所有答案都是正确的,但我注意到一些非常重要的内容。在变量和等号之间留一个空格可能会导致问题。例如,(?variablename =value)


1
投票

使用此简单方法

  $a='Link1';
  $b='Link2';
  echo "<a href=\"pass.php?link=$a\">Link 1</a>";
  echo '<br/>';
  echo "<a href=\"pass.php?link=$b\">Link 2</a>";

0
投票

在skytopia找到了这个解决方案...

位于“ page1.php”或“ page1.html”中

// Send the variables myNumber=1 and myFruit="orange" to the new PHP page...
<a href="page2c.php?myNumber=1&myFruit=orange">Send variables via URL!</a> 

    //or as I needed it.
    <a href='page2c.php?myNumber={$row[0]}&myFruit={$row[1]}'>Send variables</a>

INSIDE“ page2c.php”

<?php
    // Retrieve the URL variables (using PHP).
    $num = $_GET['myNumber'];
    $fruit = $_GET['myFruit'];
    echo "Number: ".$num."  Fruit: ".$fruit;
?>

0
投票

只需将$a='Link1'; $b='Link2';放在pass.php中,您将得到答案并在link.php中加双引号

HERE:echo '<a href="pass.php?link=' . $a . '">Link 1</a>';


0
投票
   <?php

echo" <a  style='float: right;' class='btn btn-primary' href='send_request.php?id=$id'>Send Request</a>";

                                         ?>
© www.soinside.com 2019 - 2024. All rights reserved.