![]() |
PHP pomoć
Kao prvo, pozdrav svima! Ovo je moj prvi post, a nadam se ne i poslednji.. :)
Počeo sam da radim neki sajt sa SMS porukicama i došao na ideju da se na sajtu može videti samo jedna, nasumično izabrana SMS poruka. E sad, instalirao sam xampp i uspeo da napravim bazu sa porukama, uradio sam i .html "kostur" za sajt, ali ne mogu nikako da napišem PHP kod koji bi generisao nasumično izabranu poruku i prikazao je na ekranu. Ako neko može da mi pomogne, biću mu veoma zahvalan. Pozdrav! |
Nisi rekao šta te konkretno muči?
Nadam se da te ne muči povezivanje sa bazom i slanje upita jer je to nešto najosnovnije i uputstva za tako nešto se mogu naći za 5 minuta (hint: http://www.google.com/search?q=php+mysql+tutorial) A ako te zanima kako iz baze izvući nasumično jednu poruku, ovo bi moglo da odradi taj posao (SQL upit): Kôd:
SELECT * FROM sms_tabela ORDER BY RAND() LIMIT 1 |
Konkretno me muči php :)
Hvala ti, pomogao si mi, našao sam na tom sajtu kako da se povežem sa bazom i taj upit je to što mi treba. Kod koji sam otkucao radi.. :1090: PHP kôd:
Ja ustvari želim da korisnik kada ode na sajt dobije slučajno izabranu sms poruku (i to mi je jasno), ali veleo bih i da na sajtu postoji URL do te poruke kao i link pomoću koga će dobiti novu (slučajno izabranu) poruku. Samim tim će se i URL promeniti.. Takoreći svaka poruka bi trebala da ima svoju adresu odnosno onaj dodatak ?id=nekibroj.. Nadam se da sam razumljivo postavio pitanje tj. da znate šta me muči :1041: |
Id trenutno prikazane poruke ti se nalazi u $red[id]. Da bi prikazao tekst odredjene poruke moras da kreiras novu stranicu koja ce da primi parametar id od poruke koja treba da se prikaze.
Na stranici koju si ti napravio imas poziv nove stranice: HTML kôd:
<a href="prikazi_poruku.php?id="<?php $red['id']?>Prikazi sms</a> PHP kôd:
|
Hvala, namučih se, al evo šljaka :)
Jedino što mi u adresi ne pokazuje id, znači adresa mi je uvek http://localhost/proba/index.php?id= a mislim da bi trebalo.. http://localhost/proba/index.php?id=17 ili http://localhost/proba/index.php?id=4.. I još nešto.. ponavljaju mi se poruke uzastopno.. jel mogu ja tu nešto da ukucam pa da on ne prikazuje poruku koju je već prikazao :1007: |
Citat:
sad kad ti to radi, evo malo dopunskog štiva: http://www.google.com/search?q=php+sanitize+input |
Bio je syntax error. Probaj ovako:
HTML kôd:
<a href="prikazi_poruku.php?id=<?php echo $red['id']?>">Prikazi sms</a> |
Citat:
Kôd:
sanitize($_GET, array( 'id'=>'int') ); @еraser Sad radi baš kako treba :1090: Ali ja imam još pitanja :1045: Jel moguće sad za svaki SMS da se odradi "rejting"? Ono kao na youtube za klipove što ima, tako nešto i za ove moje poruke? |
Citat:
Ovo je jedan od nacina, vremenom kada malo 'udjes u stos' videces da sve ovo nije toliko tesko i da za resenje svakog 'problema' postoji vise nacina. |
Citat:
Ako neces da koristis tu klasu, onda proveri tip promenljive koji pustas u upit, i obavezno se zastiti od nezeljenih inputa. Npr, pogledaj http://php.net/manual/en/function.my...ape-string.php, a procitaj i ovu temu: http://www.devprotalk.com/showthread.php?t=7875 |
MySQL-ov rand() ni najgorem neprijatelju ne bih preporučio. Pogotovo ako ćeš da imaš >1000 tih SMS poruka.
Što se tiče potencijalne SQL injekcije, smor su te klase. Možda je bolje... $var = (int)$_GET['id']; ili $var = (is_numeric($_GET['id'])) ? $_GET['id'] : $default; ili sl. |
Citat:
@japan vidim da je korisno to što si mi dao da čitam, međutim ja bih morao mnogo više da čitam jer ne znam ni šta su klase :) U svakom slučaju ću sve to pogledati i posle verovatno imati pitanje koje se tiče bezbednosti samo da se rešim ovih glavnih muka. @AnonymousCoward imaću manje od 500 poruka, a predpostavljam da MySQL-ov rand() ne valja jer se dešava da ponovi id ili tako nešto? U svakom slučaju ću za sad ostaviti ovako pa kad budem ono glavno završio, posvetiću se detaljima funkcionalnosti i perfekcije :) ps. sajt samo što nije gotov :1076:, moram još da odradim taj rejting i odmah ga "puštam u promet" :1034: |
Off Topic: Ovo počinje da liči na PHP manual :) |
Ako zelis da imas i srednju ocenu onda moras da imas i polje koje ce da broji ukupan broj glasova pored polja koje ce da pamti zbir ocena. Srednju vrednost mozes da dobijes kao 'calculated value' tj. ukupan zbir ocena/ukupan broj glasova
|
Off Topic: preporucujem da kupis i neku knjigu za pocetnike. bilo je tema o dobrim knjigama ovde na forumu, potrazi |
Evo, znači celo jutro pokušavam da napravim to ocenjivanje ali mi ne ide nikako. Našao sam i kako bi trebalo da izgleda kod, što ću vam pokazati.
Pokazuje mi slučajno izabrani SMS, trenutni rejting i kada kliknem na ocenu prebaci me na sledeći SMS. Ali ne beleži u bazu zbir ocena niti broj glasova. Evo kako mi izgleda kod, pa ako može neko da mi kaže gde je greška, šta sam propustio? PHP kôd:
|
Променљива $voted ти нигде није постављена. Требало би да користиш $_GET['voted'].
Надам се и да ти је јасно да ово овако неће радити како ти мислиш. Ова задња линија, која ти ажурира оцене, би требало да се позива само ако је $_GET['mode'] == 'vote' а не при сваком покретању странице. |
Usputna napomena... Preporučljivo je da umesto da na toliko mesta koristiš
PHP kôd:
PHP kôd:
|
Odustajem od svega..
izvalio sam da ne umem da uradim taj rejting, a pritom mi ni onaj random generator ne radi kako treba.. Kad ukucam u adresu http://localhost/proba/index.php?id=3 ne izbaci mi treći sms, već peti ili pedeseti ili prvi.. Mislio sam da je mnogo lakše da se odradi ovo što sam zamislio, ali izgleda da nije tako i smorio sam se ko plovak :( Hvala svima na odgovorima, ali nema smisla više da zamajavam ni vas a ni sebe. |
ode mas' u propas' :D
(nisam hteo da gnjavim ranije) epa ne moze :) ljudi se ubise da ti pomazu, a ti sad: nema smisla da vas zamajavam moj savet je da pocnes od pocetka i da citas ;) nije problem sto si uzeo nesta da na njemu ucis (sms random + rating) problem je sto nisi naucio kako se snaci jedan nacin je da sednes, procitas knjigu, dve i programiras (probas/eksperimentises) usput pomalo drugi nacin je blizi tvom: pocnes da radis nesta, vidis da ne ide, nadjesh neki clanak o tome (dovde sve isto). e sad, kad uzmes da citas taj clanak, i naidjes na nesta sto ne razumes - a ti opet potrazi info za to sto ne razumes. koliko vidim, nisi shvatio sta su ti ljudi ovde napisali u tome je problem ti bi samo da copy-paste (ne da u tome ima nesta lose, ali je lose ukoliko hoces da programiras ) ukoliko ti programiranje nije interesantno (t.j. hteo si sajt sa sms-ima, a ne da programiras) - onda pogledaj neki gotov CMS koji vec ima te i takve mogucnosti poz |
Ipak ne odustajem, ono je bio samo trenutak moje slabosti :1016:
|
Off Topic: da se nadovezem na ono sto je robi rekao Moja teorija je da postoje 3 grupe ljudi: a) oni koji vole programiranje b) oni koji mrze programiranje c) oni koji ni ne znaju da vole programiranje super je kad na forumu naleti neko iz c grupe, ali nista gore kad je b :) |
Evo mene opet, blago meni, opet ja :)
Konačno imam kod koji radi. Poslušao sam ovo što su rekli holodoc i JovanT. I video sam zašto AnonymousCoward kaže da MySQL-ov rand() ni najgorem neprijatelju ne bi preporučio (reason), ali ću to da isprobavam drugi put. sada imam fajl bapro.php koji izgleda ovako.. PHP kôd:
PHP kôd:
a preview u pretraživaču izgleda 'vako.. ![]() Sve funkcioniše kako treba.. Kada kliknem na "Prikaži sledeći SMS", on prikaže nasumično izabrani SMS. Kad kliknem na ocenu, on oceni SMS koji treba i prikaže sledeći nasumično izabrani SMS. E sad.. ono što mene zanima je sigurnost.. Ja sam samo ubacio ono što je AnonymousCoward rekao (intval() komandu).. Da li postoji neka elementarna stvar koju sam propustio? Nešto što bih morao da dodam, a nisam? Treba li da stoji mysql_close( ) na kraju bapro.php fajla? Jel sigurno da upload-ujem ovakav sajt i bazu? :1087: Hvala unapred na odgovorima. |
$id = $_GET['id']; => $id = (int)$_GET['id'];
|
Vreme je GMT +2. Trenutno vreme je 13:44. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.