|
|
|
มีเรื่องสงสัยเกี่ยวกับ php/ MYSQL ครับ ช่วยผมแก้หน่อยครับ |
|
|
|
|
|
|
|
Code (PHP)
<?php
/* API Connection TMTopup for Dadteam.Com*/
/*
* Modify by Nst Interactive [http://www.nstinteractive.com/]
*/
# ------------------------------------- Config Begin ------------------------------------- #
// ------------------------------------------------------------------------------------------------
/* MySQL Config | Begin */
// Hostname ของ MySQL Server
$_CONFIG['mysql']['dbhost'] = 'localhost';
// Username ที่ใช้เชื่อมต่อ MySQL Server
$_CONFIG['mysql']['dbuser'] = 'root';
// Password ที่ใช้เชื่อมต่อ MySQL Server
$_CONFIG['mysql']['dbpw'] = '***';
// ชื่อฐานข้อมูลที่เราจะเติม Point ให้
$_CONFIG['mysql']['dbname'] = 'game';
// ชื่อตารางที่เราจะเติม Point ให้ ตัวอย่าง : member
$_CONFIG['mysql']['tbname'] = 'players';
// ชื่อ field ที่ใช้อ้าง Username
$_CONFIG['mysql']['field_username'] = 'playerid';
// ชื่อ field ที่ใช้ในการเก็บ Point จากการเติมเงิน
$_CONFIG['TMN']['point_field_name'] = 'bankacc';
/* MySQL Config | End */
$date = date("Y-m-d")
// ------------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------
/* จำนวน Point ที่จะได้รับเมื่อเติมเงินในราคาต่างๆ | Begin */
$_CONFIG['TMN'][50]['point'] = 500000; // Point ที่ได้รับเมื่อเติมเงินราคา 50 บาท
$_CONFIG['TMN'][90]['point'] = 900000; // Point ที่ได้รับเมื่อเติมเงินราคา 90 บาท
$_CONFIG['TMN'][150]['point'] = 1500000; // Point ที่ได้รับเมื่อเติมเงินราคา 150 บาท
$_CONFIG['TMN'][300]['point'] = 3000000; // Point ที่ได้รับเมื่อเติมเงินราคา 300 บาท
$_CONFIG['TMN'][500]['point'] = 5000000; // Point ที่ได้รับเมื่อเติมเงินราคา 500 บาท
$_CONFIG['TMN'][1000]['point'] = 10000000; // Point ที่ได้รับเมื่อเติมเงินราคา 1,000 บาท
$_CONFIG['TMN'][50]['VIP'] = 3;
$_CONFIG['TMN'][90]['VIP'] = 7;
$_CONFIG['TMN'][150]['VIP'] = 15;
$_CONFIG['TMN'][300]['VIP'] = 30;
$_CONFIG['TMN'][500]['VIP'] = 60;
$_CONFIG['TMN'][1000]['VIP'] = 120;
/* จำนวน Point ที่จะได้รับเมื่อเติมเงินในราคาต่างๆ | End */
// ------------------------------------------------------------------------------------------------
// กำหนด API Passkey
define('API_PASSKEY', '****');
# -------------------------------------- Config End -------------------------------------- #
require_once('AES.php');
// ------------------------------------------------------------------------------------------------
/* เชื่อมต่อฐานข้อมูล | Begin */
mysql_connect($_CONFIG['mysql']['dbhost'],$_CONFIG['mysql']['dbuser'],$_CONFIG['mysql']['dbpw']) or die('ERROR|DB_CONN_ERROR|' . mysql_error());
mysql_select_db($_CONFIG['mysql']['dbname']) or die('ERROR|DB_SEL_ERROR|' . mysql_error());
/* เชื่อมต่อฐานข้อมูล | End */
// ------------------------------------------------------------------------------------------------
if($_SERVER['REMOTE_ADDR'] == '203.146.127.115' && isset($_GET['request']))
{
$aes = new Crypt_AES();
$aes->setKey(API_PASSKEY);
$_GET['request'] = base64_decode(strtr($_GET['request'], '-_,', '+/='));
$_GET['request'] = $aes->decrypt($_GET['request']);
if($_GET['request'] != false)
{
parse_str($_GET['request'],$request);
$request['Ref2'] = base64_decode($request['Ref2']);
/* Database connection | Begin */
$result = mysql_query('SELECT * FROM `'. $_CONFIG['mysql']['tbname'] .'` WHERE `'. $_CONFIG['mysql']['field_username'] .'`=\'' . mysql_real_escape_string($request['Ref2']) . '\' LIMIT 1') or die(mysql_error());
if(mysql_num_rows($result) == 1)
{
$row = mysql_fetch_assoc($result);
if(mysql_query("UPDATE `". $_CONFIG['mysql']['tbname'] ."` SET `". $_CONFIG['TMN']['point_field_name'] ."` = `". $_CONFIG['TMN']['point_field_name'] ."`+'". $_CONFIG['TMN'][$request['cardcard_amount']]['point'] ."' WHERE `". $_CONFIG['mysql']['field_username'] ."` = '". $row[$_CONFIG['mysql']['field_username']] ."' LIMIT 1 ") == false)
if(mysql_query("UPDATE `".
$_CONFIG['mysql']['tbname'] ."` SET `".
$_CONFIG['TMN']['point_field_name'] ."` = `".
$_CONFIG['TMN']['point_field_name'] ."`+'".
$_CONFIG['TMN'][$request['cardcard_amount']]['point'] ."', expireDate = DATE_ADD($date, INTERVAL $_CONFIG['TMN'][$request['cardcard_amount']]['VIP'] DAY) WHERE `".
$_CONFIG['mysql']['field_username'] ."` = '". $row[$_CONFIG['mysql']['field_username']] ."' LIMIT 1 ") == false)
{
echo 'ERROR|MYSQL_UDT_ERROR|' . mysql_error();
}
else
{
echo 'SUCCEED|UID=' . $row[$_CONFIG['mysql']['field_username']];
}
}
else
{
echo 'ERROR|INCORRECT_USERNAME';
}
/* Database connection | End */
}
else
{
echo 'ERROR|INVALID_PASSKEY';
}
}
else
{
echo 'ERROR|ACCESS_DENIED';
}
?>
expireDate = DATE_ADD($date, INTERVAL $_CONFIG['TMN'][$request['cardcard_amount']]['VIP'] DAY) WHERE `".
ตรงนี้ทำยังไงให้ข้อมูลบันทึกลงดาต้าเบส Field ที่มีชื่อว่า expireDate
แล้วก็ ตรงDAY ถ้าผมใส่เป็น 120 วัน มันจะเปลี่ยนเดือนให้หรือเปล่าครับ
Tag : PHP
|
ประวัติการแก้ไข 2016-02-05 19:33:45 2016-02-05 19:34:13
|
|
|
|
|
Date :
2016-02-05 19:32:57 |
By :
siamza080 |
View :
804 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเปลี่ยนวิธีเขียนใหม่ครับ จะได้เช็คข้อมูลได้ง่ายขึั้น
089.if(mysql_query("UPDATE `".
090.$_CONFIG['mysql']['tbname'] ."` SET `".
091.$_CONFIG['TMN']['point_field_name'] ."` = `".
092.$_CONFIG['TMN']['point_field_name'] ."`+'".
093.$_CONFIG['TMN'][$request['cardcard_amount']]['point'] ."', expireDate = DATE_ADD($date, INTERVAL $_CONFIG['TMN'][$request['cardcard_amount']]['VIP'] DAY) WHERE `".
094.$_CONFIG['mysql']['field_username'] ."` = '". $row[$_CONFIG['mysql']['field_username']] ."' LIMIT 1 ") == false)
095 echo 'ERROR|MYSQL_UDT_ERROR|' . mysql_error();
แก้เป็น
Code (PHP)
$tb = $_CONFIG['mysql']['tbname'];
$point = $_CONFIG['TMN']['point_field_name'];
$point_value = $_CONFIG['TMN'][$request['cardcard_amount']]['point'];
$card_amount = $_CONFIG['TMN'][$request['cardcard_amount']]['VIP'];
$user = $_CONFIG['mysql']['field_username'];
$sql = "UPDATE `$tb` SET `$point` = `$point` + $value
, expireDate = DATE_ADD( '$date', INTERVAL $card_amount DAY )
WHERE `$user` = '$row[$user]' LIMIT 1";
mysql_query( $sql) or die ( 'ERROR|MYSQL_UDT_ERROR<br>'.$sql.'<br>' . mysql_error());
if( mysql_affected_rows()==0 ){
echo "There is not update anything<br>$sql";
}
ทำให้มันอ่านง่าย เข้าใจง่าย แก้ไขง่าย ที่ทำยากๆ แบบนั้น มันทำให้ตัวเองทำงานยากไปหรือเปล่าครับ
ลองแก้ไขอันอื่นดูนะครับ
|
ประวัติการแก้ไข 2016-02-06 04:17:16
|
|
|
|
Date :
2016-02-06 04:14:49 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 3 เขียนโดย : Chaidhanan เมื่อวันที่ 2016-02-06 04:14:49
รายละเอียดของการตอบ ::
Code (PHP)
<?php
/* API Connection TMTopup for Dadteam.Com*/
/*
* Modify by Nst Interactive [http://www.nstinteractive.com/]
*/
# ------------------------------------- Config Begin ------------------------------------- #
// ------------------------------------------------------------------------------------------------
/* MySQL Config | Begin */
// Hostname ของ MySQL Server
$_CONFIG['mysql']['dbhost'] = 'localhost';
// Username ที่ใช้เชื่อมต่อ MySQL Server
$_CONFIG['mysql']['dbuser'] = 'xxxxxxxx';
// Password ที่ใช้เชื่อมต่อ MySQL Server
$_CONFIG['mysql']['dbpw'] = 'xxxxxxxxx';
// ชื่อฐานข้อมูลที่เราจะเติม Point ให้
$_CONFIG['mysql']['dbname'] = 'xxxxxxxxx';
// ชื่อตารางที่เราจะเติม Point ให้ ตัวอย่าง : member
$_CONFIG['mysql']['tbname'] = 'players';
// ชื่อ field ที่ใช้อ้าง Username
$_CONFIG['mysql']['field_username'] = 'playerid';
// ชื่อ field ที่ใช้ในการเก็บ Point จากการเติมเงิน
$_CONFIG['TMN']['point_field_name'] = 'bankacc';
/* MySQL Config | End */
$date = date("Y-m-d")
// ------------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------
/* จำนวน Point ที่จะได้รับเมื่อเติมเงินในราคาต่างๆ | Begin */
$_CONFIG['TMN'][50]['point'] = 500000; // Point ที่ได้รับเมื่อเติมเงินราคา 50 บาท
$_CONFIG['TMN'][90]['point'] = 900000; // Point ที่ได้รับเมื่อเติมเงินราคา 90 บาท
$_CONFIG['TMN'][150]['point'] = 1500000; // Point ที่ได้รับเมื่อเติมเงินราคา 150 บาท
$_CONFIG['TMN'][300]['point'] = 3000000; // Point ที่ได้รับเมื่อเติมเงินราคา 300 บาท
$_CONFIG['TMN'][500]['point'] = 5000000; // Point ที่ได้รับเมื่อเติมเงินราคา 500 บาท
$_CONFIG['TMN'][1000]['point'] = 10000000; // Point ที่ได้รับเมื่อเติมเงินราคา 1,000 บาท
$_CONFIG['TMN'][50]['VIP'] = 3;
$_CONFIG['TMN'][90]['VIP'] = 7;
$_CONFIG['TMN'][150]['VIP'] = 15;
$_CONFIG['TMN'][300]['VIP'] = 30;
$_CONFIG['TMN'][500]['VIP'] = 60;
$_CONFIG['TMN'][1000]['VIP'] = 120;
/* จำนวน Point ที่จะได้รับเมื่อเติมเงินในราคาต่างๆ | End */
// ------------------------------------------------------------------------------------------------
// กำหนด API Passkey
define('API_PASSKEY', 'xxxxxxxxxxxxx');
# -------------------------------------- Config End -------------------------------------- #
require_once('AES.php');
// ------------------------------------------------------------------------------------------------
/* เชื่อมต่อฐานข้อมูล | Begin */
mysql_connect($_CONFIG['mysql']['dbhost'],$_CONFIG['mysql']['dbuser'],$_CONFIG['mysql']['dbpw']) or die('ERROR|DB_CONN_ERROR|' . mysql_error());
mysql_select_db($_CONFIG['mysql']['dbname']) or die('ERROR|DB_SEL_ERROR|' . mysql_error());
/* เชื่อมต่อฐานข้อมูล | End */
// ------------------------------------------------------------------------------------------------
if($_SERVER['REMOTE_ADDR'] == '203.146.127.115' && isset($_GET['request']))
{
$aes = new Crypt_AES();
$aes->setKey(API_PASSKEY);
$_GET['request'] = base64_decode(strtr($_GET['request'], '-_,', '+/='));
$_GET['request'] = $aes->decrypt($_GET['request']);
if($_GET['request'] != false)
{
parse_str($_GET['request'],$request);
$request['Ref2'] = base64_decode($request['Ref2']);
/* Database connection | Begin */
$result = mysql_query('SELECT * FROM `'. $_CONFIG['mysql']['tbname'] .'` WHERE `'. $_CONFIG['mysql']['field_username'] .'`=\'' . mysql_real_escape_string($request['Ref2']) . '\' LIMIT 1') or die(mysql_error());
if(mysql_num_rows($result) == 1)
{
$row = mysql_fetch_assoc($result);
$tb = $_CONFIG['mysql']['tbname'];
$point = $_CONFIG['TMN']['point_field_name'];
$point_value = $_CONFIG['TMN'][$request['cardcard_amount']]['point'];
$card_amount = $_CONFIG['TMN'][$request['cardcard_amount']]['VIP'];
$user = $_CONFIG['mysql']['field_username'];
$sql = "UPDATE `$tb` SET `$point` = `$point` + $value
, expireDate = DATE_ADD( '$date', INTERVAL $card_amount DAY )
WHERE `$user` = '$row[$user]' LIMIT 1";
mysql_query( $sql) or die
(
'ERROR|MYSQL_UDT_ERROR<br>'.$sql.'<br>' . mysql_error()
);
if( mysql_affected_rows()==0 )
{
echo "There is not update anything<br>$sql";
}
else
{
echo 'SUCCEED|UID=' . $row[$_CONFIG['mysql']['field_username']];
}
}
else
{
echo 'ERROR|INCORRECT_USERNAME';
}
/* Database connection | End */
}
else
{
echo 'ERROR|INVALID_PASSKEY';
}
}
else
{
echo 'ERROR|ACCESS_DENIED';
}
?>
ประมานนี้ใช้ได้ยังครับ
expireDate = DATE_ADD( '$date', INTERVAL $card_amount DAY )
ตรงนี้ข้อมูลจะบันทึกลง ดาต้าเบสใช่ไหมครับ
|
ประวัติการแก้ไข 2016-02-07 15:27:15
|
|
|
|
Date :
2016-02-07 15:26:44 |
By :
siamza080 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|