Sasuki
Banned
- Dołączył
- Marzec 12, 2009
- Posty
- 196
- Liczba reakcji
- 12
Skrypt zosta? zabezpieczony przed atakami sql injection dzi?ki pomocy Kowol'a.
Do Modelatora!
Je?eli jest taka mo?liwo?? to prosi? bym o zmian? tematu na:
[G?sior Acc] Polecanie graczy
Do Modelatora!
Je?eli jest taka mo?liwo?? to prosi? bym o zmian? tematu na:
[G?sior Acc] Polecanie graczy
Witam wszystkich.
Skrypt zosta? stworzony na potrzeby
Nie masz wystarczających uprawnień, aby zobaczyć link.
Zaloguj or Rejestracja
, ale pomy?la?em ?e mog? go tutaj wrzuci?. To m?j pierwszy wi?kszy skrypt w php wi?c mile widziane s? rady, co mo?na by?o zrobi? lepiej.
Jak on dzia?a?
Posiadaj?c konto masz sw?j link. je?eli kto? wejdzie na ten link, zarejestruje si? i wy?le smsa to ty dostaniesz 100 punkt?w premium ;] Proste
Podobne systemy cz?sto wyst?puj? w grach przez przegl?dark? typu jakie? plemiona itd.
Screen:

Na pocz?tku tworzymy nowe pole w accounts w naszej bazie danych
Kod:
ALTER TABLE `accounts` ADD `polecany` INT( 11 ) NOT NULL AFTER `premium_points`
PHP:
session_start();
ob_start("ob_gzhandler");
PHP:
$polecany = (int) $_GET['polecany'];
if(!isset($_COOKIE['wizyta']))
{
setcookie('wizyta', $polecany);
}
PHP:
case "accountmanagement";
$topic = "Account Management";
$subtopic = "accountmanagement";
include("accountmanagement.php");
break;
PHP:
case "polecani";
$topic = "Polec Graczy";
$subtopic = "polecani";
include("polecani.php");
break;
PHP:
if($action == "saveaccount") {
$reg_name = strtoupper(trim($_POST['reg_name']));
$reg_email = trim($_POST['reg_email']);
$reg_password = trim($_POST['reg_password']);
$reg_code = trim($_POST['reg_code']);
PHP:
$polecany = trim($_COOKIE['wizyta']);
PHP:
$reg_account->setCustomField("premdays", $config['site']['newaccount_premdays']);
$reg_account->setCustomField("lastday", time());
PHP:
$reg_account->setCustomField("polecany", $polecany);
Nast?pnie wchodzimy w buypoints.php
i za tym:
PHP:
if($code_info[0] == 0)
$errors[] = 'Podany kod z SMSa/przelewu jest niepoprawny lub wybrano zla opcje SMSa/przelewu.';
else
{
if(add_points($account, $config['dotpay'][$sms_type]['addpoints']))
{
PHP:
$last = $SQL->query("SELECT `polecany` FROM `accounts` where `id`=".$account." ;");
foreach($last as $lastj) {
$last1 = $SQL->query("SELECT `premium_points` FROM `accounts` where `id`=".urlencode($lastj['polecany'])." ;");
foreach($last1 as $lastj1) {
$pkt=urlencode($lastj1['premium_points'])+$config['site']['pktplus'];
$SQL->query("UPDATE accounts SET premium_points='".$pkt."' WHERE id='".urlencode($lastj['polecany'])."' LIMIT 1;");
}}
Otwieramy sobie plik /config/config.php i wklejamy gdzie? na ko?cu:
PHP:
$config['site']['pktplus'] = 100; //ile punktow ma dodawac za polecenie gracza
Nast?pnie tworzymy sobie plik
polecani.php
i wklejamy do niego:
PHP:
<?PHP
if (!$logged)
Header('Location: ?subtopic=accountmanagement');
$main_content .= '<b>Za kazdego wyslanego smsa przez gracza ktorego poleciles dostaniesz '.$config['site']['pktplus'].' punktow do sms shopu.</b><br>';
$main_content .= 'Pod tym linkiem mozesz nas polecic nowym graczom: <br><form><input type="text" size="70" name="nazwa" value="http://zgn.sytes.net/?polecany='.$account_logged->getId().'" /></form><br>';
$main_content .= '<div align=center><h3>Poleceni gracze:</h3></div><br>';
$account_id = $SQL->query("SELECT id FROM accounts WHERE polecany = ".$account_logged->getId()."")->fetchAll();
if ($account_id){
$main_content .= '<TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%></TABLE><TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD WIDTH=20% CLASS=whites><B><center>Nick</center></B></TD><TD WIDTH=15% CLASS=whites><B><center>Level</center></B></TD><TD WIDTH=25% CLASS=whites><b><center>Profesja</center></B></TD>';
$counter = 0;
foreach($account_id as $acc_id){
$acc_idd = $acc_id['id'];
$players = $SQL->query("SELECT id, name, level, group_id, promotion, vocation FROM players WHERE account_id = ".$acc_idd."")->fetchAll();
foreach($players as $player){
$counter++;
if(is_int($counter / 2))
$bgcolor = $config['site']['darkborder'];
else
$bgcolor = $config['site']['lightborder'];
if ($player){
$player_group = $player['group_id'];
$player_name = $player['name'];
$player_level = $player['level'];
$player_id = $player['id'];
$player_pro = $player['promotion'];
$player_voc = $vocation_name[0][$player_pro][$player['vocation']];
if ($player_id > 6){
$main_content .= '<tr bgcolor="'.$bgcolor.'"><td><a href="?subtopic=characters&name='.$player_name.'"><center>'.$player_name.'</center></a></td><td><center>'.$player_level.'</center></td><td><center>'.$player_voc.'</center></td>';
}
}
}
}
$main_content .= '</table>';
}
else{
$main_content .= 'W tej chwili nie poleciles jeszcze zadnego gracza.';
}
$last1 = $SQL->query("SELECT `premium_points` FROM `accounts` where `id`=".$account_logged->getId()." ;");
foreach($last1 as $lastj1) {
$main_content .='<br><center><h2>Twoje Punkty: '.urlencode($lastj1['premium_points']).'</h2></center><br><br>';
}
$main_content .= '<p align = "right"><small>System created by <a href="http://pokemon-ots.zapto.org"><img src="http://img513.imageshack.us/img513/4161/bannerek.gif"></a>.<br>
Do pobrania z <a href="http://tibia.net.pl/php/433604-polecanie-graczy.html">tibia.net.pl</a>
</small></p>';
?>
ZABRANIAM USUWANIA STOPKI ZE SKRYPTU!!!
Prosz? o ocen? skryptu.Troszk? przerobi?em skrypt ;] Jest on lepszy do edycji ;]
Skrypt zosta? zabezpieczony przed atakami sql injection. ;]