Передача переменной PHP в URL выводит имя переменной, а не значение - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь передать строку через URL, которая будет напечатана с помощью оператора echo на другой странице php, но она печатает имя переменной, а не значение

page1:

<p><?php $first = $row['post'];
    $string = substr($row['post'], 0, 200);
    echo $string;
    ?></p>

    </header>
    <a href="#" class="image main"><img src="images/pic01.jpg" alt="" /></a>
    <ul class="actions special">
    <a href="article.php?posters='.$first.'" class="button large">
        Full Story</a>

Это код, в котором я пытаюсь передать значение переменной сначала через URL на следующую страницу

Страница 2:

<p><?php echo $_GET['posters'];?></p>

Так я называю это на странице2, и результат, напечатанный на странице, будет

'.$first.'

Как мне заставить его напечатать фактическое значение переменной $first, а не имя.

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Поскольку в OP не упоминалось значение для $row['post'], я произвольно выбрал его и манипулировал им, присваивая значение $first, следующим образом:

<p><?php 
$row['post'] = "The rain in Spain stays mainly in the plain";
$first = substr($row['post'], -5, 5);
?></p>
</header>
<a href="#" class="image main"><img src="images/pic01.jpg" alt="" /></a>
<ul class="actions special">
<a href="article.php?posters=<?=urlencode($first) ?>" class="button large">
    Full Story</a>

См. живой код

Тег a является HTML и не придает точки особого значения, в отличие от PHP, который рассматривает его как оператор конкатенации, поэтому вы должны удалить две точки.

Чтобы значение PHP переменной отображалось при встраивании PHP в HTML (в наши дни это не лучшая практика; извлечение MVC ), существует два способа.Одним из них является использование echo , но также работает сокращение, которое используется в этом примере, а именно <?=$first.

Примечание. При создании URL-адреса рекомендуется использовать urlencode () .Кроме того, вам не нужны одинарные кавычки в части строки запроса URL;одинарные кавычки предотвращают интерполяцию строки значения переменной, поэтому вместо этого вы видите буквальное имя переменной.

0 голосов
/ 17 декабря 2018

Простое исправление:

<a href="article.php?posters=<?php echo $first ?>" class="button large">Full Story</a>  

Надеюсь, это поможет!

0 голосов
/ 17 декабря 2018
<?php 

//single quoutes return variable name

$first = "hello";
echo '$first'; //$first

//double quoutes return variable value
$first = "hello";
echo "$first" ;  // hello

?>   

, поэтому на странице 1 вы должны использовать двойные кавычки

<a href="article.php?posters=<?php echo $first ?>" class="button large"> Full Story</a>
...