从URL栏隐藏已解析的变量

时间:2013-07-10 04:30:23

标签: php html

如何将可变的一个表单传递给另一个表单

时创建此URL
 localhost/haha/index.php/somethingupdate?id=mstr01

到这个

 localhost/haha/index.php/somethingupdate

我仍然可以使用传递的变量? 任何人都可以帮助我,我非常感谢任何帮助。

4 个答案:

答案 0 :(得分:2)

我认为您可以使用隐藏字段来传递变量

<input type="hidden" name="id" value="mstr01" />

答案 1 :(得分:1)

将您的表单方法更改为POST并使用$ _POST变量而不是$ _GET变量,您将看不到URL末尾的变量

答案 2 :(得分:1)

您可以使用.htaccess文件将所有请求重定向到index.php,在index.php文件中,您将拥有一个可以处理所有请求的控制器。

示例:

routing.php用于PHP开发服务器

<?php
   if (file_exists(__DIR__ . '/' . $_SERVER['REQUEST_URI'])) {
     return false; // serve the requested resource as-is.
   } else {
     include_once 'index.php';
   }
?>
用于apache web服务器的

.htaccess文件

# Turn rewriting on
Options +FollowSymLinks
RewriteEngine On
# Redirect requests to index.php
RewriteCond %{REQUEST_URI} !=/web/index.php
RewriteCond %{REQUEST_URI} !.*\.png$ [NC]
RewriteCond %{REQUEST_URI} !.*\.jpg$ [NC]
RewriteCond %{REQUEST_URI} !.*\.css$ [NC]
RewriteCond %{REQUEST_URI} !.*\.gif$ [NC]
RewriteCond %{REQUEST_URI} !.*\.js$ [NC]
RewriteRule .* /web/index.php

controller.php:查询字符串控制器

<?php 

/*
 * Page Controller
 * Decodes query string and loads page
 */

$qs=array_reverse(explode('/',parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)));
foreach ($qs as $key=>$value) $qs[$key] = urldecode(htmlspecialchars($value));
$this->controller = $qs[0];
switch ($this->controller) {
    case "somethingupdate":
        #$this->area = $qs[1];
        #if ($this->area=="home") {
        #   include("pages/home.php");
        #} else {
        #   include("pages/{$this->area}/home.php");
        #}
        break;
    case "somethingelse":
        #$this->cat = $qs[1];
        #$this->area = $qs[2];
        #if ($this->cat=="static") {
        #   include("pages/{$this->area}/home.php");
        #} else {
        #echo "Err.404 - Page not found (area:{$this->area}; cat:{$this->cat}.";
        #}
        break;
    default:
        $this->area = "home";
        include("pages/{$this->area}/home.php");
        break;
}?>

然后在您的index.php文件中添加要显示页面内容的controller.php

答案 3 :(得分:0)

您可以使用客户端解决方案

window.history.pushState("object or string", "Title", window.location);

但你应该删除所有字符?通过在window.location中替换空格

例如x.com?id=10应为x.com