Dandras Posted June 26, 2007 Posted June 26, 2007 Sziasztok! Egy kis segítséget szeretnék kérni. Olvasgattam a fórumot de hasonló témát nem találtam, viszont itt van sok hozzáértõ emberke aki talán tud nekem segíteni. A következõt dolgot szeretném megoldani a weblapomon: Ahhoz, hogy a felhesználó láthasson bizonyos részeket az oldalon egy emeltdíjas SMS-t kell küldjön, majd SMS-ben visszakap egy kódot. Na itt jön a számomra bonyolult része a dolognak: 1. Ezt a kódot kellene bekérni a felhasználótól egy ablakban (ez lesz a "CODE") 2. Meg kellene hívni egy oldalt pl.: http://valami.hu/paycheck2.cgi?id=ID&code=CODE. Erre vagy "ERR"-t vagy "OK"-t kapok eredményül. (ha beírom a címsorba a linket akkor OK-t vagy ERR-t látok) - de ezt hogy lehet lekérni??? 3a. Amennyiben "ERR" az eredmény akkor csak egy szimpla felirat kellene, hogy "Belépés nem engedélyezettt" 3b. Amennyiben "OK" az eredmény akkor engedje tovább a felhasználót a védett oldalra pl. /védett_tartalom/tartalom.php Tudna nekem ebben valaki segíteni? Minden segítséget elõre is nagyon köszönök.
h.arpad Posted June 28, 2007 Posted June 28, 2007 A lekérdezõ karakterláncban található adatokat a PHP a $_GET tömbben tárolja. Így a CODE tartalmát pl. az $_GET['CODE'] -dal tudhatod meg. Az elsõ oldalon tehát egy HTML-ûrlapnak (form) kell lennie, amit GET-tel küldesz el (method), és az action-ben annak a PHP-oldalnak az URL-jét adod meg, amelyik az elküldött adatokat összehasonlítja az érvényes adatokkal, és az ennek megfelelõ tatalmat megeleníti. Hogy hova kerülnek még az SMS-ben elküldött (érvényes) adatok (tehát a kód), azt neked kell tudni. Valószínû adatbázisba.
Dandras Posted June 28, 2007 Author Posted June 28, 2007 Kedves h.arpad! Köszönöm a segítséget. Nekem igazából olyasmi kellene, hogy valaki aki segíteni tud akár php-ben meg is írja azt a kódot ami nekem kell. Én egyáltalán nem értek ehhez a dologhoz (megírás), persze egy kész kódot be tudok illeszteni az oldalba. Természetesen ha valaki úgy gondolja, hogy meg tudja írni ezt a dolgot én fizetni is hajlandó lennék érte, ha az illetõ úgy gondolja Kicsit leírom másképp a dolgot, mert hátha nem egyértelmû amit írtam: Van a felhsználónak egy SMS-ben kapott kódja. Legyen ez a "11111111" Mikor belép az oldalra egy hasonló üzenetet lásson: belépéshez kérem a kódot Erre beírja az "11111111" kódot majd enter. Erre vagy azt látja, hogy belépés nem engedélyezett, mert érvénytelen kód vagy megjelenik a valami.php oldal neki. Azt hogy az 11111111 kód érvényes-e azt úgy lehet megtudni, hogy meg kell hívni ezt az oldalt: Kattints a linkre és meglátod mi történik, csak én ezt nem tudom hogyan lehet felhasználni (meghívni az oldalt majd a kapott eredményt feldolgozni "ERR" vagy "OK") http://fizetek.hu/paycheck2.cgi?id=1234&code=11111111 Köszönöm,
h.arpad Posted June 28, 2007 Posted June 28, 2007 Az egy CGI kimenet. Amit te kérsz az PHP. Megírom én a kód leellenőrzését simán. A gondom azzal van, hogy mivel hasonlítsam össze a látogató által beírt kódot? Vagyis a kérdésem továbbra is: hol szertnéd tárolni/hol tárolod az érvényes kódokat?
Greene Posted June 28, 2007 Posted June 28, 2007 Amit legenerál kódot és visszaküldi SMS-ben azt jobbára tárolnia kell valahol. Feltételezve, hogy SMSküldõ rendszert használnak és nem Béla bácsi generálja a kódokat a széken ülve, kell legyen egy adatbázis az SMS-ezés mögött (mondjuk 2 táblával). Ha normálisan mûködik a rendszer akkor a kimenõ SMS-ek megérkezése is logolva van, vagyis ha kiment az SMS az adott embernek, és meg is kapta(!), akkor, és csakis akkor beengedjük.
Dandras Posted June 29, 2007 Author Posted June 29, 2007 Az egy CGI kimenet. Amit te kérsz az PHP. Megírom én a kód leellenõrzését simán. A gondom azzal van, hogy mivel hasonlítsam össze a látogató által beírt kódot? Vagyis a kérdésem továbbra is: hol szertnéd tárolni/hol tárolod az érvényes kódokat? Itt tulajdonképpen két oldalról van szó. Az egyik az én oldalam a másik a szolgáltató aki a tulajdonképpeni SMS fizettetést végzi, a pénzt beszedi (majd kifizeti nekem) a kódot kiosztja és a kódot tárolja. A kódot tehát csak a szolgáltató és az az ember ismeri aki az emelt dijas SMS-t küldte. Egy-egy ilyen kód 24 órát érvényes. Az érvényes kódokat tehát nem én tárolom, hanem az a szolgáltató aki az SMS fizettetést végzi. Én nem ismerem az érvényes kódokat. Én csak ellenõrizni tudom, hogy a látogató által beírt kód érvényes-e. Ezt úgy teszem meg, hogy az oldalamon bekérem a kódot a felhasználótól majd meghívom a szolgáltató oldalát ( http://fizetek.hu/paycheck2.cgi?id=1234&code=11111111 ) aki megmondja nekem, hogy érvényes-e a kód vagy sem. A fenti példában szereplõ "11111111" kód például érvénytelen ezért ha a fenti linkre kattintasz egy "ERR"-t látsz illetve kapsz vissza. Itt az kellene, hogy ezt a visszakapott "ERR"-t egy php kód értelmezni tudná és azt mondja - ha a fenti link meghívására "ERR"-t kaptam akkor belépés megtagadva, ha pedig "OK"-t akkor a látogatónak bejön az én oldalamon a "/valami.php" oldal Bemásolom ide a szolgáltató oldalán található leírást hátha segít vmit ( http://fizetek.hu/oldal/haszut.html ): "Hozzáértõk a rendszerünket beépíthetik cgi-be, vagy php-ba is. (alternatíva) Itt a felhasználótól a kapott kódot az oldalon is be kell kérni, majd meg kell hívni a következõt a D.C.Lax-nál: http://fizetek.hu/paycheck2.cgi?id=ID&code=CODE ahol: ID: a dokumentum azonosítója nálunk; - (saját megjegyzés: ez egy állandó szám például az "1234") CODE: az általunk kiadott kód; - (saját megjegyzés: ez az amit a felhasználó ismer, például "11111111") a visszaadott érték OK, ha van fizetés, ERR, ha nincs rendben." Nem tudom mennyire érthetõ, remélem erre az információra volt szükséged. Amennyiben nem akkor írj, és megpróbálok másképp válaszolni. Elõre is köszönöm a segítséget.
h.arpad Posted June 29, 2007 Posted June 29, 2007 Kipróbáltam, nálam működik: http://lasso.arpadh.hu/pcw/checksite.php Természetesen azt írja ki, hogy a kód hibás. Ha helyes lenne, azt írná ki, hogy helyes. <?php $site = "fizetek.hu"; //NAGYON fontos! - a saját oldalad címére módosítandó: $mysite = "http://www.google.com/"; //ide jön az űrlap-adatok vizsgálata. Az egyszerűség kedvéért most csak megadom az adatokat $smsid = 1234; $smscode = 11111111; //kapcsolat megnyitása (10 másodpercig próbálkozik) $file = fsockopen($site, 80, $errno, $errstr, 10); //HTTP-fejlécek, adatok $send = "GET /paycheck2.cgi?$smsid&code=$smscode HTTP/1.1\r\n"; $send .= "Host: $site\r\n"; $send .= "User-Agent: PHP" . phpversion() . "\r\n"; $send .= "Referer: $mysite\r\n"; $send .= "Accept: text/xml,application/xml,application/xhtml+xml,text/plain"; $send .= "text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,"; $send .= "image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1\r\n"; $send .= "Accept-Language: hu-hu,hu;q=0.8,en-us;q=0.5,en;q=0.3\r\n"; $send .= "Accept-Encoding: gzip, deflate\r\n"; $send .= "Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7\r\n"; $send .= "Connection: Close\r\n\r\n"; if ($file) { fputs ($file, $send); while ( !feof($file) ) { $data[] = fgets($file, 1024); } fclose ($file); } else { print "<br/>Error: $errno $error<br/>"; } $result = $data[8]; //NAGYON fontos levágni: $result = trim($result); //a várt válaszok a CGI programtól $ok ='OK'; $err = 'ERR'; if ( strcasecmp($result, $ok) == 0 ) { //ide, hogy mi történjen, ha helyes a kód: print "A kód helyes."; } elseif ( strcasecmp($result, $err) == 0 ) { //ide, hogy mi történjen, ha helytelen: print "A kód helytelen!"; } else { //ha bármi hiba van a karakterlánc tartalmával: print "Hiba az adatok feldolgozása során. Tartalom: $result"; } ?>
Dandras Posted June 30, 2007 Author Posted June 30, 2007 Kedves h.arapad! Teljesen tökéletesen műkődik. Nagyon szépen köszönöm a segítségedet és a fáradozásodat és nem utolsó sorban a türelmedet. Nagyon sokat segítettél, és mindezt rendkívül profi módon és gyorsan. Még egyszer nagyon köszönöm! Üdvözlettel, DAndrás
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now