Thanks for the correction. Now I see that PATH_INFO refers to the current page, not the calling page. I think the hidden input field solution is OK for me. What is the *Traversal interface*? Do you mean the PARENTS enviroment? ----- Original Message ----- From: "Martijn Pieters" <mj@digicool.com> To: "Li Dongfeng" <mavip1@inet.polyu.edu.hk> Cc: "Zope" <zope@zope.org> Sent: Friday, September 08, 2000 5:01 PM Subject: Re: [Zope] Help: PATH_INFO==>object
On Fri, Sep 08, 2000 at 11:32:39AM +0800, Li Dongfeng wrote:
I am writing a service for other pages to use as form action. How can I reference the caller object in DTML/python?
I can only think of this: First use PARENTS[-1] to get to the root object of the site. Then split the PATH_INFO containing the caller's path, and go down from the root to every subfolder in PATH_INFO and then get to the caller object. But this is not very elegant.
Can anyone give better solution to this?
PATH_INFO only tells you something about the service object, not about the calling page. If you use this as a FORM action target, it's the browser that makes the call, not Zope.
You can, in many cases, determine the browser URL by looking at HTTP_REFERER, but many people and companies use proxies and firewalls to filter this out nowadays; it is considered sensitive information.
If this app is targeted at a intranet or other controlled environment, you could dictate the presence of HTTP_REFERER, and rely on that, otherwise you will have to add a reference as a hidden form field generated by the calling object.
Once you have a URL of the calling object, you can use the Traversal interface to turn that URL into an object reference.
-- Martijn Pieters | Software Engineer mailto:mj@digicool.com | Digital Creations http://www.digicool.com/ | Creators of Zope http://www.zope.org/ | ZopeStudio: http://www.zope.org/Products/ZopeStudio -----------------------------------------------------
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )