Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Abi PHP's märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
LinkyB
HV kasutaja

liitunud: 19.06.2005




sõnum 08.07.2009 15:38:54 Abi PHP's vasta tsitaadiga

Sooviks kiirelt abi kuidas teha lihtsalt lehtede jaotus, nii > esimesed 10 on lk 1 , teised 10 on lk 2, kolmandad 10 on lk 3 jne. Lugesin küll PHP centerist jaotust MySQL'iga aga minu aju seda ära ei võtnud, väga väike
väheste teadmistega progreja, aga koodiga ise olen hetkel jõudnud nii kaugele:

php:
  1. case 5:
  2.  
  3. include 'db.php';
  4.  
  5. mysql_connect(localhost,$username,$password);
  6. mysql_set_charset('utf8');
  7. @mysql_select_db($database) or die( "Unable to select database");
  8. $query="SELECT * FROM kuulutused where staatus='1' and class='5'";
  9. $result=mysql_query($query);
  10. echo "<b><center>Kuulutused - Paar otsib Paari</center></b><br><br>";
  11. $num=mysql_numrows($result);
  12. if ($num==0) {
  13. echo "Kuulutused puuduvad veel!";
  14. }
  15.  
  16.  
  17. $i=0;
  18. while ($i < $num) {
  19.  
  20. $nimi=mysql_result($result,$i,"nimi");
  21. $vanus=mysql_result($result,$i,"vanus");
  22. $elukoht=mysql_result($result,$i,"elukoht");
  23. $kuulutus=mysql_result($result,$i,"kuulutus");
  24. $ip=mysql_result($result,$i,"ip");
  25.  
  26. echo "Nimi: $nimi<br>Vanus: $vanus<br>Elukoht: $elukoht<br>Kuulutus: $kuulutus<br>IP: $ip<br><hr><br>";
  27.  
  28. $i++;
  29. }
  30. ;
  31. break;

_________________
[img:]https://foorum.hinnavaatlus.ee/images/200x40_HV.gif[/img:]
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
troglodyte
Kreisi kasutaja
troglodyte

liitunud: 09.08.2002




sõnum 08.07.2009 15:53:03 vasta tsitaadiga

http://dev.mysql.com/doc/refman/5.1/en/select.html, loe LIMIT kohta
_________________
ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn
Kommentaarid: 34 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 34
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 08.07.2009 17:17:22 vasta tsitaadiga

Sa küsid valesti, juba MySQL päringu saad selliselt teha, et vastus on teatud reast teatud reani.
limit on võtmeks. See, kuidas neid ridasid ja tabeli mahtu arvutad on juba teine teema.

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
LinkyB
HV kasutaja

liitunud: 19.06.2005




sõnum 08.07.2009 17:24:34 vasta tsitaadiga

Olen saanud hakkama sms aktiveerimisega, mysql insertiga, lugemisega jms. kuid soovin veel teada kuidas teha inserted.php kuva peale mysql inserti info 'nimi', 'vanus','elukoht' jne kas siis viimase id järgi või viimati listud järgi või hoopiski kõige loogilisem variant, see mis just sisestati formi ja postitati mysql tabelisee
_________________
[img:]https://foorum.hinnavaatlus.ee/images/200x40_HV.gif[/img:]
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 08.07.2009 17:32:48 vasta tsitaadiga

Kui seda on kohe peale postitust vaja, siis kasuta postituse andmeid. Baasist ära loe midagi. Kõige kiirem.

Kui tahad ikkagi andmebaasi viimast, sordi kõik tagurpidi id suhtes ja kuva esimene päring.

SELECT * FROM tabel  order by id desc

_________________


viimati muutis andrusny 08.07.2009 17:46:53, muudetud 1 kord
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 08.07.2009 17:46:03 vasta tsitaadiga

ot:
https://foorum.hinnavaatlus.ee/viewtopic.php?t=417268 !?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 08.07.2009 19:09:36 vasta tsitaadiga

andrusny kirjutas:
Kui seda on kohe peale postitust vaja, siis kasuta postituse andmeid. Baasist ära loe midagi. Kõige kiirem.

Kui tahad ikkagi andmebaasi viimast, sordi kõik tagurpidi id suhtes ja kuva esimene päring.

SELECT * FROM tabel  order by id desc
kuule sellist lolli nõu ära parem küll anna icon_evil.gif

