【问题标题】:How to keep url data when going to another page转到另一个页面时如何保留 url 数据
【发布时间】:2013-05-28 14:20:12
【问题描述】:

我有从前一页的表单提交的 url 变量。所以我的网址看起来像 site.com/submitted.php?first_name=hello&last_name=bye。

现在我使用一个链接来保存我提交的变量,同时我转到我的第二页 <a href="secondPage.php?first_name=hello&last_name=bye>pageLink</a>

在第二个页面上,它基本上是一个下拉菜单,使用带有一个提交按钮的选择标签,该按钮从 mysql 服务器生成一个表,然后链接回同一页面。它看起来像:

<FORM ACTION="secondPage.php?first_name=hello&last_name=bye" METHOD="GET">
    <select name='selectedOption' >
        <option value="op1">option1</option>  
        <option value="op2">option2</option>  
        <option value="op3">option3</option>  
    </select>
    <INPUT TYPE="SUBMIT" VALUE = "Search">
</FORM>

但是假设我选择 option1 并提交,我的 url 不保留变量 first_name 和 last_name 但它只是替换它:

secondPage.php?selectedOption=op1 

代替:

secondPage.php?first_name=hello&last_name=bye&selectedOption=op1

感谢任何帮助。

【问题讨论】:

  • 使用隐藏字段记住它们。&lt;input type="hidden" name="first_name" value="&lt;?php echo $_GET['first_name']; ?&gt;
  • 如果您使用 Tim 的方法,请对您的 $_GET 值进行 HTML 编码。否则,您最终可能会得到损坏的页面,或者更糟糕的是,页面受到破坏。

标签: php url hyperlink


【解决方案1】:

在第二页。在表单中创建两个隐藏字段 &lt;input type="hidden" value="&lt;?php echo $_REQUEST['first_name'] ?&gt;" name="first_name"/&gt;

<input type="hidden" value=""<?php echo $_REQUEST['last_name'] ?>"" name="last_name"/>

我的建议使用post 方法

【讨论】:

  • 嗯... XSS ftw。 ""/&gt;&lt;script&gt;alert('foo');&lt;/script&gt;&lt;input type="hidden" value=""
【解决方案2】:

我不确定你想如何传递数据,但这里有一个建议,可以用 php 获取你想要的值。

改变这个:

&lt;FORM ACTION="secondPage.php?first_name=hello&amp;last_name=bye" METHOD="GET&gt;

到这里:

&lt;form action="secondPage.php" METHOD="post"&gt;

secondPage.php 的代码如下所示:

// the 'if' statements aren't necessary. just an idea for simple server-side
// validation

if(isset($_REQUEST['selectedOption']) && $_REQUEST['selectedOption'] != ''){
    $option = $_REQUEST['selectedOption'];
}

if(isset($_REQUEST['first_name']) && $_REQUEST['first_name'] != ''){
    $fname = $_REQUEST['first_name'];
}

if(isset($_REQUEST['last_name']) && $_REQUEST['last_name'] != ''){
    $lname = $_REQUEST['last_name'];
}

您需要处理的所有值现在都在$option$fname$lname

你说你是 php 新手,欢迎 :),永远不要相信用户输入。你应该花点时间阅读一下SQL Injection

希望这能有所帮助,祝你好运。

【讨论】:

    【解决方案3】:

    基本上,我自己一直在做类似的事情,但我发现了一个很好的解决方案和我自己认为的好方法。如果你愿意,让我给你一些代码作为例子别介意^_^..

    要组织清楚你做了什么:-

    ##**FIRST PAGE** : -
    the url: - secondPage.php?first_name=hello&last_name=bye <--- this was the result..
    
    Then you travelled to the 2nd page: - <-- result was still associated
    
    ##**SECOND PAGE** : -
    
    $firstname = $_GET['first_name'];
    $lastname= $_GET['last_name'];
    <FORM ACTION="secondPage.php?first_name=<?php echo $firstname; ?>&last_name=<?php echo $lastname ?>" METHOD="POST">
        <select name='selectedOption' >
            <option value="op1">option1</option>  
            <option value="op2">option2</option>  
            <option value="op3">option3</option>  
        </select>
        <INPUT TYPE="SUBMIT" name ="submit" VALUE = "Search">
    </FORM>
    
    ##**THIRD PAGE** The page that the form is going to go to: -
    
    
    $option = $_GET ['selectedOption'];
    // you can also get the other data on this page through same method i've done on page two..
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-07
      • 1970-01-01
      • 2020-11-30
      • 1970-01-01
      • 2023-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多