通过URL将动态PHP变量传递给其他PHP页面

时间:2014-10-14 09:14:48

标签: php variables url

我认为问题从标题中可以清楚地看出来。 我有一个PHP文件,称之为PHP1。在那个PHP1中,我有一个看起来非常像

的URL

www.mywebsite/script.php?color=red&sky=blue&past=gone

我感到困惑的是,“红色”和“蓝色”以及“消失”这些值分为三个动态变量:$var1$var2$var3

如何通过URL将这些变量发布到第二个PHP文件PHP2中。

在PHP2文件中,我想收到如下值:

$var1 = $_GET['color'];
$var2 = $_GET['sky'];
$var3 = $_GET['past'];

我怎样才能做到这一点?我知道我可以使用ajax和all,但URL是我唯一的选择。

9 个答案:

答案 0 :(得分:3)

我认为您正在寻找如何生成动态网址

在你的php1文件中

$c = "red";
$s = "blue";
$stat ="past";

//Now you need to generate a dynamic url in your php1 file

$url = 'www.mywebsite/script.php?color='.$c.'&sky='.$s.'&past='.$stat;
//now genearte a dynamic link
echo '<a href="'. $url.'">Click me</a>';
//you have dynamic link. after clicking it will take you to different page
//your url shoule be www.mywebsite/script.php?color=red&sky=blue&past=gone
//just concanate

Php2文件

echo 'color'.$_GET["color"].' SKY '.$_GET["sky"].' STAT '.$_GET["past"];

//应该可行

答案 1 :(得分:0)

你不能从$ _POST获取通过url传递的值。

试试这个:

$var1= $_GET['color'];
$var2 = $_GET['sky'];
$var3= $_GET['past'];

答案 2 :(得分:0)

使用header('Location')

header('Location:/script.php?color=red&sky=blue&past=gone');

它会将用户重定向到第二页。 然后,您可以使用$_GET superglobal

收集值
$var1= $_GET['color'];
$var2 = $_GET['sky'];
$var3= $_GET['past'];

答案 3 :(得分:0)

无法通过网址获取值,您需要使用$_GET['']。但使用会话是这样做的最佳选择。只需重写你的代码 -

session_start();
$SESSION['data1'] = 'red';

然后在您想要的地方检索您的数据。

答案 4 :(得分:0)

PHP 中,我们使用 HTTP 协议。 HTTP 可以在客户端和服务器之间进行请求/响应。 客户端是浏览器,服务器位于我们的URL位置。 您可以使用 GET 请求或 POST GET 参数为:

  • 见于网址
  • 您可以将此页加入书签
  • 它将在浏览器历史记录中
  • 它有长度限制。 另一种类型的通信是 POST ,其中:
  • 你在url中看不到这个。
  • 您无法将此页加入书签
  • 它不会出现在浏览器历史记录中
  • 没有长度限制

您可以使用带有指定方法GET或POST的HTML表单来发送请求。

答案 5 :(得分:0)

我认为header会有所帮助

<?php
    $variable1 = "red";
    $variable2 = "blue";
    $variable3 = "gone";
    header("Location:/script.php?color=$variable1&sky=$variable2&past=$variable3");
?>

要在另一个页面中接收变量,请使用$_GET代替$_POST

<?php
    $var1 = $_GET['color'];
    $var2 = $_GET['sky'];
    $var3 = $_GET['past'];
?>

答案 6 :(得分:0)

由于您在URL中有动态参数,因此请使用foreach语句,如此

$temp = "var";
$param = "";
$i=1;
$url = "samplepage.php?";
foreach($_GET as $key=>$values)
{
$tmp = $temp."".$i;
$param = $key;
$$param = $key;

// it is assumed $var1, $var2 and $var3 is defined before processing url
echo $tmp." value is ".$$tmp."\n";
$url = $url."".$$param."=".$$tmp."&"; 
$i++;
}
$url = rtrim($url, "&");
header("Location: ".$url);

Demo

Url可能是PHP1中的任何内容,它会将具有相同值的相同参数传递给下一页

答案 7 :(得分:0)

在PHP1中:

$var1= $_POST['color'];
$var2 = $_POST['sky'];
$var3= $_POST['past'];
header("Location:/script.php?color={$var1}&sky={$var2}&past={$var3}");

在PHP2中:

$var1= $_GET['color'];
$var2 = $_GET['sky'];
$var3= $_GET['past'];

答案 8 :(得分:0)

试试这个方法:

$var1= $_GET['color'];
$var2 = $_GET['sky'];
$var3= $_GET['past'];

OR

$var1= $_REQUEST['color'];
$var2 = $_REQUEST['sky'];
$var3= $_REQUEST['past'];