Mille jaoks siis mysql_insert_id() funtsioon on? http://ee.php.net/manual/en/function.mysql-insert-id.php

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 08.07.2009 20:36:05 vasta tsitaadiga

Sellega ta saab teada viimase id ainult peale insert tegemist, aga mis siis, kui ta ei soovi midagi sisestada ja tahab viimast teada?
_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 08.07.2009 21:45:13 vasta tsitaadiga

andrusny, sellisel juhul on sinu näide ikkagi vägagi vale. Miks ta peaks näiteks 10MB või ekstreemsusse langedes 1GB tabeli iga kord SQL serverist PHPsse tõmbama?

Selle jaoks on LIMIT. Aga üldiselt eeldada ei ole mõtet - küsimus oli peale sisestust sisestatud andmete teadasaamine. Sellejaoks ongi viimase sisestuse ID + päring baasi.

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 08.07.2009 21:54:50 vasta tsitaadiga

Optimeeringu suhtes küsimus et milleks oleks üldse vaja andmebaasist uuesti samu andmeid vaja välja tõmmata, mis sinna just sisse saadeti ?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 08.07.2009 22:00:21 vasta tsitaadiga

mikk36, viisakas on peale formi submitti redirect teha järgmisele lehele, et mõni mees refreshi vajutades andmeid uuesti ei submitiks.
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 08.07.2009 22:05:00 vasta tsitaadiga

Ja mis kasu on siis sellel scriptil endale andmed sisse tõmmata kui script niikuinii käsib hoopis redirecti teha ja see konkreetne script (see käivitus) neid andmeid brauserile ei jaga ?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 08.07.2009 22:06:37 vasta tsitaadiga

mikk36, misasja sa sokid?

insert -> get ID -> redirect koos IDga -> select

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 08.07.2009 22:08:42 vasta tsitaadiga

Renka kirjutas:
mikk36, misasja sa sokid?

insert -> get ID -> redirect koos IDga -> select
Renka kirjutas:
küsimus oli peale sisestust sisestatud andmete teadasaamine. Sellejaoks ongi viimase sisestuse ID + päring baasi.
Kas selle all mõtlesid järgmisel käivitusel selle id kasutamist või sama scripti sees ?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 08.07.2009 22:16:58 vasta tsitaadiga

mikk36, viisakas on ikka järgmisel lehel seda kasutada. Samas oleneb kuidas keegi kasutab. Võib ka samal lehel ju - kuigi mina seda heaks ei kiidaks.

See, et samal lehel ei ole mõtet päringut baasi teha ei ole aga ka õige lähenemine. Loogika peaks ikka olema see, et kuvad kasutajale seda infot mis reaalselt baasi jõudis. Sellisel juhul võtad andmed baasist - mis siis, et need on sul POST'is või kus iganes olemas. Sellega jääb lehe ülesehituse loogika selgem ja saab ka kohest tagasisidet, et kas andmed ikka reaalselt salvestusid baasi ja mis kujul. Debugidagi lihtsam. Rääkimata olukordadest kus baasi sisestamisel toimub baasis endas veel andmete töötlus - Oracles laialt kasutav praktika. MySQLis küll vähem aga kohtab ka vahest. Kasvõi mõne timestambi lisamine näiteks.

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 08.07.2009 22:19:43 vasta tsitaadiga

Hästi põhjendatud thumbs_up.gif
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
LinkyB
HV kasutaja

liitunud: 19.06.2005




sõnum 09.07.2009 14:24:53 vasta tsitaadiga

php:
  1. $lkjaotus=new lkjaotus(5,(int)$_GET['lk'],'SELECT nimi,vanus,elukoht,kuulutus,id,ip FROM kuulutused WHERE staatus="1" AND class="1"','SELECT COUNT(*) FROM kuulutused WHERE staatus="1" AND class="1"');



Kuidas ma saan, et ta countiks tabelist ainult read mis on class='1' ?

php:
  1. 'SELECT COUNT(*) WHERE class"1" FROM kuulutused WHERE staatus="1" AND class="1"');


sobib selline ? EDIT: sobis icon_smile.gif

_________________
[img:]https://foorum.hinnavaatlus.ee/images/200x40_HV.gif[/img:]


