Parašė adulis· 2008 Lap. 16 17:11:32
#1
Sveiki,
turiu dabar du kodus
sms.php:
<?php
//Irasykite Jusu specifine informacija
$mysql_host="mysql2.bendras.com"; //Irašykite MySQL serverio adresa
$mysql_user="cia vartotojas tas"; //Irasykite savo MySQL vartotojo prisijungimo varda
$mysql_pass="cia slaptazodis"; //Irasykite savo MySQL vartotojo prisijungimo slaptazodi
$mysql_db="cia duombazes pav"; //Irasykite savo duombazes pavadinima
$sms_pass="cia slaptazodis kuri ivedziau kurdamas raktazodi"; //Irasykite slaptazodi kuri irasete sukurdami raktini zodi
//Apmokejimo dorojimo grazinamas SMS atsakymas (jei Jums suteikia tokia galimybe)
$ret_txt="Jusu zinute gauta";
// Tikrinam ar atitinka URL uzklausos slaptazodis (tik jei nurodytas $sms_pass)
if(!empty($sms_pass))
if(md5($sms_pass."|".$_SERVER["REMOTE_ADDR"]."|".$_GET['uid']) != $_GET["pass"])
die();
//Prisijungiam prie MySQL
$conn=mysql_connect($mysql_host,$mysql_user,$mysql_pass) or die($ret_txt);
//Pasirenkam duombaze
mysql_select_db($mysql_db,$conn) or die($ret_txt);
$sql=sprintf("INSERT INTO parama (`dt`,`tonr`,`txt`,`phone`,`operator`,`amount`,`word`,`uid`) VALUES('%s','%s','%s','%s','%s',%01.2f,'%s',%u)",date("Y-m-d H:i:s",time()),safeinput($_GET["tonr"],45),safeinput($_GET["txt"],255),safeinput($_GET["phone"],45),safeinput($_GET["operator"],45),round(intval($_GET["amount"])/100,2),safeinput($_GET["word"],45),intval($_GET["uid"]));
mysql_query($sql,$conn);
die($ret_txt);
/////////////////////////////////////////////////////////////////////////////////////////
function safeinput($var, $len)
{
if (get_magic_quotes_gpc())
{
$var = stripslashes($var);
}
return mysql_real_escape_string(substr($var,0,$len));
}
?>
ir parama.php:
<?php
//Paramos nuskaitymo funkcija
// Panaudojimas:
// 1. Ikelkite si faila į viesa Jusu svetaines direktorija
// 2. Jusu svetaines PHP faile, kuri visada naudojate (pvz.: index.php) iterpkite tokia eilute:
// require_once("parama.php");
//
// Noredami nuskaityti SMS zinutes reiksmes is duombazes, iskvieskite funkcija get_parama() su sekanciais parametrais:
// $conn - Jusu aktyvus prisijungimas prie MySQL serverio
// $cnt - kiek SMS zinuciu nuskaityti 1-100vnt.
// $word - jei nurodytas, filtruoti pagal raktini zodi
// $amount - jei nurodyta suma (dauiau nei 0), filtruoti pagal paramos zinutes pinigu suma
// $phone - jei nurodytas, filtruoti pagal siuntejo telefono numeri
// $uid - jei nurodytas (daugiau nei 0), filtruoti pagal unikalu paramos zinutes id
// Grazinamas masyvas su zinutem, atrinktom pagal duotus kriterijus, kaip masyvas masyve
// Reiksmes galima gauti taip: print $array[<zinutes eiles numeris 0-...>][<laukelio numeris>];
// Jei gaunama paskutine 1 zinute, tai pvz.:
// print $array[0]["txt"]; //Atspausdins tik paskutines zinutes teksta
function get_parama($conn, $cnt=1, $word="", $amount=0, $phone="", $operator="", $uid=0)
{
$sql="";
if(!empty($word))
$sql="word='".$word."'";
if($amount>0)
$sql=$sql.(!empty($sql) ? " AND " : "")."amount=".sprintf("%01.2f",$amount);
if(!empty($phone))
$sql=$sql.(!empty($sql) ? " AND " : "")."phone='".$phone."'";
if(!empty($operator))
$sql=$sql.(!empty($sql) ? " AND " : "")."operator='".$operator."'";
if($uid>0)
$sql=$sql.(!empty($sql) ? " AND " : "")."uid=".$uid;
if($cnt<1)
$cnt=0; //Jei nenurodyta ar nurodyta 0, tai gauti 1 paskutine zinute
else
if($cnt>100)
$cnt=100;//Jei daugiau nei 100, tai rodyti tik 100 zinuciu
$sql="SELECT * FROM parama ".(!empty($sql) ? "WHERE ".$sql : "")." ORDER BY dt DESC LIMIT ".$cnt;
$result=mysql_query($sql,$conn) or die(mysql_error());
if(!mysql_num_rows($result))
return array(); //Neradus rezultatu, grazinti tuscia masyva
// Sukeliam rezultatus i masyva
$arr=array();
$kount=0;
while($arr[$kount] = mysql_fetch_assoc($result))
$kount++;
return $arr;
}
?>
Išsiunčiu sms viskas ok gaunu atsakyma jusu zinute gauta sekute tolimesniais svetaines nurodymais.
Pasižiųrau
MYSQL jinai yra toj lenetelėj kurią sukųriau, bet man tos žinutės neatvaizduoja nei vienam faile nei sms.php nei parama.php kažkas tuose koduose negerai. Jaigu galit mestelkit akį kas ten ne taip :/
Plačiau apie viską:
http://wiki.tinklalapis.net/doku...sms_parama
Redagavo adulis· 2008 Lap. 16 17:11:27
Parašė MAnjack· 2008 Lap. 17 14:11:57
#3
Klaida tai išeoina va čia:
$sql="SELECT * FROM parama ".(!empty($sql) ? "WHERE ".$sql : "")." ORDER BY dt DESC LIMIT ".$cnt;
$result=mysql_query($sql,$conn) or die(mysql_error());
if(!mysql_num_rows($result))
return array(); //Neradus rezultatu, grazinti tuscia masyva
// Sukeliam rezultatus i masyva
$arr=array();
$kount=0;
while($arr[$kount] = mysql_fetch_assoc($result))
$kount++;
return $arr;