我需要实现一项功能:
我有一些限制:
我不明白如何使用php通过这样的链接验证用户。 如何避免404错误?
答案 0 :(得分:0)
Mod重写我这样做的方式,这将使它更简单但同时也很困难。
.htaccess file_ _ __ _ __ _ __ _ __ _ < / EM> ____ 强>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /main site folder/
RewriteRule (.*)\.xml(.*) $1.php$2 [nocase]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1
</IfModule>
/classes/simplifyURL.php file_ _ __ _ __ _ __ _ __ < EM> _ _ 强>
<?php
class simpleUrl{
var $site_path;
function __construct($site_path){
$this->site_path = $this->removeSlash($site_path);
}
function __toString(){
return $this->site_path;
}
private function removeSlash($string){
if( $string[strlen($string) - 1] == '/')
$string = rtrim($string, '/');
return $string;
}
function segment($segment){
$url = str_replace($this->site_path, '', $_SERVER['REQUEST_URI']);
$url = explode('/', $url);
if( isset($url[$segment]))
return $url[$segment];
else
return false;
}
}
?>
index.php文件的顶部_ _ __ _ __ _ ___
<?php
include 'classes/simplifyURL.php';
$url = new simpleUrl('/main site folder');
$url1 = $url->segment(1);
$url2 = $url->segment(2);
$url3 = $url->segment(3);
$url4 = $url->segment(4);
?>
将页面包含在index.php中,基于url_ _ __ _
<?php
$pages_dir = 'pages';
if (!empty($url1)) {
$pages = scandir($pages_dir, 0);
unset($pages[0], $pages[1]);
$p = $url1;
if (in_array($p.'.inc.php', $pages)) {
include($pages_dir.'/'.$p.'.inc.php');
} else {
echo 'Sorry, page was not found.';
}
} else {
include($pages_dir.'/home.inc.php');
}
?>
这是你必须做出的巨大转变。不管怎样,让我解释上面的部分。它接受url的第一位的值,因此在域之后并检查文件夹页面,如果它可以找到它,它将显示它。因此,对于您的情况,您需要创建一个名为user.inc.php的文件。将身份验证放入其中并使用$ url2 varible访问url的末尾,以获取您拥有的长代码。其他明智的称为动态页面。希望这有帮助
这是很多工作,我没有看到GET的错误