viimati muutis LinkyB 09.07.2009 14:31:46, muudetud 2 korda
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 09.07.2009 14:27:55 vasta tsitaadiga

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 09.07.2009 14:33:33 vasta tsitaadiga

Renka kirjutas:
mikk36, viisakas on peale formi submitti redirect teha järgmisele lehele, et mõni mees refreshi vajutades andmeid uuesti ei submitiks.


Selle jaoks mu arust praktilisem ja toimivam viis kasutada token'ite süsteemi. A'la, hidden lahtris suvaline number ja küpsisesse/sessiooni see sama. submit'imisel kontrollitakse neid ja kui klapib, on korras. icon_wink.gif Toimib küll. icon_wink.gif Hoiab ka natuke teatud tüüpi rünnakute vastu. icon_wink.gif

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 09.07.2009 14:35:14 vasta tsitaadiga

jnt, ei ole hea ju.

Jällegi tuleb lehe ülesehituse loogika mängu. Formi submittimisega tegeleb üks osa koodist ja kuvamisega teine. Ei ole ilus neid segada.

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 09.07.2009 14:36:09 vasta tsitaadiga

Renka, koodi võib osadesse jagada ka teistmoodi, kui erinevate failidena juppe hoida. icon_exclaim.gif icon_wink.gif
_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
LinkyB
HV kasutaja

liitunud: 19.06.2005




sõnum 09.07.2009 14:39:52 vasta tsitaadiga

Mis minu variandil viga on täiesti lihtne ja kõlblik ..
_________________
[img:]https://foorum.hinnavaatlus.ee/images/200x40_HV.gif[/img:]
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 09.07.2009 14:41:43 vasta tsitaadiga

jnt kirjutas:
Renka, koodi võib osadesse jagada ka teistmoodi, kui erinevate failidena juppe hoida. icon_exclaim.gif icon_wink.gif
erinevatest failidest ei ole keegi rääkinud - vaid üldisest koodi loogikast/arhitektuurist/disainist
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 09.07.2009 14:49:51 vasta tsitaadiga

Renka, kes seda käskis sul segada? icon_razz.gif tokenite süsteem ei välista korralikku struktuuri veebilehe ülesehituses.

Minu arust on nt ka pidev refresh'imine jms teema erinevate lehe osade kasutamiseks ka väga vale lahendusviis. Lehe ülesehitus peaks minu arust olema selline, et kood on ees, ja lõpus lüüakse siis koodi tulemustele template ümber ja korras. Mingist "segamisest" on asi väga kaugel sel juhul. Ja tokenitega pole ka mingit probleemi.

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 09.07.2009 15:01:52 vasta tsitaadiga

jnt, eks oleneb projekti suurusest ja maitsest. Aga sellise lahendusega suuremat projekti ei ole küll võimalik normaalselt hallata.
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 09.07.2009 15:09:49 vasta tsitaadiga

Renka, oled sa ikka kindel? Sellise lahendusega projekte on tehtud küll ja küll ja pole mingeid probleeme esinenud. Hallatavus, kui selline, on ka kiire, lihtne ja konkreetne... Palju konkreetsem, kui mingid taustal refresh'imised igal juhul. icon_razz.gif
_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
LinkyB
HV kasutaja

liitunud: 19.06.2005




sõnum 10.07.2009 15:18:10 vasta tsitaadiga

http://linkz.pri.ee/id1.php?lk=3

Kõiksugune tabelist võetud tekst jookseb lihtsalt nii välja, kuidas seda parandada, ei saa lihtsalt hakkama..

_________________
[img:]https://foorum.hinnavaatlus.ee/images/200x40_HV.gif[/img:]
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 0
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 10.07.2009 15:22:56 vasta tsitaadiga

LinkyB, http://ee2.php.net/manual/en/function.wordwrap.php

mis teil inimestel lahti küll on? elementaarne manuali oskus võiks siiski olemas ju olla...

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 13.07.2009 16:28:11 vasta tsitaadiga

jnt kirjutas:
Renka kirjutas:
mikk36, viisakas on peale formi submitti redirect teha järgmisele lehele, et mõni mees refreshi vajutades andmeid uuesti ei submitiks.


