Передача переменной PHP с использованием URL - PullRequest
16 голосов
/ 26 марта 2011

Я хочу передать некоторую переменную php, используя url ... Я попробовал следующий код.

link.php

<code><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>

pass.php

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

при нажатии на ссылки (т. Е. Как на Link1, так и на Link2) я нажимаю на Link 2 .... Можете ли вы выяснить проблему?

Ответы [ 6 ]

22 голосов
/ 26 марта 2011

В вашем 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.Затем включил это во все страницы, где вы собираетесь использовать эту переменную, как Тим Купер упомянул в своем посте.Вы также можете включить это в сеанс.

6 голосов
/ 26 марта 2011

Вы передаете link=$a и link=$b в hrefs для A и 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 голосов
/ 21 июня 2018

Все вышеприведенные ответы верны, но я заметил кое-что очень важное.Оставление пробела между переменной и знаком равенства может привести к проблеме.Например, (?variablename =value)

1 голос
/ 26 марта 2014

Используйте этот простой метод

  $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 голосов
/ 30 сентября 2018

просто вставьте $a='Link1'; $b='Link2'; в свой файл pass.php, и вы получите ответ и сделаете двойную кавычку в своей ссылке.

0 голосов
/ 05 сентября 2013

нашел это решение в скайтопии ...

ВНУТРИ "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>

ВНУТРИ "page2c.php"

<?php
    // Retrieve the URL variables (using PHP).
    $num = $_GET['myNumber'];
    $fruit = $_GET['myFruit'];
    echo "Number: ".$num."  Fruit: ".$fruit;
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...