在URL中提交没有名称的输入值

时间:2015-03-30 12:19:22

标签: php jquery forms .htaccess

有没有办法提交输入字段值而不在URL中获取其名称?

我使用带有GET方法的表单进行搜索,当我提交表单时,我会得到这样的结果:

/file/?inputname=value

我想这样做:

/file/value

否则:如果第一个解决方案无法实现,我怎样才能修改.htaccess以上述方式重写URL(我的意思是:/file/?inputname=value),但请注意我在中使用了2个参数网址dir1/file/?inputname=value .

提前致谢

4 个答案:

答案 0 :(得分:2)

试试这个:Solution Here

使用.htaccess,如下所示

RewriteEngine On
RewriteRule ^(.*)$ /index.php?url=$1 [L]

对于您网站上的用户,他们会看到并导航到这个:

http://example.com/value

但真正的页面会是这样的:

http://example.com/index.php?inputname=value

这一位[L]告诉服务器这是重写规则的最后一行并停止。

答案 1 :(得分:0)

将表单方法设置为发布

<form method="post" ...

并在PHP文件中接收此类数据

$inputValue = $_POST['inputname'];

答案 2 :(得分:0)

首先是不可能的。

htaccess的:

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

PHP

    $url = rtrim($_GET['url'], '/');
    $url = filter_var($url, FILTER_SANITIZE_URL);
    $url = explode('/', $url);

    $part1 = (isset($url[0]) ? $url[0] : null);
    $part2 = (isset($url[1]) ? $url[1] : null);
    $part3 = (isset($url[2]) ? $url[2] : null);
    $part4 = (isset($url[3]) ? $url[3] : null);
    $part5 = (isset($url[4]) ? $url[4] : null);

/*
$partN will contain the input after the URL. 
If URL was http://foo.com/this/is/fun
$part1 = this
$part2 = is
$paer3 = fun
*/

答案 3 :(得分:0)

您必须使用发布方法。

  

注意:POST方法发送的数据通过HTTP标头,因此安全性取决于HTTP协议。通过使用安全HTTP,您可以确保您的信息是安全的。

REFERENCE

还有重写规则,试试这个

RewriteEngine on
RewriteRule ^dir1/file/$ http://www.my.domain.com/dir1/file [QSA,L]