Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  SMS Skripti viga 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:  
ufo56
HV Guru
ufo56

liitunud: 18.11.2004




sõnum 03.08.2011 19:11:29 SMS Skripti viga vasta tsitaadiga

Tere

Selline mure siis, sms skript töötab läbi fortumo testkeskonna ilusti aga kui saata sms siis Viga sõnumis. Mis võib viga olla ? Ise ei oska midagi peale hakata eriti.


php:
  1. <?php
  2. // fortumo
  3. $SERVER_IPS = array('81.20.151.38', '81.20.148.122', '209.20.83.207', '79.125.125.1');
  4. $SIGNATURE      = 'asdasdasd';
  5.  
  6. // mysql
  7. $MYSQL_HOST     = 'localhost';
  8. $MYSQL_USER     = 'baas';
  9. $MYSQL_PASS     = 'parool';
  10. $MYSQL_DB       = 'parool';
  11.  
  12. $SENDER  = $_GET['sender'];
  13. $MESSAGE        = $_GET['message'];
  14. $REPLY    = "Thank you $SENDER for sending $MESSAGE.";
  15. $CREDIT  = '2.00';
  16.  
  17.  
  18. // check that the request comes from Fortumo server
  19. if(!in_array($_SERVER['REMOTE_ADDR'], $SERVER_IPS)) {
  20.         die("Error: Unknown IP");
  21. }
  22.  
  23. // check the signature
  24. if(empty($SIGNATURE) || !check_signature($_GET, $SIGNATURE)) {
  25.         die("Error: Invalid signature");
  26. }
  27.  
  28.  //customize this according to your needs
  29. if(preg_match("/Failed/i", $_GET['status'])) {
  30.         die("Error: Makse ebaõnnestus");
  31. }
  32.  
  33. // email
  34. if (!preg_match('/HOSTLI (.+)/i', $MESSAGE, $email)) {
  35.         die("Error: Viga sõnumis");
  36. }
  37.  
  38. add_cash($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS, $MYSQL_DB, $email[1], $CREDIT);
  39.  
  40. echo $REPLY;
  41.  
  42. function check_signature($params_array, $secret) {
  43.         ksort($params_array);
  44.  
  45.         $str = '';
  46.         foreach ($params_array as $k=>$v) {
  47.                 if($k != 'sig') {
  48.                         $str .= "$k=$v";
  49.                 }
  50.         }
  51.         $str .= $secret;
  52.         $signature = md5($str);
  53.  
  54.         return ($params_array['sig'] == $signature);
  55. }
  56.  
  57. function add_cash($server = 'localhost', $user = '', $password = '', $db = '', $email, $credit) {
  58.         $sql = mysql_connect($server, $user, $password) or die(mysql_error());
  59.         mysql_select_db($db, $sql) or die(mysql_error());
  60.        
  61.         // kontrolli kas kasutaja on olemas
  62.         $result = mysql_query("SELECT `id` FROM `tblclients` WHERE `email` = '".addslashes($email)."'") or die(mysql_error());
  63.        
  64.         $rows = mysql_num_rows($result);
  65.        
  66.         if ($rows == 1) {       
  67.                 mysql_query("UPDATE `tblclients` SET `credit`= `credit`+'".addslashes($credit)."' WHERE `email` = '".addslashes($email)."'") or die(mysql_error());
  68.                 mysql_close($sql);
  69.         } else {
  70.                 mysql_close($sql);
  71.                 die("Error: Kasutaja puudub");
  72.         }
  73. }
  74. ?>

_________________
 Lae pildid -> pilt.io
Kommentaarid: 78 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 67
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 03.08.2011 20:37:04 vasta tsitaadiga

järelikult kohale jõudnud sõnum ei vasta antud regulaaravaldisele
kirjuta $MESSAGE kusagile üles (faili või andmebaasi), siis peaks näha olema, milles asi

+niikuinii võiks reaalse rakenduse puhul kõik saabunud sõnumid (sql injectioniga loomulikult arvestades) koos ip'de, saatja numbrite ja kellaegadega baasi salvestada, et hiljem igasugu arusaamatusi oleks võimalik lahendada
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
ufo56
HV Guru
ufo56

