[ Vojislav Mihailovic @ 16.02.2004. 00:43 ] @

1. Kako da sa jedne ZPT strane prenesem vrednost neke promenljive na drugu ZPT stranu preko linka

2. Kako da sa prve ZPT strane prenesem na drugu ono sto je korisnik izabrao iz select liste

Unapred hvala,
Voja
[ m.aleks @ 16.02.2004. 07:23 ] @
Citat:
Vojislav Mihailovic:

1. Kako da sa jedne ZPT strane prenesem vrednost neke promenljive na drugu ZPT stranu preko linka

2. Kako da sa prve ZPT strane prenesem na drugu ono sto je korisnik izabrao iz select liste

Unapred hvala,
Voja


Sta ti znaci da "preneses preko linka"? Mislis da preneses promenljivu GET request-om?

<a href="druga_strana?promenljiva=vrednost"> link </a> Ovako?

Code:

<div tal:define="promenljiva vrednost">
   <a tal:attributes="href string:druga_strana?promenljiva=${promenljiva}"> link </a>
</div> 


Kazes da si koristio PHP, onda si verovatno upoznat sa session-ima. Mozes i to da koristis. Alex ti je dao primer u kome se koriste session-i.

I za 1. i 2. pitanje, vrednost u drugoj strani ces naci ovako:

Code:

<!-- druga strana -->
Vredost promenljive je <span tal:content="request/promenljiva"/>


Nije vazno da li koristis GET ili POST request uvek ih ovako nalazis.

http://www.w3.org/TR/html401/
http://www.w3.org/TR/xhtml1/
http://zope.org/Documentation/...ZopeBook/2_6Edition/AdvZPT.stx
http://zope.org/Documentation/Books/ZopeBook/2_6Edition/ZPT.stx

Alex, ti odgovaras na sledece pitanje :)
[ alex @ 16.02.2004. 09:01 ] @
Citat:
m.aleks:
Alex, ti odgovaras na sledece pitanje


Sledeci odgovor na pitanja ce biti:
Zope Dokumentacija
Zope Book
Zope API referenca
Zope How-To

Za kraj, dodao bih i odlican sajt sa receptima:
Zope Labs - odlican sajt!

Bez uvrede, Vojo, ali sva pitanja koja si postavio su veoma dobro pokrivena u dokumentaciji na gore-navedenim linkovima.

Naravno, tu smo za pomoc za ona, malko teza pitanja! Nemoj da te gore-receno navede da pomislis da odustanes.. To nije dozvoljeno

Pozdrav,
alex.
[ -zombie- @ 16.02.2004. 10:45 ] @
Citat:
m.aleks:
Code:

<!-- druga strana -->
Vredost promenljive je <span tal:content="request/promenljiva"/>



da li ovo znači da py ne razlikuje promenjive koje dolaze iz POSTa i GETa, ili je ovaj request/ način da se dobiju oba, a postoje posebno i post/ i get/ ?
[ m.aleks @ 17.02.2004. 09:32 ] @
Citat:
-zombie-:
da li ovo znači da py ne razlikuje promenjive koje dolaze iz POSTa i GETa, ili je ovaj request/ način da se dobiju oba, a postoje posebno i post/ i get/ ?


Samo da bude jasnije: Ovde govorimo o Zope serveru i o ZPT stranama, ne o Python Script-ovima u Zope serveru, i ne o cistom python-u u cgi aplikacijama.

Ne postoje posebno post i get objekti, vec samo request. To nije ni potrebno jer zahtev koji stize moze biti samo jednog tipa, ne i POST i GET istovremeno.

Probaj ovo:
Code:

<!-- druga strana -->
<div tal:content="structure request"/>


Inace ovo su sve ekvivalentni izrazi:
Code:

<!-- druga strana -->
 Vrednost promenljive je <span tal:content="request/promenljiva"/>.<br/>
 Vrednost promenljive je <span tal:content="python:request['promenljiva']"/>.<br/>
 Vrednost promenljive je <span tal:content="python:request.get('promenljiva')"/>.<br/>
 Vrednost promenljive je <span tal:content="python:getattr(request,'promenljiva')"/>.<br/>
 Vrednost promenljive je <span tal:content="python:request.promenljiva"/>.<br/>

