我有网址段:http://www.site.com/loadContent/contact/4
我想隐藏浏览器地址栏中的ID 4:http://www.site.com/loadContent/contact
联系人和4都是动态加载的
我如何在我的代码中做到这一点?
更新:
我必须将$pageID作为第二个参数传递
我有一个生成菜单列表项的功能:
function buildListItem($item) {
$urlItemName = url_title($item->name, 'dash', TRUE);
$urlCatID = ($item->cat_id);
$url = base_url() . $urlItemName . "/". $urlCatID;
if ($urlItemName == 'blog') {
$blog = "http://blog.tumblr.com";
return anchor($blog, strtoupper($item->name), 'target="_blank"');
} else {
return active_anchor($url, strtoupper($item->name));
}}
public function loadContent($name, $pageID) {
$data['title'] = $this->tabPageData;
$data['tabMenu'] = $this->model->getAllMenuItems();
$data['links'] = $this->model->getLinksURLIcon();
$pageName = array('portfolio-1', 'portfolio-2');
// Store pageID within Session
//$sessionPageID = $this->session->set_userdata($this->uri->segment(2));
// Check if $name is in array pageName, get the page content and its name
if (in_array($name, $pageName)) {
$data['tabPageContent'] = $this->model->getPageContentByPageID($pageID);
$data['pageName'] = $this->model->getPageNameByID($pageID);
} elseif ($name == 'contact') {
// load Contact page
$data['tabContact'] = $this->model->getContactByPageID($pageID);
}
$this->load->view('content', $data);
}发布于 2011-12-17 05:44:32
首先,你必须获得id号并保存在$_SESSION中,在这项工作之后,你使用preg_match给出,一个没有id号的url字符串。
最后,使用<?php header("location: ". $URL") ?>重定向url
发布于 2011-12-17 05:27:38
您的选择:
发布表单
编辑
合理的通用代码-应该适用于几乎任何页面的
<?
session_start();
if ( count ( $_GET ) )
{
$_SESSION['__get'] = $_GET;
header( 'Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] );
exit();
}
elseif ( array_key_exists( '__get', $_SESSION ) && count( $_SESSION['__get'] ) )
{
$_GET = $_SESSION['__get'];
$_SESSION['__get'] = array();
}
var_dump ( $_GET );注意:底部的var_dump将在一个没有任何URL参数的页面上显示$_GET。
注意:这是一次性的。第二次重新加载脚本将显示$_GET已被清空。如果您不需要这样做,请删除elseif块中的$_SESSION['__get'] = array();。
编辑
更好的函数代码和每页的参数作用域(使用$_SERVER['PHP_SELF'])
content-type: text/plain只是为了使var_dump更易读,仅此而已。
<?
// no-get.php
session_start();
header( 'content-type: text/plain' );
noGet();
var_dump( $_GET );
forgetNoGetPage();
var_dump( $_GET );
/**
* noGet - saves $_GET values to $_SESSION and redirects to same page
* @requires Session to be started
*/
function noGet()
{
// check count to see if there are fresh variables being passed to the script
// if there are, we overwrite any existing page variables in the session
// if we didn't do this, we could never pass new variables on the url to our scripts
if ( count ( $_GET ) )
{
$_SESSION['__get'][$_SERVER['PHP_SELF']] = $_GET;
header( 'Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] );
exit();
}
elseif (
array_key_exists( '__get', $_SESSION ) &&
array_key_exists( $_SERVER['PHP_SELF'], $_SESSION['__get'] ) &&
count( $_SESSION['__get'][$_SERVER['PHP_SELF']] )
)
{
$_GET = $_SESSION['__get'][$_SERVER['PHP_SELF']];
}
}
/**
* forgetNoGetPage - removes a page's $_GET values from the session and optionally redirects to the current page.
* @param String The page to remove entries for
* @param Bool Redirect after remove?
*/
function forgetNoGetPage( $page = null, $redirect = false )
{
if ( $page === null )
{
$page = $_SERVER['PHP_SELF'];
}
unset( $_SESSION['__get'][$page] );
if ( $redirect )
{
header( 'Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] );
}
}https://stackoverflow.com/questions/8540301
复制相似问题