Joomla 组件问题 - 从 index.php 上下文访问 Joomla 框架
嗨我有以下问题。组件上的标准操作在 Joomla 中称为 index.php?option=com_name&action=MYACTION
。然后我可以在我的组件中使用 Joomla 框架,例如用于数据库访问。 我正在开发 3dsecure 网关的组件。在付款的一个步骤中,我需要验证从银行发送的数据。所以我需要像这样的index.php?option=com_name&action=validate
。但是银行在这个 URL 后面添加了另一个 ?
和更多参数,所以我认为它无法工作。所以我想从 3dsecure.mysite.com 访问我的 Joomla 组件/validate.php
?可能吗?
我只是想使用 JFactory::getDB ,然后重定向到任何视图。我知道我可以使用 mysql_connect 并创建自己的数据库连接,但它非常丑陋:)
我可以以某种方式重定向我这边的请求(使用从银行发送的参数创建有效的网址)吗?header(Location:)??
感谢您的帮助
hi I have following problem. Standard actions on components are in Joomla called like this index.php?option=com_name&action=MYACTION
. Then I can use Joomla framework in my component e.g for database access.
I am developing component for 3dsecure gateway. In one step of the payment i need validate data sent from bank. So I need something like this index.php?option=com_name&action=validate
. But the bank adds after this URL another ?
and more parameters, so I think it can't be working..So I want to access my Joomla component for example from 3dsecure.mysite.com/validate.php
?Is it possible?
I simply want to use JFactory::getDB
and then e.g redirect to any view. I know I can use mysql_connect and create own connection to DB, but it is very ugly:)
Can I somehow redirect the request on my side (create valid url with parameters sent from bank) ?header(Location:)
??
Thank you for your help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
考虑在服务器上使用重写规则。
例如,重写
进入
如果您使用 Apache,则可以使用 mod_rewrite 为此目的。
Consider using a rewrite rule on the server.
For example, rewrite
into
If you are using Apache, you can use mod_rewrite for this purpose.
你不能在框架之外使用 Joomla! 的 api,除非你在那里提供所有需要的依赖项(从而在其他地方重新创建框架),这是非常无意义的。
此外,您可以在组件 url 中拥有许多参数,这取决于组件路由器知道该怎么做...因此,在组件的路由器类中,您将为每个 $ 放置处理程序_GET 您需要的参数,例如从银行返回的参数。
如果您只是不想弄脏 mysql_* 的内容,请使用 PDO(顺便说一句,这是一种更好的方法)。
You can't use Joomla!'s apis outside the framework, unless you provide there al the need dependencies (thus recreating the framework elsewhere), which is pretty nonsense.
Moreover, you can have has many parameters as you want in a component url, it's up to the component router to know what to do about that... So, in you router class of the component, you'll place handlers for every $_GET paramater you need, like those returned from the bank.
If you just don't want to get dirty with mysql_* stuff, use PDO (which is, btw, a better approach in general).