web-dev-qa-db-de.com

übergeben von PHP-Variablen mit URL

Ich möchte eine PHP-Variable mit URL übergeben ... Ich habe den folgenden Code ausprobiert.

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

pass.php

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

beim Klicken auf die Links (d. h. sowohl Link1 als auch Link2) wird Link2 angeklickt. Können Sie das Problem herausfinden?

15
chetan

In Ihrer link.php muss Ihre Echoaussage so sein.

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

In Ihrer pass.php können Sie $ a nicht verwenden, da es nicht mit Ihrem beabsichtigten Zeichenfolgenwert initialisiert wurde.

Sie können es jedoch direkt mit einer Zeichenfolge wie dieser vergleichen.

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

Ein anderer Weg wird zuerst mit der Variablen initialisiert, die Sie auch mit link.php gemacht haben. Und viel besser ist es, wenn Sie die Variablen $ a und $ b in eine einzige PHP-Datei aufnehmen. Fügen Sie dann das auf allen Seiten hinzu, auf denen Sie diese Variable verwenden werden, wie Tim Cooper in seinem Beitrag erwähnt. Sie können dies auch in eine Sitzung aufnehmen.

22
ace

Sie übergeben link=$a und link=$b in den Hrefs für A bzw. B. Sie werden als Zeichenfolgen behandelt, nicht als Variablen. Folgendes sollte das für Sie beheben:

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

// and

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

Der Wert von $a ist auch nicht in pass.php enthalten. Ich würde vorschlagen, eine gemeinsame Variablendatei zu erstellen und sie auf allen erforderlichen Seiten einzufügen.

6
Tim Cooper

Alle obigen Antworten sind richtig, aber ich habe etwas sehr Wichtiges bemerkt. Wenn Sie zwischen der Variablen und dem Gleichheitszeichen ein Leerzeichen lassen, kann dies zu einem Problem führen. Zum Beispiel (?variablename =value)

2

Verwenden Sie diese einfache Methode

  $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>";
1
jonah

fand diese Lösung bei skytopia ...

INSIDE "page1.php" oder "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
palyarmerc

geben Sie einfach $a='Link1'; $b='Link2'; in Ihre pass.php ein und Sie werden Ihre Antwort erhalten und in Ihrer link.php ein doppeltes Zitat machen 

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

0
Devarsh Bhatt