Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 隐藏从生成的URL获取参数_Php_Get - Fatal编程技术网

Php 隐藏从生成的URL获取参数

Php 隐藏从生成的URL获取参数,php,get,Php,Get,我有一个通过GET提交的表单,因为我需要它为每个提交的表单生成唯一的URL。当前生成的URL如下所示: 我需要做的是从生成的URL中隐藏get参数。最好的方法是什么 您可以将表单更改为帖子,并将您的唯一字符串添加到操作中。现在,所有表单数据都将从URL中消失,但将被传递到接收页面,并且生成的URL本身将是唯一的 <form name="form1" action="http://example.com/index.php?orderID=<?php echo string_rando

我有一个通过GET提交的表单,因为我需要它为每个提交的表单生成唯一的URL。当前生成的URL如下所示:


我需要做的是从生成的URL中隐藏get参数。最好的方法是什么

您可以将表单更改为帖子,并将您的唯一字符串添加到操作中。现在,所有表单数据都将从URL中消失,但将被传递到接收页面,并且生成的URL本身将是唯一的

<form name="form1" action="http://example.com/index.php?orderID=<?php echo string_random(8);?>" method="post">
    <input type="text" name="storeID" value="1" />
    <input type="text" name="value" value="22000" />
    <input type="text" name="option1" value="0" />
    <input type="text" name="option2" value="0" />
    <input type="submit" />  
</form>

一种方法是按照别人的建议使用POST。 您还可以使用Apache来解决这个问题。 您需要在根目录中创建.htaccess文件

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^index.php /index.php?StoreID=$1&value=$2&orderID=$3&option1=$4&option2=$5 [NC]
在这里,您可以找到有关mod_重写的有用信息:

但正如我之前所说的,更改到POST,您就完成了:

<form name="form1" action="http://example.com/index.php" method="post">
    <input type="text" name="storeID" value="1" />
    <input type="text" name="value" value="22000" />
    <input type="text" name="orderID" value="<?php echo string_random(8);?>" />
    <input type="text" name="option1" value="0" />
    <input type="text" name="option2" value="0" />
    <input type="submit" />  
</form>

为什么不使用POST而不是GET?为什么要隐藏它?不能使用GET加载一个URL并向用户显示另一个URL。如果使用帖子,则只显示基本URL欢迎使用StackOverflow!这对我来说是一个设计缺陷。通过查询字符串提交值的全部意义在于它们是可见的,并且最终用户可以更改它们。如果这不是你想要的,那么POST是你最好的选择。您总是可以将选项附加到后端的某种标识符上。@YannickY我猜是因为唯一的url。。。我唯一想到的是把它藏在一个框架里。这可能是OP想要的,我说不出来,因为问题不太清楚。不确定OP是否希望显示随机数,他们可能在操作中添加了randon变量并使用POST。谢谢,迈克。
<form name="form1" action="http://example.com/index.php" method="post">
    <input type="text" name="storeID" value="1" />
    <input type="text" name="value" value="22000" />
    <input type="text" name="orderID" value="<?php echo string_random(8);?>" />
    <input type="text" name="option1" value="0" />
    <input type="text" name="option2" value="0" />
    <input type="submit" />  
</form>