不允许用户访问配置文件.php但允许他访问配置文件.php?用户名=



我知道这个问题有些怪异,但是我不希望用户访问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();

欢呼

相关内容

  • 没有找到相关文章

最新更新