文档
Welcome! 安装(Installation) 示例列表(List of examples) 依赖注入与服务定位器(Dependency Injection/Service Location) MVC 架构(The MVC Architecture) 使用控制器(Using Controllers) 使用模型(Working with Models) 模型元数据(Models Meta-Data) 事务管理(Model Transactions) Phalcon 查询语言(Phalcon Query Language (PHQL)) 缓存对象关系映射(Caching in the ORM) 对象文档映射 ODM (Object-Document Mapper) 使用视图(Using Views) 视图助手(View Helpers) 资源文件管理(Assets Management) Volt 模版引擎(Volt: Template Engine) MVC 应用(MVC Applications) 路由(Routing) 调度控制器(Dispatching Controllers) 微应用(Micro Applications) 使用命名空间(Working with Namespaces) 事件管理器(Events Manager) 请求环境 (Request Environment) 返回响应(Returning Responses) Cookie 管理(Cookies Management) 生成 URL 和 路径(Generating URLs and Paths) 闪存消息(Flashing Messages) 使用 Session 存储数据(Storing data in Session) 过滤与清理(Filtering and Sanitizing) 上下文编码(Contextual Escaping) 验证(Validation) 表单(Forms) 读取配置(Reading Configurations) 分页(Pagination) 使用缓存提高性能(Improving Performance with Cache) 安全(Security) 加密/解密( Encryption/Decryption ) 访问控制列表 ACL(Access Control Lists ACL) 多语言支持(Multi-lingual Support) 通用类加载器 ( Universal Class Loader ) 日志记录(Logging) 注释解析器(Annotations Parser) 命令行应用(Command Line Applications) 队列(Queueing) 数据库抽象层(Database Abstraction Layer) 国际化(Internationalization) 数据库迁移(Database Migrations) 调试应用程序(Debugging Applications) Phalcon 开发工具(Phalcon Developer Tools) 提高性能:下一步该做什么?(Increasing Performance: What's next?) 单元测试(Unit testing) 授权(License)
教程

发布于 2015-08-21 15:20:33 | 406 次阅读 | 评论: 4 | 来源: 网络整理

请求环境 Request Environment

Every HTTP request (usually originated by a browser) contains additional information regarding the request such as header data, files, variables, etc. A web based application needs to parse that information so as to provide the correct response back to the requester. PhalconHttpRequest encapsulates the information of the request, allowing you to access it in an object-oriented way.

<?php

use PhalconHttpRequest;

// Getting a request instance
$request = new Request();

// Check whether the request was made with method POST
if ($request->isPost()) {
    // Check whether the request was made with Ajax
    if ($request->isAjax()) {
        echo "Request was made using POST and AJAX";
    }
}

获取值(Getting Values)

PHP automatically fills the superglobal arrays $_GET and $_POST depending on the type of the request. These arrays contain the values present in forms submitted or the parameters sent via the URL. The variables in the arrays are never sanitized and can contain illegal characters or even malicious code, which can lead to SQL injection or Cross Site Scripting (XSS) attacks.

PhalconHttpRequest allows you to access the values stored in the $_REQUEST, $_GET and $_POST arrays and sanitize or filter them with the ‘filter’ service, (by default PhalconFilter). The following examples offer the same behavior:

<?php

use PhalconFilter;

// Manually applying the filter
$filter = new Filter();
$email  = $filter->sanitize($_POST["user_email"], "email");

// Manually applying the filter to the value
$filter = new Filter();
$email  = $filter->sanitize($request->getPost("user_email"), "email");

// Automatically applying the filter
$email = $request->getPost("user_email", "email");

// Setting a default value if the param is null
$email = $request->getPost("user_email", "email", "some@example.com");

// Setting a default value if the param is null without filtering
$email = $request->getPost("user_email", null, "some@example.com");

控制器中访问请求(Accessing the Request from Controllers)

The most common place to access the request environment is in an action of a controller. To access the PhalconHttpRequest object from a controller you will need to use the $this->request public property of the controller:

<?php

use PhalconMvcController;

class PostsController extends Controller
{
    public function indexAction()
    {

    }

    public function saveAction()
    {
        // Check if request has made with POST
        if ($this->request->isPost()) {

            // Access POST data
            $customerName = $this->request->getPost("name");
            $customerBorn = $this->request->getPost("born");

        }
    }
}

文件上传(Uploading Files)

Another common task is file uploading. PhalconHttpRequest offers an object-oriented way to achieve this task:

<?php

use PhalconMvcController;

class PostsController extends Controller
{
    public function uploadAction()
    {
        // Check if the user has uploaded files
        if ($this->request->hasFiles()) {

            // Print the real file names and sizes
            foreach ($this->request->getUploadedFiles() as $file) {

                // Print file details
                echo $file->getName(), " ", $file->getSize(), "n";

                // Move the file into the application
                $file->moveTo('files/' . $file->getName());
            }
        }
    }
}

Each object returned by PhalconHttpRequest::getUploadedFiles() is an instance of the PhalconHttpRequestFile class. Using the $_FILES superglobal array offers the same behavior. PhalconHttpRequestFile encapsulates only the information related to each file uploaded with the request.

使用头信息(Working with Headers)

As mentioned above, request headers contain useful information that allow us to send the proper response back to the user. The following examples show usages of that information:

<?php

// Get the Http-X-Requested-With header
$requestedWith = $request->getHeader("HTTP_X_REQUESTED_WITH");
if ($requestedWith == "XMLHttpRequest") {
    echo "The request was made with Ajax";
}

// Same as above
if ($request->isAjax()) {
    echo "The request was made with Ajax";
}

// Check the request layer
if ($request->isSecureRequest()) {
    echo "The request was made using a secure layer";
}

// Get the servers's IP address. ie. 192.168.0.100
$ipAddress   = $request->getServerAddress();

// Get the client's IP address ie. 201.245.53.51
$ipAddress   = $request->getClientAddress();

// Get the User Agent (HTTP_USER_AGENT)
$userAgent   = $request->getUserAgent();

// Get the best acceptable content by the browser. ie text/xml
$contentType = $request->getAcceptableContent();

// Get the best charset accepted by the browser. ie. utf-8
$charset     = $request->getBestCharset();

// Get the best language accepted configured in the browser. ie. en-us
$language    = $request->getBestLanguage();
最新网友评论  共有(4)条评论 发布评论 返回顶部
PHPERZ网友 发布于2017-04-21 01:12:42
sdsdsd
支持(0)  反对(0)  回复
PHPERZ网友 发布于2017-04-21 01:12:36
sssss
支持(0)  反对(0)  回复
PHPERZ网友 发布于2017-04-21 01:12:31
ssss
支持(0)  反对(0)  回复
PHPERZ网友 发布于2017-04-21 01:12:13
ss
支持(0)  反对(0)  回复

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务