liitunud: 18.11.2004




sõnum 03.08.2011 20:42:50 vasta tsitaadiga

Fortumo salvestab seda minu eest juba, huvitav kui ühest kohast töötab ja teisest mitte.
_________________
 Lae pildid -> pilt.io
Kommentaarid: 78 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 67
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 03.08.2011 20:56:26 vasta tsitaadiga

ufo56 kirjutas:
Fortumo salvestab seda minu eest juba, huvitav kui ühest kohast töötab ja teisest mitte.

doh.gif selle pärast ma räägingi, et kohale jõudnud sõnumeid logida. Järelikult teisest kohast tulevad teistsugused sõnumid.
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
19Mart94
HV kasutaja

liitunud: 22.06.2010



Autoriseeritud ID-kaardiga

sõnum 03.08.2011 20:56:38 vasta tsitaadiga

Ma juba seletasin sulle, mis seal valesti icon_rolleyes.gif
Kommentaarid: 33 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 31
tagasi üles
vaata kasutaja infot saada privaatsõnum
ufo56
HV Guru
ufo56

liitunud: 18.11.2004




sõnum 03.08.2011 21:00:14 vasta tsitaadiga

Mul ei ole tõesti seletamisest kasu kui ma ei saa sellest aru. Pange aga teema kinni ja kõik.
_________________
 Lae pildid -> pilt.io
Kommentaarid: 78 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 67
tagasi üles
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 03.08.2011 21:42:07 vasta tsitaadiga

Alusta ikkagi sellest, mida soovitati - kirjuta $MESSAGE väärtus kõige täiega baasi või kuhugi välja. Siis näed vähemalt, mis kujul sealt sõnum tuli. Kui sinu viidatud teatega sureb, siis järelikult selle regulaaravaldise järgi meiliaadressi sõnumist ei leitud, järelikult tuleb sõnumile kriitiliselt otsa vaadata, et mis seal teisiti on.
_________________
Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
19Mart94
HV kasutaja

liitunud: 22.06.2010



Autoriseeritud ID-kaardiga

sõnum 03.08.2011 21:58:31 vasta tsitaadiga

Viga on selles, et ta kontrollib, kas sõnumi sisus on HOSTLI, aga Fortumos on märksõna ja sõnumi sisu eraldi väärtused. Ridade 34-36 asemel peaks olema hoopis e-maili kontroll $MESSAGE väärtusest.
HOSTLI on $_GET['keyword'] väärtuses.
Kommentaarid: 33 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 31
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 03.08.2011 22:12:19 vasta tsitaadiga

Ah ok, siis muuda
if (!preg_match('/HOSTLI (.+)/i', $MESSAGE, $email)) {

rida
if (!preg_match('/(.+)/i', $MESSAGE, $email)) {

ja kärab küll.
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
ufo56
HV Guru
ufo56

liitunud: 18.11.2004




sõnum 03.08.2011 22:49:16 vasta tsitaadiga

DoS tänud aitamast aga nüüd genereerib rea et kasutaja puudub
_________________
 Lae pildid -> pilt.io
Kommentaarid: 78 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 67
tagasi üles
vaata kasutaja infot saada privaatsõnum
19Mart94
HV kasutaja

liitunud: 22.06.2010



Autoriseeritud ID-kaardiga

sõnum 03.08.2011 23:02:35 vasta tsitaadiga

addslashes() võib sul emaili stringi segamini ajada koodis.
Kommentaarid: 33 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 31
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 03.08.2011 23:10:53 vasta tsitaadiga

ufo56 kirjutas:
DoS tänud aitamast aga nüüd genereerib rea et kasutaja puudub

Kas see tuleb läbi testikeskkonna või smsiga?
Nii on suht võimatu öelda, milles täpselt asi on. Midagi keerulist seal ei ole, soovitan võimalusel keegi tuttav (veebi)progeja kõrvale võtta ja asi üle vaadata. Seda enam, et antud koodis on veel kahtlaseid asju sisse kirjutatud, mis küll testimiseks kõlbavad, aga päris lahenduses ei pruugi kõige paremad olla.
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  SMS Skripti viga
[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.