Pereiti prie turinio

Reiktų pagalbos koreguojant php.


Rekomenduojami pranešimai

Sveiki,

 

turiu tokį kodą:

 

<?php
error_reporting(5);
require_once("config.php");

function TestTransaction( $transaction, $userPassword, $ordeID, $test = 0, $status = 1 ) {
return ( $transaction == md5("{$userPassword}|{$_SERVER['REMOTE_ADDR']}|{$ordeID}|{$test}|{$status}") );
}

if ( TestTransaction( $_GET['transaction'], $mokejimai, $_GET['id'] ) ) {

$sms = $_GET['sms'];
$duomenys = explode(" ", $sms);

$msconnect = mysql_connect("$db_host","$db_user","$db_password");
$msdb = mysql_select_db("",$msconnect);

$login_check = mysql_query("SELECT * FROM don_game_r_info WHERE account_name = '".$duomenys[1]."'"); 
$login_result = mysql_num_rows($login_check);
if ($login_result == 0) {
echo "This ".$duomenys[1]." account does not exist!";
}
else {
$msquery = "UPDATE don_game_r_info SET points = points +8 WHERE account_name = '".$duomenys[1]."'";
$msresults = mysql_query($msquery);
echo "Your account successfully added points - 8 points, good luck!"; 
}

}
else {
echo "Zinute netikra";
}

$log = fopen('atsiskaitymai.sql','a');
fwrite($log,$msquery."\r\n");
fclose($log);
//mysql_close($msconnect);
?>

 

bet jis skaito SMS antrą tekstą kadangi aš per mokejimai.lt renku iš užseniečių man reik kad skaitytų trečią tekstą, kas galėtų pagelbėt?

 

Pvž: 66655 lalala alala

Ir skaito tą antrą tekstą, reiktų kad skaitytų trečią.

Redagavo Adulis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

tavo sms'a "66655 lalala alala" funkcija $duomenys = explode(" ", $sms); sukarpo gabalais per ten, kur randa tarpeli ir priskiria is eiles nuo 0 numeruojant indeksus masuvui vienmaciam $duomenys.

 

T.y. po visko tavo $duomenys atrodo taip:

 

0 => 66655

1 => lalala

2 => alala

 

Tai je ireikia trecio, naudo $duomenys[2]

 

Bet...jei kazkokiu budu vienam is tavo SMS dedamuju atsiras dar vienas tarpo simbolis, tai viskas gausis blogai...

 

PVZ jei sms 6665 lal ala alala, visa logika griuva.

 

Be to, jei tavo gautam parametre pasitaikys kabute ('), SQL'as taps netinkamu ir netgi pavojingu.

Pvz 666655 lalala al'ala

 

Siulau pamastyt apie situos dalykus ir netestuot ant realiu sistemu :D

Prisijunges prie mokejimu gali imituoti to paties SMS pakartotini persiuntima. Puikus budas testuotis.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

<?php
error_reporting(5);
require_once("config.php");

function TestTransaction( $transaction, $userPassword, $ordeID, $test = 0, $status = 1 ) {
return ( $transaction == md5("{$userPassword}|{$_SERVER['REMOTE_ADDR']}|{$ordeID}|{$test}|{$status}") );
}

if ( TestTransaction( $_GET['transaction'], $mokejimai, $_GET['id'] ) ) {

$sms = $_GET['sms'];
$duomenys = explode(" ", $sms);

$msconnect = mysql_connect("$db_host","$db_user","$db_password");
$msdb = mysql_select_db("",$msconnect);

$login_check = mysql_query("SELECT * FROM don_game_r_info WHERE account_name = '".$duomenys[2]."'"); 
$login_result = mysql_num_rows($login_check);
if ($login_result == 0) {
echo "This ".$duomenys[2]." account does not exist!";
}
else {
$msquery = "UPDATE don_game_r_info SET points = points +8 WHERE account_name = '".$duomenys[2]."'";
$msresults = mysql_query($msquery);
echo "Your account successfully added points - 8 points, good luck!"; 
}

}
else {
echo "Zinute netikra";
}

$log = fopen('atsiskaitymai.sql','a');
fwrite($log,$msquery."\r\n");
fclose($log);
//mysql_close($msconnect);
?>

 

Dabar išsiunti tarkim: 6555 lala lalala

tas kodas patikrina ar toks lalala yra, ir atsako, taigi dabar išiunčiau sms, nurodžiau lalala, toks tikrai yra patikrinau viską, bet man vistiek gražina This lalala account does not exist!, kas netaip gali būt?

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Tarpu GET kode neturetu buti, nes jie paverciami i + ar kitoki simboli?

Tarpas ar + visvien veikia..

Pirmas dalykas kuri reik ziuret tai ar mysql uzklausa gera su "or die(mysql_error());"

Beto, kodel cia taip rasai ".$duomenys[2]." jei gali tiesiog '$duomenys[2]'..... Zodziu patikrink ar geros sql uzklausos.

ir aplamai del viso pikto pamegink is echoint visus $duomenys[1] ir pan.

Redagavo north
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Tarpas ar + visvien veikia..

Pirmas dalykas kuri reik ziuret tai ar mysql uzklausa gera su "or die(mysql_error());"

Beto, kodel cia taip rasai ".$duomenys[2]." jei gali tiesiog '$duomenys[2]'..... Zodziu patikrink ar geros sql uzklausos.

ir aplamai del viso pikto pamegink is echoint visus $duomenys[1] ir pan.

 

Padariau kaip sakiai, bet vistiek siunčiam SMS ir atgal gaunam This lalala account doesnt exist, blemba kas čia negerai yra nesuprantu...

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu žmonės iš užsienio siunčia SMS, aš vis pažiūrau ir vis parašo This blabla ar dada account doesnt exist, tai visada rankiniu būdų duodu kreditus. Įrašiau dar tuos duomenis0 duomenis1.

Redagavo Adulis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

http://php.net/manual/en/function.mysql-select-db.php

bool mysql_select_db ( string $database_name [, resource $link_identifier ] )

 

Sets the current active database on the server that's associated with the specified link identifier. Every subsequent call to mysql_query() will be made on the active database.

 

Lietuviskai - duomenu baze kurioje atliekama uzklausa.

Manau teisingas variantas:

$msconnect = mysql_connect("$db_host","$db_user","$db_password");
if(!$msconnect)die("Nepavyko prisijungti prie duomenu bazes");
$msdb = mysql_select_db("tavo_duomenu_baze",$msconnect);
if(!$msdb)die("Nepavyko pasirinkti duomenu bazes");

Redagavo RobiZ
Nuoroda į pranešimą
Dalintis kituose puslapiuose
http://php.net/manual/en/function.mysql-select-db.php

 

 

Lietuviskai - duomenu baze kurioje atliekama uzklausa.

Manau teisingas variantas:

$msconnect = mysql_connect("$db_host","$db_user","$db_password");
if(!$msconnect)die("Nepavyko prisijungti prie duomenu bazes");
$msdb = mysql_select_db("tavo_duomenu_baze",$msconnect);
if(!$msdb)die("Nepavyko pasirinkti duomenu bazes");

 

 

$msdb = mysql_select_db("",$msconnect);

 

 

pakeisk į

 

$msdb = mysql_select_db($db_table,$msconnect);

 

 

Ačiū padėjo. Dabar veikia viskas :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...