web-dev-qa-db-fra.com

passant php variable en utilisant l'URL

Je veux passer une variable php en utilisant l'URL ... J'ai essayé le code suivant.

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>

en cliquant sur les liens (c'est-à-dire à la fois Link1 et Link2), Link 2 est cliqué ... Pouvez-vous comprendre le problème?

15
chetan

Dans votre link.php, votre déclaration echo doit être comme ceci.

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

Ensuite, dans votre pass.php, vous ne pouvez pas utiliser $ a car il n’a pas été initialisé avec la valeur de chaîne souhaitée.

Bien que vous puissiez le comparer directement à une chaîne comme celle-ci.

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

Une autre façon d’initialiser la variable est d’abord la même chose que vous avez faite avec link.php. Et bien mieux, vous incluez les variables $ a et $ b dans un seul fichier php. Ensuite, incluez cela dans toutes les pages où vous allez utiliser cette variable comme le mentionne Tim Cooper dans son message. Vous pouvez également inclure ceci dans une session.

22
ace

Vous passez link=$a et link=$b dans les hrefs pour A et B, respectivement. Ils sont traités comme des chaînes, pas des variables. Ce qui suit devrait résoudre ce problème pour vous:

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

// and

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

La valeur de $a n'est pas non plus incluse dans pass.php. Je suggère de créer un fichier de variable commune et de l’inclure sur toutes les pages nécessaires.

6
Tim Cooper

Toutes les réponses ci-dessus sont correctes, mais j'ai remarqué quelque chose de très important. Laisser un espace entre la variable et le signe égal peut entraîner un problème. Par exemple, (?variablename =value)

2
Hassan Musa dabra

Utilisez cette méthode facile

  $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

trouvé cette solution chez skytopia ...

DANS "page1.php" ou "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>

À L'INTÉRIEUR "page2c.php"

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

il suffit de mettre $a='Link1'; $b='Link2'; dans votre pass.php et vous obtiendrez votre réponse et ferez une double citation dans votre link.php 

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

0
Devarsh Bhatt