加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

公共文件夹访问控制器功能中的typo3 php文件

发布时间:2020-12-13 21:54:42 所属栏目:PHP教程 来源:网络整理
导读:是否有任何posibillity从php文件访问控制器功能,该文件基于resource / public / php / file.php 我想要的是这个php文件是我使用它的特殊文件: img src="file.php"/img 我将禁用可读路径.所以这个php文件做了一些加密,需要连接到普通的控制器功能. 谢谢 解决
是否有任何posibillity从php文件访问控制器功能,该文件基于resource / public / php / file.php

我想要的是这个php文件是我使用它的特殊文件:

<img src="file.php"></img>

我将禁用可读路径.所以这个php文件做了一些加密,需要连接到普通的控制器功能.

谢谢

解决方法

is there any posibillity to access a controller function from a php file that is based in resource/public/php/file.php

是的,这是可能的,但是你也需要引导TYPO3核心.或者,如果它是静态和公共方法,则可以直接调用它.

但在你的情况下,这似乎不是正确的方法.

假设您正在处理某种验证码,您应该考虑使用自己的页面类型来渲染动态图像.这是一个有效的例子:

TypoScript设置

在TypoScript中,我们正在注册我们自己的页面typ并将其指向我们的扩展,控制器和操作:

DynamicCaptchaImage = PAGE
DynamicCaptchaImage {

    typeNum = 1234

    10 = USER_INT
    10 {
        userFunc = TYPO3CMSExtbaseCoreBootstrap->run
        pluginName = Pi1
        extensionName = MyExtName
        vendorName = MyCompanyName
        controller = MyExtbaseController
        action = renderCaptchaImage
        # view =< plugin.tx_myextname.view  // you provide the view yourself
        # persistence =< plugin.tx_myextname.persistence // in case you need a repository you should uncomment it
        settings =< plugin.tx_myextname.settings
    }

    config {
        disableAllHeaderCode = 1
        additionalHeaders = Content-Type: image/png
        xhtml_cleaning = 0
        admPanel = 0
        debug = 0
    }
}

另见:Registering a custom typeNum-based Controller access

调节器

以下是控制器和操作应如何显示的示例:

<?php
namespace MyCompanyNameMyExtNameController;

/**
 * MyExtbaseController
 */
class MyExtbaseController extends TYPO3CMSExtbaseMvcControllerActionController {

    /**
     * Render Captcha Image Action
     *
     * @return void
     */
    public function renderCaptchaImageAction() {

        // Send some headers
        header('Content-Type: image/png');

        // < do your magic stuff here >

        // Breaks the script because we've sent already some headers and want
        // to prevent that TYPO3 is adding another stuff (eg. for debugging purposes)
        // that can break the image from loading.
        // return FALSE; does not stop doing that!
        exit;
    }

}

另见:Extbase wiki

访问控制器

现在我们已经配置了自定义页面类型,我们可以通过调用TypoScript设置中给出的页面类型来访问控制器.

例如. http://www.example.com?type=1234指出MyExtbaseController中的renderCaptchaImageAction().

流体

在Fluid中,您可以链接到您配置的页面类型:

<img src="{f:link.page(pageType: 1234)}" />

另见:Fluid wiki

Realurl

如果你正在使用扩展版本,你可以通过以下方式更改?type = 1234到captcha.png:

// [...]
'fileName' => array(
    'index' => array(
        'captcha.png' => array(
            'keyValues' => array(
                'type' => 1234,),// [...]

另见:Realurl wiki

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读