我知道这个问题有些怪异,但是我不希望用户访问profile.php,而没有"用户名"。因为它显示了未定义的用户名。无论如何我能做到吗?例如,用户单击用户名,他将被重定向到profile.php?用户名= y,但我不希望他输入url profile.php。如果他这样做,我想将他重定向到另一页。我疲倦地获取URL,如果是profile.php,我只想重定向他,但是如果有?
您可以检查?username=
是否存在:
if(isset($_GET['username'])){
// The user tried to access profile.php?username=
}else{
// The user went to profile.php
}
有关$_GET
的更多信息:
http://php.net/manual/en/resveres.variables.get.php
您始终可以通过.htaccess文件处理或使用重定向函数,如$ _request中未提供所需字段的重定向函数:
function RedirectToURL($url) {
header("Location: $url");
exit;
}
但是,如果我正确理解您,我认为这将是糟糕的编程。也许您可以在profile.php页面中使用请求助手对象(如果没有前控制器)。从那里,您将能够操纵请求详细信息并及时做出反应。这是一个Sugention:
class RequestHelper {
private static $instance;
private static $properties;
public static function instance() {
if (is_null(self::$instance)) {self::$instance = new self();}
return self::$instance;
}
private function __construct() {
$this->init();
}
protected function init() {
// updating properties with fields from submitted form.
if (isset($_SERVER['REQUEST_METHOD'])) {
self::$properties = $_REQUEST;
}
}
private function getProperty($key) {
if (isset(self::$properties[$key])) {
return self::$properties[$key];
}
return null;
}
private function setProperty($key, $val) {
self::$properties[$key] = $val;
}
public function getUserName() {
return getProperty("username");
}
}
echo RequestHelper::instance()->getUserName();
欢呼