Selle jaoks mu arust praktilisem ja toimivam viis kasutada token'ite süsteemi. A'la, hidden lahtris suvaline number ja küpsisesse/sessiooni see sama. submit'imisel kontrollitakse neid ja kui klapib, on korras. icon_wink.gif Toimib küll. icon_wink.gif Hoiab ka natuke teatud tüüpi rünnakute vastu. icon_wink.gif

Issand jumal küll, pole mõtet teiste kallal õiendada ja õigustuseks tuua "mul ennem on töötanud" kui loogika asjal on mööda. Mis su ilusast tokenite süsteemist siis saab kui kasutajal on kahes aknas / tabis sinu leht lahti ? icon_biggrin.gif Kohe ütlen mis saab, halvimal juhul saab kordamööda eri akendes vastu hambaid ja sinupoolne ainus vastus oleks asjale "mul ju töötab" ning sa ei jagaks halligi mis probleem on.

Lahtiseletatult:
Sa genereerid uue tokeni, paned sessiooni massiivi (või küpsisesse) et token on 1234, formi paned hidden välja et token on 1234.
Kasutaja vaatab ühte lehte ühes aknas, kõik on ilus.
Kasutaja võtab uue akna lahti.
Kood ütleb uut formi genereerides et sessioonis olev token on nüüd 2345, kuvatud formis on ka 2345.
Kasutaja teeb seal midagi, otsustab minna eelmisele tabile/aknasse tagasi, submitib seal formi ja saab piki hambaid et formist tulnud token 1234 ei klapi sessioonis oleva tokeniga 2345 (või veel mõne muuga).
Selle käigus kuvatakse talle uut formi ja pannakse tokeniks 3456 (sessioonis ja formis).
Kasutaja vaatab et mida kino, mingi jama, läheb teise aknasse tagasi ja saab seal jälle piki hambaid kuna sessioonis on token 3456 aga temal seal lahti jäänud formis on 2345.
Ja nii ringiratast icon_biggrin.gif

Ma olen väga palju taolisi asju näinud kus arendajad lambist eeldavad, et kasutajal on ainult üks aken lahti ja siis topitakse igast jura sessiooni, ning mitme akna lahti oleku puhul on kohe kõik metsas.
Ikka ilgelt vihale ajab kui arhitektuurile ja kasutajapoolsele käitumisele üldse ei mõelda ja dokumentatisoonist kah välja ei loeta mismoodi sessioon ja cookied töötavad browseri akende vahel icon_razz.gif (vihjeks: kahe eri akna vahel on küpsised jagatud => sellest tulenevalt on ka php sessioon jagatud)

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 16:39:41 vasta tsitaadiga

inzinz, mis hea pärast sa kahelt aknalt sama vormi kaudu korraga midagi sisestad? No kammoon, alati on võimalik leida mingit jura, kuidas üks või teine asi ei tööta. Aga miks ta peaks töötama niimoodi? paras debiilsus sama vormi avada mitmes aknas ja neid mõlemaid kasutada.
Suva-refreshid taustal on veel rohkem mööda loogika, kui tokenid. Tokenid vähemalt tõstavad ka mõningal määral turvalisust.

Ja mulle pole vaja seletada, mis moodi küpsised/sessioonid toimivad ja mida tokenite süsteem endaga kaasa toob.

Vot sulle minu paar senti!

(Deem, leiaks ma nüüd ühe video, mis sulle puust ja punaseks teeb, miks tokenid head on, oleks tore... aga sellega läeb tsipa aega.)

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 16:48:37 vasta tsitaadiga

jnt, niikaua kui ehitad väikeseid veebilehti ja/või mõne üksiku kasutajaga süsteeme ei ole su lahenduses võibolla tõesti midagi halba. Suudad asja hallata ja kuna kasutajate mass on nii väike siis ei teki ka probleeme (või pigem ei raporteerita nendest).

Kui süsteem on aga suurem ja pead töötama veel mitme inimesega tiimis siis sinu loogika ei tööta enam.

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 17:02:26 vasta tsitaadiga

Renka, mitu inimest kasutab sama arvuti tagant sama brauserit? No tule taevas appi...
_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 13.07.2009 17:15:35 vasta tsitaadiga