[ -zombie- @ 17.02.2004. 10:06 ] @
Citat:
m.aleks:
Ne postoje posebno post i get objekti, vec samo request. To nije ni potrebno jer zahtev koji stize moze biti samo jednog tipa, ne i POST i GET istovremeno.


sad mi tek nije jasno.

prvo, kako skripta onda zna da li je parametre dobila preko POST ili GET zahteva? (nemojte da mi kažete da nije bitno. ponekad je vrlo bitno)

i drugo, kako ne može i POST i GET istovremeno? dobro, znam da na nivou HTTPa ne može, ali šta se dobija ako POSTujem nekek podatke na url tipa /dir/script?param=value&and=another

iako je ovo zvanično POST zahtev, trebalo bi da mogu da izvučem i tzv. "GET parametre".

inače, ovo kombinovanje je standardna praxa na webu sa drugim alatima..
[ alex @ 17.02.2004. 12:03 ] @
request.form dict uvek sadrzi informacije prosledjene POST ili GET metodom kroz web formu.

Ukoliko radis POST na URL?bla=truc POST promenljive ce biti u request.form dok ce ti URL parametri ce biti u request.environ dict-u, pod QUERY_STRING kljucem.

No, ukoliko forma ima input ime bla (u njoj upisano npr. blahblah) i ti radis GET na URL?bla=truc Zope ce to prepraviti u URL?bla=blahblah cime efikasno onemogucava prepisivanje varijabli kroz url.

Ispitivanjem request.environ['REQUEST_METHOD'] mozes dobiti informaciju o vrsti metoda i time dodatno zastititi svoju aplikaciju od prepisivanja variabli kroz url.

Primer Script (Python) objekta
Code:

from Products.PythonScripts.standard import html_quote
request = container.REQUEST
RESPONSE =  request.RESPONSE

if request.environ['REQUEST_METHOD'] == 'GET':
    print "GET method not allowed!"
else:
    print html_quote(request.form)
return printed

[ m.aleks @ 17.02.2004. 15:30 ] @
Alex ti je odgovorio detaljnije na pitanje, a i detaljnije si ga postavio.

Citat:

(nemojte da mi kažete da nije bitno. ponekad je vrlo bitno)


Citat:

Ispitivanjem request.environ['REQUEST_METHOD'] mozes dobiti informaciju o vrsti metoda i time dodatno zastititi svoju aplikaciju od prepisivanja variabli kroz url.


Da li je prepisivanje varijabli jedino od cega zelite da se stitite? Ima li jos neki primer?

Mozda gresim, ali to nije stvar alata u kome radis vec programera. Klijentu nikada ne treba slati nista sto on ne treba da zna i jos gore verovati da to sto vraca nije izmenjeno.

A sto se tice POST request-a on izgleda ovako:
Code:

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, ...
Referer: http://localhost:8080/test
Accept-Language: sr
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: localhost:8000
Content-Length: 19
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: tree-s="eJzT0MgpMOQKVneEA1dbda4CI67EkgJjLj0AeGcHew"

promenljiva=fdsfdsa


Ono sto je bilo u url-u, sada je u telu.

A, ako hocete da simulirate http klijente - httplib, urllib2.... Da li je aplikacija sigurna?
[ -zombie- @ 17.02.2004. 18:11 ] @
hvala, ali ja znam kako izgledaju http zahtevi verovatno i više nego što sam ikada želeo. :-P

ja sam pitao za istovremeno korišćenje post i get podataka. alex mi je već odgovorio. ako ti već nije jasno moje pitanje, pogledaj njegov odgovor. ;)

Citat:
m.aleks:
Da li je prepisivanje varijabli jedino od cega zelite da se stitite? Ima li jos neki primer?

Mozda gresim, ali to nije stvar alata u kome radis vec programera. Klijentu nikada ne treba slati nista sto on ne treba da zna i jos gore verovati da to sto vraca nije izmenjeno.


pa nije samo prepisivanje promenjivih, ali da se ne bi ponavljao, skoro sam opisao zašto je važno znati odakle dolaze podaci http://www.elitesecurity.org/poruka/284800.

a naravno da klijentu treba verovati.. pa otprilike nikada. ;)