【问题标题】:Pass Dynamic PHP variables to other PHP page via URL通过 URL 将动态 PHP 变量传递给其他 PHP 页面
【发布时间】:2014-10-14 09:14:47
【问题描述】:

我认为标题中的问题很清楚。 我有一个 PHP 文件,称之为 PHP1。在那个 PHP1 中,我的 URL 看起来很像

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

我感到困惑的是,“red”、“blue”和“gone”的值位于三个动态变量中:$var1$var2$var3

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

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

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

我怎样才能做到这一点?我知道我可以使用 ajax 和所有,但 URL 是我唯一的手段。

【问题讨论】:

  • 如果您真的别无选择,只能使用 URL,请将 $_POST 更改为 $_GET(ps:您知道 cookie 和会话吗?这将是获取参数的替代方法)跨度>
  • 你不能用网址发帖,你可以把数据发送到另一个页面......
  • 好的,我怎样才能通过使用 $_GET 来做到这一点?请提供示例 URL 和接收部分。
  • 检查我的答案。使用它的 PHP2 文件
  • 阿里夫,谢谢你的时间。但正如我所说,我不能在这里使用 cookie 或会话。它有点处于丑陋的困境之中。好的,如果我可以使用 $_GET 怎么办?如何传递变量?我的意思是像 $var1 这样的变量。不是像红色这样的价值观。如何编写 url 传递变量?

标签: php variables url


【解决方案1】:

我想你正在寻找如何生成动态 url

在你的 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"];

//它应该可以工作

【讨论】:

    【解决方案2】:

    你无法从 $_POST 获取通过 url 传递的值。

    试试这个:

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

    【讨论】:

      【解决方案3】:

      使用header('Location')

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

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

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

      【讨论】:

        【解决方案4】:

        这样通过 url 获取值是不可能的,你需要使用 $_GET[''] 。但是使用 session 是最好的选择。像这样重写你的代码 -

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

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

        【讨论】:

        • 正如我所说,我唯一的方法是使用 URL。因为我是从自定义 API 中的自定义函数内部执行此操作的,它只为我提供了将数据传递到另一个页面的 URL 方法。
        • 那么你需要使用 $_GET['data']
        • 那我该如何使用 $_GET 呢?对于造成的混乱,我深表歉意。请提供一个示例 URL 和接收部分。
        • 如果你想从script.php接收,然后写$GET['color'], $GET['sky']等,然后你可以将它存储在任何变量中并可以使用它你想要的地方。
        【解决方案5】:

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

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

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

        【讨论】:

          【解决方案6】:

          我认为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'];
          ?>
          

          【讨论】:

            【解决方案7】:

            在 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】:

              试试这个获取方法:

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

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

              【讨论】:

              • 这是网址:www.mywebsite/script.php?color=red&sky=blue&past=gone
              • 正如我已经说过的,如果红色、蓝色和消失的值存储在 $var1、$var2 和 $var3 中会怎样。这些是动态的。如何发送变量?
              • $url = sprintf("www.mywebsite/script.php?color=%s&sky=%s&past=%s",$var1,$var2,$var3);回声 $url;你想要吗?
              • 可以在 PHP 中使用 sprintf 通过 url 传递变量。例如:$url = sprintf("www.mywebsite/script.php?color=%s&sky=%s&past=%s","re​​d","blue","gone");
              【解决方案9】:

              由于您在 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 中的任何东西,它获取并传递具有相同值的相同参数到下一页

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-07-24
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多