jnt, palun väga, kirjuta siis omale formide alla suures ja punases kirjas kasutajatele "kui kahes aknas selle formi lahti võtad siis oled debiil" icon_biggrin.gif
Sa ei saa kasutajal keelata mingit postitamise formi kahes aknas lahti võtta. Googledades php form token oli kohe kaks esimest pealtnäha asjalikku tulemust (http://www.phpro.org/tutorials/Preventing-Multiple-Submits.html http://phpsec.org/projects/guide/2.html) sellises stiilis:
sisendi kontroll:
kasutaja submitib formi
kontrollime kas postitatud token on sama mis sessioonis
väljastamine:
genereerime unikaalse tokeni
paneme tokeni sessiooni muutujasse
kuvame tokeni formis

Nii, ja kui nüüd kasutaja võtab ühes aknas lahti mingi formi vaate, siis otsustab veel korra lahti võtta, siis avastab et krt juba oli lahti, paneb uue kinni ja üritab vana formiga submittida, siis selline loogika annabki talle piki hambaid.
Tokenite idee on hea, aga selline sessiooni salvestamine on lollus, katsu sa kasutajale seletada et tema oma süü et ta sinu lehel mingit formi vales järjekorras vaatas, kasutaja jaoks on sinu leht see mis on vigane mitte tema käitumine.
See ei ole koht, kus kommenteerida "alati on võimalik leida mingi jura kuidas asi ei tööta", vaid vaid koht, kus sa peaksid otsima paremat lahendust kus oleks olemas tokeni süsteem CSRF vältimiseks, kuid samas sa ei piira seda et kasutajad võivad, üllatus-üllatus, sinu lehte kahest aknast vaadata.

EDIT: Kui veel aru ei saanud, siis mitte samal ajal vaadata, vaid teha eelkirjeldatud viisil, et võtab kogemata lahti sama koha. Või kui sul on tokenite süsteem kõikidel formidel läbi ühise sessiooni muutuja siis võtab lahti teises aknas suvalise koha kus ka formi kuvatakse ja ongi perses icon_biggrin.gif

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 17:16:19 vasta tsitaadiga

inzinz, siin on pakutud välja kahte varianti: token'id ja refresh'imine. Kas sa pooldad lehti, mis ise refresh'ivad ennast? Selline praktika on samamoodi ebasoovitatav, nagu ei ehitata täna ka lehti iframe'idega.

Ja kui tahad väga keeruliseks minna, võid ju samale formile tokeneid genereerides teha nii, et ühe formi kohta saab olla mitu tokenit. Kontrollitakse, kas vähemalt ühega ühtib, mis genereeritud on ja kui ühtib, submititakse asi ära + kustutatakse tokenite "arhiiv". Ongi probleem lahendatud... Pane need tokenid sessiooni kujul kasvõi "token|token|token|".

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 13.07.2009 17:28:00 vasta tsitaadiga

Kui sessioonis kõik tokenid alles hoida siis jah kaob see jama ära, et teist tabi/akent lahti võttes kirjutatakse token üle ja siis eelmises tabis on asi metsas. Siis peab jälgima seda et neid tokeneid paljuks ei lähe ja sessiooni pirakaks ei aja.

Aga refreshimise all sa mõtled mida täpsemalt ? Ma kaldun arvama, et refreshimise all sa pead silmas neid lehti mis näitavad peale postitamist mingit vahelehte (näiteks phpbb foorum) mis siis suunab edasi uuele lehele (näiteks topicu vaatesse uue postituse juurde).
Mida mina ja pakun et ka teised silmas peavad on selline kood php's:

if(isset($_POST['teemidagi'])) {
   //loogika siia
   header('Location: viewtopic.php?p='.$post_id);
   exit;
}

Selline headeriga redirect kasutaja poolel on 100% märkamatu (kui just headereid ei jälgi).
Sisuliselt saadab kasutaja browser formi postituse serverisse, server lisab kirje andmebaasi ja ütleb browserile (ilma lehte kuvamata) et mine nüüd sinna aadressile edasi. Kasutaja poolelt vaadates submitib ta vormi ära ja järgmine hetke on viewtopic.php?p=123 aadressil.
Ei mingid "old school" jama et "oota 3 sekundit ja leht suunab sind edasi".

EDIT: Ja see on ilusti kasutajapoolse refresh vajutamise kindel, browseris refresh või F5 vajutades mängib browser läbi ainult viimase tegevuse ehk viewtopic.php?p=123 aadressile mineku.
Nüüd sinna juurde lisada see sessioonis erinevate tokenite hoidmise süsteem (ideaalis kuidagi nii et üle teatud aja tokenid eemaldatakse automaatselt) ja ongi sul olemas CSRF kindel süsteem + refreshi vajutades ei saa kasutaja mingit veateadet ega ei hakka mingit suurt faili uuesti submittima kogemata.

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 17:40:18 vasta tsitaadiga

jnt kirjutas:
Renka, mitu inimest kasutab sama arvuti tagant sama brauserit? No tule taevas appi...
Täiesti reaalne ju.

Kasvõi HV foorumi näitel - mul on päris mitu TABi lahti. Vaata iga teema lõpus on ka kiirvastuse vorm - sinu tokenite süsteem ei toimiks kuidagi ju. Või mis?

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 18:26:34 vasta tsitaadiga

inzinz, ei, ma mõtsin ikka seda header()'i refresh'i, ehk sain aru, millest eelpool räägiti, kuid siiski on minu arust tegemist väheke jama lahendusega. Kui tekib viga, millest tahad teatada + tahad formi ka alla lüüa sisestatud andmetega, millest midagi oli vale, siis selle asja lahendamine pole kuigi lihtne refresh'imisel. Samas, kui sellist refresh'i koodi mitte vahele toppida, on võimalik luua ilus kena errorite/teadete kuvamise süsteem, mis formiga samal lehel kenasti kõik vead/teated ära kuvab, kui neid on.

Renka, aga miks sa tahad kiirvastusele tokeneid toppida? icon_lol.gif

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 18:29:57 vasta tsitaadiga

jnt, kiirvastus ju tavaline form nagu iga teinegi. Või kuidas sa selle lahendaksid? icon_rolleyes.gif

Kusjuures seesama phpBB foorum suunab su headeri abil peale formi submittimist uuele lehele ilusasti. Huvitav küll miks?

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 18:34:02 vasta tsitaadiga

Renka, siin foorumis, kui vastust kirjutad, oled sa sisse logitud ja sind on võimalik mingilgi moel vasututsele võtta. Teema algas aga mingist kuulutuste süsteemist, kus vist igaüks sai kuulutuse lisada. Seal on igasugune turvanipp teretulnud, kuna kes iganes saab form'ile ligi ja saab kuulutusi ka lisada.
_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 18:35:31 vasta tsitaadiga

jnt, mis jama sa nüüd ajad? Loe nüüd uuesti millest vaidlus algas.
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 13.07.2009 19:46:29 vasta tsitaadiga

jnt kirjutas:
inzinz, ei, ma mõtsin ikka seda header()'i refresh'i, ehk sain aru, millest eelpool räägiti, kuid siiski on minu arust tegemist väheke jama lahendusega. Kui tekib viga, millest tahad teatada + tahad formi ka alla lüüa sisestatud andmetega, millest midagi oli vale, siis selle asja lahendamine pole kuigi lihtne refresh'imisel. Samas, kui sellist refresh'i koodi mitte vahele toppida, on võimalik luua ilus kena errorite/teadete kuvamise süsteem, mis formiga samal lehel kenasti kõik vead/teated ära kuvab, kui neid on.

Renka, aga miks sa tahad kiirvastusele tokeneid toppida? icon_lol.gif

Issand jumal, selle jaoks tuleb progeda nii nagu teha on vaja icon_biggrin.gif Keegi ei rääkinudki et on vaja alati refreshida. Refreshid siis, kui on kirje baasi lisatud ja erroreid pole. Mis siin loogikas arusaamatuks veel saab jääda ???
kasutaja postitab formi
kui kõik ok sisestame baasi ja suuname kasutaja location headeriga uuele aadressile (kasutaja saab kohe õiget aadressi sisse kopeerida)
kui ei ole ok, kuvad ilma refreshita formi koos vanade andmetega

Tuleb teha nii nagu vaja on, mitte kogu aeg refreshiga suunata edasi või kogu aeg ilma refreshita läbi ajada. Kombineerida tuleb osata vastavalt vajadusele et saada valmis parim lahendus...
EDIT:
Kui nüüd jälle ei saa minu jutust poindist aru, siis ausalt ma enam ei jaksa seletada, tee sa oma lehtedega mida tahad, aga palun ära hakka levitama müüti "location header on paha" nagu disainerid kõik levitavad müüti "kõik tabelid on pahad, kõik tuleb teha dividega" ja siis leiutavad igast jubedusi kokku mis "ootamatutes" reaalsetes olukordades piiksu kukuvad ja kogu lehe välimuse ära rikuvad icon_biggrin.gif

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 20:43:23 vasta tsitaadiga

inzinz, kuid mis juhtub siis, kui sa tahad õnnestumisel ka teadet kasutajale kuvada? Kui sul formiga leht tegeleb ka andmebaasi sisestamisega, mitte ei ole selleks mingi teine adre, mis pärast suunab nt formi juurde tagasi, siis on lihtne kontrollida andmeid ja kuvada vajalikud teated või vead. Kui sa aga peale sisestamist tahad kuskile ära suunata, siis see, kuhu sa suunad, sinna saata kaasa ka teade on märksa keerulisem. Pmst isoleerid ju kontrolli ja hiljem kuvatava osa ära. Okei, võib alati nii teha, et sul on mingi n+1 teadet, igal teatel on oma id, mis nt kahe astmed järjest ja siis liidad kokku, suunad edasi, andes selle liidetud tulemuse ja siis järgmisel lehel jagad uuesti osadeks, otsid igale id'le tema teate ja on ka tehtud, kuid miks nii kilplaslikult asjale läheneda?

Aga ei, ma saan su poindile kenasti pihta ja see vaidlus, mis meil on, aitab meil mõlemal ehk üht või teistpidi targemaks saada ja uusi ideid luua. Ja kõrvalvaatajal on eriti mugav selle vaidluse pealt õppida, mida saab teha ja mida tasub teha... ja millal. icon_biggrin.gif

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 20:57:45 vasta tsitaadiga

jnt, mingisuguste teadete kuvamine on ju kõige lihtsam asi.

Kirjutad oma teate sessiooni ja järgmisel lehel kuvad selle välja ning kustutad sessioonist.

Mingi URLiga teate kaasaandmine aga ei sobi minusilmis kuidagi. URLis olev info peaks olema siiski ainult see mis on antud lehe kuvamiseks hädavajalik. Kui kasutaja URLI kopeerib siis ta näeb teadet ju igal korral uuesti - näiteks kui ta peaks selel teatega URLi bookmarkima.

Aga ürita asjast suuremat pilti näha. Sul on olemas lisamise vaade ja kuvamise vaade. Mõlemal vaatel on ka oma unikaalne URL. Juhul kui nüüd andmed on ilusasti lisatud läbi lisamise vaate. Siis loogiline on ju, et kasutaja näeb sisestatud andmeid läbi kuvamise vaate. Sellisel juuhl on sul kõik kuvamisega seotud kood/HTML ainult ühes kohas. Ei ole vaja meeles pidada, et kuskohast nüüd mul kuvamise HTMLi juurde inkluuditakse ja mis tingimustel. Hallatavus on parem ja ei pea lisatingimusi meelde jätma. Lisaks kaasneb sellega kasutajale parem kasutusmugavus kuna peale mingi asja siestamist saab ta aadressiribalt kopeerida omale kohe õige URLi mida siis vajadusel kellelegi mailida või omale bookmarkida jne jne.

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 20:59:50 vasta tsitaadiga

Renka, sinu näitel ehk selline variant parem. Samas, kui tegemist on rohkem admin lehe laadse asjaga, kus sa tahad, et peale lisamist tuleb sul see sama form ette, kas siis just lisatud andmetega või uue vormina, siis mis suunamist sa siin ikka hakkad tegema...
Ühesõnaga, siin tuleb tõesti välja see, et tuleb progeda, kuidas vaja on.

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Renka
HV Guru
Renka

liitunud: 01.04.2002



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 21:19:09 vasta tsitaadiga

jnt, kui vaja sama vormi siis suunad muutmisvaatesse nii nagu sa esimest kordagi sinna lehele satuksid. Sellest kirjutasin juba teema alguses.
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga
sõnum 13.07.2009 21:28:09 vasta tsitaadiga

Renka, kusjuures ma siin hetkel hakkasin mõtlema, et see teadete salvestamine sessiooni vmt on täitsa huvitav idee... thumbs_up.gificon_smile.gif
_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Kommentaarid: 116 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 107
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Abi PHP's
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
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.