praegune kellaaeg 19.06.2025 05:41:35
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
30.05.2013 09:28:42
Kuidas saata PHP header()-iga andmeid URList sõltumatult? |
|
|
Tere. Olen väikese probleemi ees, mis korrektsuse huvides võiks mitte esineda.
http://liivanelord.planet.ee/viking/?&ok=1
Aadress sisaldab &ok=1, kuna andmete sisestuse jaoks on mul POST meetodiga form ning vältimaks andmete topeltsisestamist, siis peale edukat andmete saatmis POST-meetodil suunab header() uuele lehele ning praegu on lahendatud asi selliselt, et URL sisaldab veakoodi, milleks antud juhul on "1".
Probleem seisneb selles, et veakood tekib alati, kui aadress sisaldab &ok=1 (loogiline loomulikult) ning seetõttu sooviks headeriga saata andmeid, mis ei kajastuks URL-is, kuid mida siiski kasutades on ühekordselt võimalik tuvastada ning vastavalt sellele luua veakood. Aadressist kaotaks selle "ok=" üldse ära. Ülal mainitud link lihtsalt näitab infot, nagu oleks midagi tehtud, kuid mida tegelikult pole olnud ehk mingeid andmeid pole andmebaasi lisatud ning pole midagi kontrollida.
Või on mingi muu lihtne moodus?
Edit: Täpsustan, et form asub sellelsamas failis ning header suunab sellelesamale lehele, lihtsalt aadressile lisandub veakood.
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
tiitise
HV kasutaja
liitunud: 04.03.2005
|
30.05.2013 09:54:44
|
|
|
Võid proovida veateated sessiooni panna ja siis peale kuvamist eemaldada.
|
|
Kommentaarid: 6 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
6 |
|
tagasi üles |
|
 |
infidel
HV kasutaja

liitunud: 31.01.2004
|
|
Kommentaarid: 36 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
35 |
|
tagasi üles |
|
 |
LiivaneLord
Sõpradele "Olavi"
liitunud: 20.06.2006
|
30.05.2013 11:09:47
|
|
|
Spoiler 
tiitise kirjutas: |
Võid proovida veateated sessiooni panna ja siis peale kuvamist eemaldada. |
Äsja katsetasin seda:
php:
|
if($query!=1){ *.* (error) } else{ $_SESSION['ok']=1; header("location: ". $url_location); } if($_SESSION['ok']==1){ $error="<span style='color:green'>Andmed on Eesti Loto kodulehelt lisatud automaatselt andmebaasi. Vajadusel kontrolli üle.</span>"; }
|
Kui headeriga avaneb uus leht, siis on seansi väärtused kadunud. Lisaks, kuna &autoadd=1 loob seansi ja kui ma selle eemaldan aadressirealt, siis on seanss läbi.
Pean uurima, kas saaks selle keelata, et $_SERVER['QUERY_STRING'] muutumisel jääks seanss alles.
infidel, POSTi ei tahagi, header ongi selleks mul, et POSTi vältida, et andmete sisestus ei toimuks topelt mingil põhjusel (serveri ülekoormus vms).
EDIT: Sain korda. session_start() oli pärast headerit jäänud functioonide vahel määramata ja sellest tulenes viga.
Aadressile jätsin ok=1, millega alustatakse seanss ning veateade kuvatakse vastavalt seansi muutuja väärtusele.
Tänud vastajatele!
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
19 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|