Autor | Zpráva | ||
---|---|---|---|
luma64 Profil |
#1 · Zasláno: 19. 9. 2012, 11:49:30
Zdravim, ako prenesiem do inej stranky cez php obsah query (napr Select col1, col2 from tbl1) kliknutim na odkaz. Na druhu stranku ma presmeruje , ale prenesie mi iba slovicko Select.
<?php $qry=$_SESSION['SESS_QRY']; $qry="Select col1, col2 from tbl1"; $newUrl = "plan_export.php" . "?par1=$qry"; ?> |
||
panther Profil |
#2 · Zasláno: 19. 9. 2012, 11:52:38
luma64:
„ale prenesie mi iba slovicko Select.“ protoze tam mas mezery, coz nejsou platne znaky v URL. Ale nevidim jediny duvod prenaset MySQL dotazy v URL nebo sessions, ceho se snazis dosahnout? Toto je spatne reseni, najdeme lepsi. |
||
luma64 Profil |
#3 · Zasláno: 19. 9. 2012, 11:57:59
1, V stranke mam viacero moznosti filtrovania a podla toho, aka sa zvoli vytvorit prikaz, ktorym sa vytvori pohlad.
2, Z vytvoreneho pohladu chcem urobit export do suboru. Problem je v tom, ze ked sa zobrazi selekt a potvrdi sa moznost exportu, uz nemam zapamatane query. Preto ho dam do session. Nemam s tymto skusenost. 3, Preto si myslim ze jednoduche je ulozit query do session a napr. ako parameter poslat do inej stranky, z tej sa urobi export. |
||
panther Profil |
#4 · Zasláno: 19. 9. 2012, 12:03:31
luma64:
provadej filtrovani na teze strance, jen si men parametry v URL, aby na nej bylo mozno odkazat. PHP pak podle parametru, ktere obdrzi, a jejich hodnot vytvori SQL dotaz, dane hodnoty z URL dosadi a vrati vysledek. Spatna je uz tva myslenka, prenaset nekam SQL dotaz. |
||
Joker Profil |
#5 · Zasláno: 19. 9. 2012, 12:04:40
panther:
„Preto si myslim ze jednoduche je ulozit query do session a napr. ako parameter poslat do inej stranky, z tej sa urobi export.“ A když někdo otevře plan_export.php?par1=delete%20*%20from%20tbl1 ?
|
||
luma64 Profil |
#6 · Zasláno: 19. 9. 2012, 12:11:42
Joker:
OK , dakujem, vyskusam |
||
luma64 Profil |
#7 · Zasláno: 19. 9. 2012, 20:46:35
Ako si pls dokazem uchovavat rozne hodnoty query v zavislosti na vybere ? Moznosti pre vybery je viacero a ked sa mi obnovi stranka, nedokazem si povodny query uchovat. A to je aj pripad exportu ako som pisal vyssie. Ak si uzivatel zobrazi pohlad podla podmienok a klikne na Export, query uz neexistuje. Neaviem ci uvazujem spravne...Bez toho aby som pouzil session si nedokazem query uchovat.
|
||
panther Profil |
#8 · Zasláno: 20. 9. 2012, 08:48:27
luma64:
„Neaviem ci uvazujem spravne“ uz jsem psal, ze ne. Podivej se treba na strankovani, jak je resene - je to stejny pripad jako export, ktery potrebujes ty. Videl jsi nekdy na nejakem webu nebo scriptu, ze by se v URL prenasel SQL dotaz? Ze by v nekterem z tech strankovacich nebo tridicich scriptu byl SQL dotaz v sessione nebo jinde? Ne, vzdy se jen predavaji paramtery, na zaklade kterych se pak dotaz sestavi. |
||
peta Profil |
luma64:
$newUrl = "plan_export.php" . "?par1=$qry"; A urlencode mas kde? Viz priklad Jokera. Kdyz neco chces posilat pres url, tak musis vedet, jak se url pise a jake znaky ma kde povolene. Mezera neni povoleny znak a musi se zakodovat. http://cz.php.net/urlencode Pripadne si vyrob formular FORM, napis to do nej a nastav mu methode=get. Klikni na odeslat a on ti vyrobi spravnou url adresu. A viz Joker, kdyz ti tam nekdo napise query pro smazani tabulky, tak prijdes o vsechna data. DELETE * FROM tabulka DROP tabulka UPDATE uzivatele SET admin=1 WHERE name='peter' -- takze si nastavim admin prava UPDATE * FROM uzivatele -- smazu veskere uzivatele a uz se do systemu neprihlasis ani ty Viz panther, posilaji se parametry a v tom druhem php si sql dotaz sestavis znovu. Cili misto ?query=delete%20*%20from%20tbl1 si pro kazdy odkaz znovu posles vsechny parametry ?query=delete%20*%20from%20tbl1 si pro kazdy odkaz znovu posles vsechny . Nebo si ten query uloz do session. Hlavne ne do odkazu jako parametry. V tom kousku kodu nemas ani sesion_start. Zkus se podivat na priklady v manualu, jak se pracuje se session. http://cz.php.net/session_start |
||
Časová prodleva: 13 let
|
0