Нужна помощь по php скрипту

  • Автор темы misterikl
  • Дата начала
misterikl
Местный
Сообщения
100
Реакции
7
Всем привет, подскажите пожалуйста, есть ли на этой странице какая ни будь пакость?
Код:
<?
$usid = $_SESSION["user_id"];
$usname = $_SESSION["user"];

$db->Query("SELECT * FROM db_users_b WHERE id = '$usid' LIMIT 1");
$user_data = $db->FetchArray();

$cena = 10; //Стоимость отправки сообщения пользователю
$cena_ref = 25;// Стоимость отправки сообщения рефералам!
?>

<div class="s-bk-lf"><div class="acc-title">Внутреняя почта</div></div>

<?

   
    $db->Query("SELECT * FROM wmrush_pm WHERE user_id_in = '$usid' AND status = 0 AND inbox = 1");
    $sk = $db->NumRows();
    if ($sk > 0) {$pmm = '<font color="red">('.$sk.')</font>';} else {$pmm = '<font color="red">(0)</font>';}
   
?>

<div class="silver-bk"><div class="clr"></div>
<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
   <tr>
    <td align="center" class="m-tb"><a style='color:white;' href='/account/pm/'>Написать Письмо</a></td>
    <td align="center" class="m-tb"><a style='color:white;' href='/account/pm/inbox/'>Входящие<?=$pmm; ?></a></td>   
    <td align="center" class="m-tb"><a style='color:white;' href='/account/pm/outbox/'>Исходящие</a></td>
    <td align="center" class="m-tb"><a style='color:white;' href='/account/pm/referals/'>Рассылка всем рефералам</a></td>
  </tr>
</table>

<?



















/////////////////////////////////////////////////############### ВХОДЯЩИЕ СООБЩЕНИЯ  ###################///////////////////////////////////////////////
if (isset($_GET['inbox'])) {


if(isset($_POST['tema1'])) {
$tema1 = htmlspecialchars($_POST['tema1']);
$text1 = htmlspecialchars($_POST['message1']);
$user = htmlspecialchars($_POST['to_user1']);
$db->Query("SELECT * FROM db_users_a WHERE user = '$user'");
$use = $db->FetchArray();
$us_in = $use['id'];
$date = time();
if(!empty($tema1)) {
    if(!empty($text1)) {

                        $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, inbox) VALUES ('$us_in', '$user', '$usid', '$usname', '$tema1', '$text1', '$status', '$date', 1)");
                       
                        $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, outbox) VALUES ('$us_in', '$user', '$usid', '$usname', '$tema1', '$text1', '$status', '$date', 1)");
                        $db->Query("UPDATE db_users_b SET money_b = money_b - '$cena' WHERE id = '$usid'");
                    //    echo $tema1;
                        echo 'Ваше сообщение отправленно';
    }else echo '<center><font color="red">Введите текст сообщения</font></center>';
}else echo '<center><font color="red">Введите тему сообщения</font></center>';

}


if (isset($_POST['tm'])) {               
?>

<form method="post" action="">
<label>Пользователь(логин)</label><br>
<input value="<?=$_POST['log']; ?>" type="text" size="20" maxlength="50" disabled /><br>
<input name="to_user1" value="<?=$_POST['log']; ?>" type="hidden" size="20" maxlength="50" /><br>
<label>Тема сообщения (до 150 символов)</label><br>
<input value="RE: <?=$_POST['tm']; ?>" type="text" size="20" maxlength="150" disabled /><br>
<input name="tema1" value="RE: <?=$_POST['tm']; ?>" type="hidden" size="20" maxlength="150" />
<label>Текст сообщения</label><br>
<textarea name="message1" rows="5" cols="40"></textarea>
<br />
<input type="submit" name="sendd" value="Отправить сообщение" />
</form>
  <tr align="right"><td colspan="2"><font size="1"><a href="https://servahoc.ru/redirect.php?url=http://./" target="_blank">Powered By .</a></font></tr>

<?
}

if(isset($_POST['id_dell_in'])) {
$id_dell_in = intval($_POST['id_dell_in']);
$db->Query("DELETE FROM wmrush_pm WHERE id = '$id_dell_in' AND user_id_in = '$usid'");
echo '<center>Сообщение удалено</center><br>';
}


    if (isset($_POST['id_in'])) {
    $id_in = intval($_POST['id_in']);
    $db->Query("UPDATE wmrush_pm SET status = 1 WHERE id = '$id_in'");
    $db->Query("SELECT * FROM wmrush_pm WHERE id = '$id_in' AND user_id_in = '$usid'");
    $inn = $db->FetchArray();
    ?>
    <br>
<table style="border-collapse:collapse;width:100%;"><tbody><tr><td><br></td><td>
<b>Отправитель</b> - <?=$inn['login_out']; ?> | <?=date('d-m-Y - H:i', $in['date']); ?><br>
<b>Тема</b> - <?=$inn['theme']; ?><br>
<b>Текст письма</b><br>
<?=$inn['text']; ?><br><br>


<hr>





</td></tr></tbody></table>
<form method="post" action="">
<input type="hidden" name="tm" value="<?=$inn['theme']; ?>">
<input type="hidden" name="log" value="<?=$inn['login_out']; ?>">
<input type="submit" value="Ответить">

</form>
  <tr align="right"><td colspan="2"><font size="1"><a href="https://servahoc.ru/redirect.php?url=http://./" target="_blank">Powered By .</a></font></tr>
</div><br>
   
    <?
    }


    $db->Query("SELECT * FROM wmrush_pm WHERE user_id_in = '$usid' AND inbox = 1 ORDER BY id DESC LIMIT 30");
    if($db->NumRows() == 0) {
    echo '<center>Нет входящих сообщений</center>';
    ?>
      <tr align="right"><td colspan="2"><font size="1"><a href="https://servahoc.ru/redirect.php?url=http://./" target="_blank">Powered By .</a></font></tr>
    <?
   
    }
    while($in = $db->FetchArray()) {
    ?>
    <table style="border-collapse:collapse;width:100%;"><tbody><tr><td><br></td><td>
</td></tr></tbody></table>

<table width='97%'>
<tr bgcolor="#336633">
<td align='center'>ID</td>
<td align='center'>Отправитель</td>
<td align='center'>Тема</td>
<td align='center'>Дата</td>
<td align='center'>Функция</td>
</tr>

<tr
bgcolor="grey">
<td align='center'>#<?=$in['id']; ?><br>
<?
if ($in['status'] == 0) echo '<font color="red">NEW</font>';
?>

</td>
<td align='center'><?=$in['login_out']; ?></td>
<td align='center'><?=$in['theme']; ?></td>
<td align='center'><?=date('d-m-Y - H:i', $in['date']); ?></td>
<td align='center'>
<form action="" method="post"><input type="hidden" name="id_in" value="<?=$in['id']; ?>"><input type="submit" name="outbox" value="Просмотр"></form><br>

<form action="" method="post"><input type="hidden" name="id_dell_in" value="<?=$in['id']; ?>"><input type="hidden" name="del" value="yes"><input type="submit" name="outbox" value="Удалить"></form>
</td>
</tr>
  <tr align="right"><td colspan="2"><font size="1"><a href="https://servahoc.ru/redirect.php?url=http://./" target="_blank">Powered By .</a></font></tr>
</table>
    <?
    }
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
/////////////////////////////////////////////////############### ИСХОДЯЩИЕ СООБЩЕНИЯ  ###################///////////////////////////////////////////////
}elseif (isset($_GET['outbox'])) {







if(isset($_POST['id_dell_in'])) {
$id_dell_in = intval($_POST['id_dell_in']);
$db->Query("DELETE FROM wmrush_pm WHERE id = '$id_dell_in' AND user_id_out = '$usid'");
echo '<center>Сообщение удалено</center><br>';
}


    if (isset($_POST['id_in'])) {
    $id_in = intval($_POST['id_in']);
    $db->Query("SELECT * FROM wmrush_pm WHERE id = '$id_in' AND user_id_out = '$usid'");
    $inn = $db->FetchArray();
    ?>
    <br>
<table style="border-collapse:collapse;width:100%;"><tbody><tr><td><br></td><td>
<b>Получатель</b> - <?=$inn['login_in']; ?> | <?=date('d-m-Y - H:i', $in['date']); ?><br>
<b>Тема</b> - <?=$inn['theme']; ?><br>
<b>Текст письма</b><br>
<?=$inn['text']; ?><br><br>

<hr>



</td></tr>
</tbody></table>
  <tr align="right"><td colspan="2"><font size="1"><a href="https://servahoc.ru/redirect.php?url=http://./" target="_blank">Powered By .</a></font></tr>

</div><br>
   
    <?
    }


    $db->Query("SELECT * FROM wmrush_pm WHERE user_id_out = '$usid' AND outbox = 1 ORDER BY id DESC LIMIT 30");
    if($db->NumRows() == 0) {
    echo '<center>Нет входящих сообщений</center>';
    ?>
      <tr align="right"><td colspan="2"><font size="1"><a href="https://servahoc.ru/redirect.php?url=http://./" target="_blank">Powered By .</a></font></tr>
    <?
    }
    while($in = $db->FetchArray()) {
    ?>
    <table style="border-collapse:collapse;width:100%;"><tbody><tr><td><br></td><td>
</td></tr></tbody></table>

<table width='97%'>
<tr bgcolor="#336633">
<td align='center'>ID</td>
<td align='center'>Получатель</td>
<td align='center'>Тема</td>
<td align='center'>Дата</td>
<td align='center'>Функция</td>
</tr>

<tr
bgcolor="grey">
<td align='center'>#<?=$in['id']; ?></td>
<td align='center'><?=$in['login_in']; ?></td>
<td align='center'><?=$in['theme']; ?></td>
<td align='center'><?=date('d-m-Y - H:i', $in['date']); ?></td>
<td align='center'>
<form action="" method="post"><input type="hidden" name="id_in" value="<?=$in['id']; ?>"><input type="submit" name="outbox" value="Просмотр"></form><br>
<form action="" method="post"><input type="hidden" name="id_dell_in" value="<?=$in['id']; ?>"><input type="hidden" name="del" value="yes"><input type="submit" name="outbox" value="Удалить"></form>
</td>
</tr>
  <tr align="right"><td colspan="2"><font size="1"><a href="https://servahoc.ru/redirect.php?url=http://./" target="_blank">Powered By .</a></font></tr>
</table>
<?
}




















/////////////////////////////////////////////////############### СООБЩЕНИЯ РЕФЕРАЛАМ ###################///////////////////////////////////////////////
}elseif (isset($_GET['referals'])) {
$qq = time() - 86400; //Активные в течении суток
$ww = time() - 259200; // Активные в течении 3-х дней
$ee = time() - 604800; // Активные в течении недели
$rr = time() - 2629743; // Активные в течении месяца
$hh = $db->Query("SELECT
(SELECT COUNT(id) FROM db_users_a WHERE referer_id = '$usid') all_users,
(SELECT COUNT(id) FROM db_users_a WHERE referer_id = '$usid' AND date_login >= '$qq') all_insert,
(SELECT COUNT(id) FROM db_users_a WHERE referer_id = '$usid' AND date_login >= '$ww') all_payment,
(SELECT COUNT(id) FROM db_users_a WHERE referer_id = '$usid' AND date_login >= '$ee') new_users,
(SELECT COUNT(id) FROM db_users_a WHERE referer_id = '$usid' AND date_login >= '$rr') new_userss");
$ref_data = $db->FetchArray($hh);


if(isset($_POST['type'])) {
$type = intval($_POST['type']);
$text = htmlspecialchars($_POST['message']);
$tema = htmlspecialchars($_POST['tema']);
$date = time();
$status = 0;
    if(!empty($tema)) {
        if(!empty($text)) {
            if(!empty($type)) {
                if($ref_data['all_users'] !=0) {
                    if($type == 1) {
                    //$db->Query("SELECT * FROM db_users_a WHERE referer_id = '$usid'");
                        //while($reff = $db->FetchArray()) {
                        //for($i = 1; $i < $ref_data['all_users']; $i++) {
                        $con = mysql_connect($config->HostDB, $config->UserDB, $config->PassDB);
                        $cl = mysql_select_db($config->BaseDB, $con);
                            $qqqqq = mysql_query("SELECT * FROM db_users_a WHERE referer_id = '$usid'");  //All
                            while($reff = mysql_fetch_array($qqqqq)){
                            $rre = $reff['id'];
                            $r_log = $reff['user'];
                           
                            $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, inbox) VALUES ('$rre', '$r_log', '$usid', '$usname', '$tema', '$text', '$status', '$date', 1)");
                           
                            $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, outbox) VALUES ('$rre', '$r_log', '$usid', '$usname', '$tema', '$text', '$status', '$date', 1)");
                            $db->Query("UPDATE db_users_b SET money_b = money_b - '$cena_ref' WHERE id = '$usid'");
                            //echo $cena_ref;
                            }
                           
                            echo '<center><font color="green">Сообщения отправлены </font></center>';
                           
                        //}
                    }elseif($type == 2) {
                    $con = mysql_connect($config->HostDB, $config->UserDB, $config->PassDB);
                    $cl = mysql_select_db($config->BaseDB, $con);
                            $qqqqq = mysql_query("SELECT * FROM db_users_a WHERE referer_id = '$usid' AND date_login >= '$qq' "); //Sutki
                            while($reff = mysql_fetch_array($qqqqq)){
                            $rre = $reff['id'];
                            $r_log = $reff['user'];
                           
                            $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, inbox) VALUES ('$rre', '$r_log', '$usid', '$usname', '$tema', '$text', '$status', '$date', 1)");
                           
                            $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, outbox) VALUES ('$rre', '$r_log', '$usid', '$usname', '$tema', '$text', '$status', '$date', 1)");
                            $db->Query("UPDATE db_users_b SET money_b = money_b - '$cena_ref' WHERE id = '$usid'");
                        //    echo $cena_ref;
                            }
                           
                            echo '<center><font color="green">Сообщения отправлены </font></center>';
                   
                    }elseif($type == 3) {
                    $con = mysql_connect($config->HostDB, $config->UserDB, $config->PassDB);
                        $cl = mysql_select_db($config->BaseDB, $con);
                            $qqqqq = mysql_query("SELECT * FROM db_users_a WHERE referer_id = '$usid' AND date_login >= '$ww'"); //3 Dnya
                            while($reff = mysql_fetch_array($qqqqq)){
                            $rre = $reff['id'];
                            $r_log = $reff['user'];
                           
                            $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, inbox) VALUES ('$rre', '$r_log', '$usid', '$usname', '$tema', '$text', '$status', '$date', 1)");
                           
                            $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, outbox) VALUES ('$rre', '$r_log', '$usid', '$usname', '$tema', '$text', '$status', '$date', 1)");
                            $db->Query("UPDATE db_users_b SET money_b = money_b - '$cena_ref' WHERE id = '$usid'");
                        //    echo $cena_ref;
                            }
                           
                            echo '<center><font color="green">Сообщения отправлены </font></center>';
                   
                    }elseif($type == 4){
                    $con = mysql_connect($config->HostDB, $config->UserDB, $config->PassDB);
                        $cl = mysql_select_db($config->BaseDB, $con);
                            $qqqqq = mysql_query("SELECT * FROM db_users_a WHERE referer_id = '$usid'  AND date_login >= '$ee'"); //7 dney
                            while($reff = mysql_fetch_array($qqqqq)){
                            $rre = $reff['id'];
                            $r_log = $reff['user'];
                           
                            $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, inbox) VALUES ('$rre', '$r_log', '$usid', '$usname', '$tema', '$text', '$status', '$date', 1)");
                           
                            $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, outbox) VALUES ('$rre', '$r_log', '$usid', '$usname', '$tema', '$text', '$status', '$date', 1)");
                            $db->Query("UPDATE db_users_b SET money_b = money_b - '$cena_ref' WHERE id = '$usid'");
                        //    echo $cena_ref;
                            }
                           
                            echo '<center><font color="green">Сообщения отправлены </font></center>';
                    }elseif($type == 5) {
                    $con = mysql_connect($config->HostDB, $config->UserDB, $config->PassDB);
                        $cl = mysql_select_db($config->BaseDB, $con);
                            $qqqqq = mysql_query("SELECT * FROM db_users_a WHERE referer_id = '$usid' AND date_login >= '$rr'"); //1 mesyac
                            while($reff = mysql_fetch_array($qqqqq)){
                            $rre = $reff['id'];
                            $r_log = $reff['user'];
                           
                            $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, inbox) VALUES ('$rre', '$r_log', '$usid', '$usname', '$tema', '$text', '$status', '$date', 1)");
                           
                            $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, outbox) VALUES ('$rre', '$r_log', '$usid', '$usname', '$tema', '$text', '$status', '$date', 1)");
                            $db->Query("UPDATE db_users_b SET money_b = money_b - '$cena_ref' WHERE id = '$usid'");
                        //    echo $cena_ref;
                            }
                           
                            echo '<center><font color="green">Сообщения отправлены </font></center>';
                   
                    }
                }else echo '<center><font color="red">У Вас нет рефералов</font></center>';
            }else  echo '<center><font color="red">Выберите тип рассылки</font></center>';
        }else  echo '<center><font color="red">Введите текст сообщения</font></center>';
    }else  echo '<center><font color="red">Введите тему сообщения</font></center>';

}
?>
<br>
<table style="border-collapse:collapse;width:100%;"><tbody><tr><td><br></td><td>
Рассылка сообщений своим рефералам это:<br>
- Максимальная выгода с людей , что привлекли;<br>
- Вы сможете рассылать всем своим рефералам за раз;<br>
- Можно выбрать только самых активных рефералов;<br>
- Сообщения останутся в исходящих.<br>
<br>
Стоимость отправки 1 сообщение 1 рефералу - 25 C.
<br><br>
<?

?>
<form method="post" action="">
<label>Вид рассылки</label><br>
<select name="type" size="1">
<option value="1">Всем рефералам [<?=$ref_data['all_users']; ?>]</option>
<option value="2">Активным в течении 24 часов [<?=$ref_data['all_insert']; ?>]</option>
<option value="3">Активным в течении 3 суток [<?=$ref_data['all_payment']; ?>]</option>
<option value="4">Активным в течении 7 суток [<?=$ref_data['new_users']; ?>]</option>
<option value="5">Активным в течении месяца [<?=$ref_data['new_userss']; ?>]</option>
</select>
<br>
<label>Тема сообщения (до 150 символов)</label><br>
<input name="tema" value="" type="text" size="20" maxlength="150" /><br>
<label>Текст сообщения</label><br>
<textarea name="message" rows="5" cols="40"></textarea>
<br />
<input type="submit" name="send" value="Разослать сообщение" />
</form>
</td></tr>
  <tr align="right"><td colspan="2"><font size="1"><a href="https://servahoc.ru/redirect.php?url=http://./" target="_blank">Powered By .</a></font></tr>

</tbody></table>

<?
























/////////////////////////////////////////////////############### НОВОЕ СООБЩЕНИЯ  ###################///////////////////////////////////////////////
} else {

if (isset($_POST['to_user'])) {
$to_user = htmlspecialchars($_POST['to_user']);
$theme = htmlspecialchars($_POST['tema']);
$text = htmlspecialchars($_POST['message']);

$status = 0;
$date = time();
$db->Query("SELECT * FROM db_users_a WHERE user = '$to_user'");
$kol = $db->NumRows();
$us = $db->FetchArray();
$us_in = $us['id'];
$login_in = $us['user'];
    if($kol > 0) {
        if($us['user'] != $usname) {
            if(!empty($theme)) {
                if(!empty($text)) {
                    if($cena <= $user_data['money_b']) {
                        $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, inbox) VALUES ('$us_in', '$login_in', '$usid', '$usname', '$theme', '$text', '$status', '$date', 1)");
                       
                        $db->Query("INSERT INTO wmrush_pm (user_id_in, login_in, user_id_out, login_out, theme, text, status, date, outbox) VALUES ('$us_in', '$login_in', '$usid', '$usname', '$theme', '$text', '$status', '$date', 1)");
                        $db->Query("UPDATE db_users_b SET money_b = money_b - '$cena' WHERE id = '$usid'");
                        echo '<center><font color="green">Ваше сообщение отправлено пользователю '.$login_in.'</font></center>';
                    }else  echo '<center><font color="red">У вас не достаточно средств для отправки сообщения</font></center>';
                }else echo '<center><font color="red">Введите текст сообщения</font></center>';
            }else  echo '<center><font color="red">Введите тему сообщения</font></center>';
        }else  echo '<center><font color="red">Нельзя отправлять сообщения самому себе</font></center>';
    }else echo '<center><font color="red">Пользователя не существует</font></center>';

}


?>
<table style="border-collapse:collapse;width:100%;"><tbody><tr><td><br></td><td>
<br>
Запрещено:<br>
- Отправлять сообщения содержащие ненормативную лексику;<br>
- Оскорблять других пользователей проекта;<br>
- Отправлять сообщения рекламного характера;<br>
- Массовая отправка сообщений одного содержания.<br>
<br>
Стоимость отправки сообщения - 10 C.
<br><br>
<form method="post" action="">
<label>Пользователь(логин)</label><br>
<input name="to_user" value="" type="text" size="20" maxlength="50" /><br>
<label>Тема сообщения (до 150 символов)</label><br>
<input name="tema" value="" type="text" size="20" maxlength="150" /><br>
<label>Текст сообщения</label><br>
<textarea name="message" rows="5" cols="40"></textarea>
<br />
<input type="submit" name="send" value="Отправить сообщение" />
</form>
</td></tr>

  <tr align="right"><td colspan="2"><font size="1"><a href="https://servahoc.ru/redirect.php?url=http://./" target="_blank">Powered By .</a></font></tr>
</tbody></table>

<? } ?>
</div><br>

</div>
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Ничего интересного не заметил.
Только есть вопрос:
Почему везде используется глобальное подключение к базе, а в сообщениях рефералам происходит повторное подключение к базе
Код:
$con = mysql_connect($config->HostDB, $config->UserDB, $config->PassDB);
$cl = mysql_select_db($config->BaseDB, $con);
Зачем?

И я бы исправил в этом
Код:
$qq = time() - 86400; //Активные в течении суток
$ww = time() - 259200; // Активные в течении 3-х дней
$ee = time() - 604800; // Активные в течении недели
$rr = time() - 2629743; // Активные в течении месяца
$hh = $db->Query("SELECT
(SELECT COUNT(id) FROM db_users_a WHERE referer_id = '$usid') all_users,
(SELECT COUNT(id) FROM db_users_a WHERE referer_id = '$usid' AND date_login >= '$qq') all_insert,
(SELECT COUNT(id) FROM db_users_a WHERE referer_id = '$usid' AND date_login >= '$ww') all_payment,
(SELECT COUNT(id) FROM db_users_a WHERE referer_id = '$usid' AND date_login >= '$ee') new_users,
(SELECT COUNT(id) FROM db_users_a WHERE referer_id = '$usid' AND date_login >= '$rr') new_userss");
Переменные all_insert, all_payment, new_users, new_userss - их нужно заменить на более понятные, т.к. они означают "все пополнения", "все_выплаты", "новые пользователи", "новые пользователи"соответственно. Это может ввести в заблуждение при доработки скрипта.
Их, желательно, обозвать как-то так: active_24h, active_3d, active_7d, active_30d - так будет понятно, что эти массивы содержат пользователей проявивших активность (авторизовавшихся на сайте) в течение определенного времени, в следствии чего потом будет проще работать со скриптом
 
Последнее редактирование:
misterikl
Местный
Сообщения
100
Реакции
7
Спасибо большое) Учту)
 
Remdev
Участник
Сообщения
77
Реакции
19
Да, есть.
 
Remdev
Участник
Сообщения
77
Реакции
19
pligin написал(а):
Пакость есть.
В общем виде эта пакость называется wm_rush
Более подробно в данном случае - недостаточная фильтрация данных
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Remdev написал(а):
Пакость есть.
В общем виде эта пакость называется wm_rush
Более подробно в данном случае - недостаточная фильтрация данных
ты глубоко копнул - тут такая информация, обычно, никому не нужна
 
misterikl
Местный
Сообщения
100
Реакции
7
Честно говоря да, интересует не ссылки и левые названия, а именно иньекции и не нужные обращения к базе.
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
misterikl написал(а):
Честно говоря да, интересует не ссылки и левые названия, а именно иньекции и не нужные обращения к базе.
как сказал Remdev, недостаточная фильтрация данных и может привести к непредсказуемым последствиям, а кто-то может это использовать в "нехороших" целях.
 
misterikl
Местный
Сообщения
100
Реакции
7
  • #10
Соответственно, я так понимаю, лучше этот скрипт для внутренней почты не использовать, да?
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
  • #11
Remdev написал(а):
Пакость есть.
В общем виде эта пакость называется wm_rush
Более подробно в данном случае - недостаточная фильтрация данных
расскажи по-подробнее
 
misterikl
Местный
Сообщения
100
Реакции
7
  • #12
Ну допустим, я решил не использовать внутреннюю почту. Спасибо большое за помощь?
Но тогда надо поставить систему Тикетов, что бы пользователи могли обращаться в Суппорт, а тут есть что ни будь?
Код:
<?



if(isset($_SESSION['user_id'])){
if(isset($_POST['ans_go'])){
$id_m = $_POST['id_mes'];
$date = time();
$ans = $_POST['ans'];
$db->Query("INSERT INTO `ot_sup` (`id_mes`,`user`,`text`,`date`)VALUES('$id_m','$_SESSION[user]','$ans','$date')") or die(mysql_error());
echo "<span id='erorr'  class='msgbox-error'>Тикет успешно создан.</span>";

$db->Query("UPDATE support SET status='0' WHERE id='$id_m'");

}




if(isset($_POST['submit_rit'])){
$tima = $_POST['title_g'];



$sod = $_POST['post_g'];
if($tima==""){$err[] = 'Заполните поле Тема';}
elseif($sod==""){$err[] = 'Заполните поле Содержание';}
$date = time();
if(empty($err)){
$db->Query("INSERT INTO `support` (`user`,`title`,`text`,`date`,`status`)VALUES('$_SESSION[user]','$tima','$sod','$date','0')") or die(mysql_error());
echo "<span id='erorr'  class='msgbox-error'>Тикет успешно создан.</span>";
}else{
foreach($err AS $error)
echo "<span id='erorr'  class='msgbox-error'>".$error."</span>";

}
}
?>
       
                    <script type="text/javascript" language="JavaScript">
            $(document).ready(function(){
                $("#addreply").click(function(){
                    $("#replyblock").fadeIn("slow");
                    document.getElementById('replybtn').innerHTML = "<span class='button-gray'>Ответить</span>";
                });
            })
            function appendtag(text1, text2)
            {
                if ((document.selection))
                {
                    document.surforder.ask_desc.focus();
                    document.surforder.document.selection.createRange().text = text1+document.surforder.document.selection.createRange().text+text2;
                } else if(document.surforder.ask_desc.selectionStart != undefined) {
                    var element    = document.surforder.ask_desc;
                    var str     = element.value;
                    var start    = element.selectionStart;
                    var length    = element.selectionEnd - element.selectionStart;
                    element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length);
                } else document.surforder.ask_desc.value += text1+text2;
            }
            function showclose()
            {
                $('#basic-modal-content').modal();
                return false;
            }           
        </script>
<script type='text/javascript' src='/js/jquery.simplemodal.js'></script>
<script type='text/javascript' src='/js/guibasic.js'></script>
<script type="text/javascript" language="JavaScript">
            function ClearForm()
            {
                document.forms['mailform'].scount.value = 'Осталось 1500 символов';
            }
            function descchange(elem)
            {
                if (elem.value.length > 1500) {
                    elem.value = elem.value.substr(0,1500);
                }
                document.forms['mailform'].scount.value = 'Осталось '+(1500-elem.value.length)+' символов';
            }

        </script>

       
    <section id="logged-in">
      <div class="container">
        <div class="row-fluid">
          <div class="span12 well well-white">

         
         
         
            <div class="row-fluid">
              <div class="span12 text-center">             
             
                <hr />
              </div>
            </div>
         
   
       




       
       
            <ul class="nav nav-tabs">
              <li  <?if(empty($_GET['type'])){?>class="active"<?}?>><a href="/?menu=support" data-toggle="tab">Создать запрос</a></li>
              <li <?if(isset($_GET['type'])){?>class="active"<?}?>><a href="/?menu=support&type=all" data-toggle="tab">Мои тикеты</a></li>
          
            </ul>   
       
       
       


<?if(empty($_GET['type']) and empty($_GET['tiketid'])){?>
<div class="silver-bk">
            <div class="tab-content">
              <div class="tab-pane active" id="create-ticket">
              <div class="row-fluid" style="">
                <div class="span12">
                  <label class="control-label" for="title"><u>Прежде чем создать тикет, убедитесь, что нужной вам информации нет на сайте! Время ожидания ответа - до 24 часов!</u></label>
                </div>
              </div>
              <div class="row-fluid" style="">
                <div class="span12">
<form name="mailform" id="mailform" method="POST" action="">
<input size='40' type="text" name="title_g" value=''>
                </div>
              </div>
             
              <div class="row-fluid">
                <div class="span12">
                  <label class="control-label" for="inputMessage">Содержание запроса:</label>
                </div>
              </div>
              <div class="row-fluid">
                <div class="span12">
                  <textarea class="input-block-level" name="post_g" rows="6" cols='65' onkeyup="descchange(this);"  placeholder="Как можно подробнее опишите вашу проблему. Например: если у вас проблема с платежом, то вам необходимо отправить название системы оплаты, дату, время, как пополняли (вручную или нет) и.т.д."></textarea>
                </div>
              </div>
              <div class="row-fluid">
                <div class="span12">
                  <input class="scount input-block-level text-center" type="text" readonly="readonly" value="Осталось 1500 символов" maxlength="25" size="85" name="scount">
                </div>
              </div>
              <div class="row-fluid">
                <div class="span12">
<input class="btn btn-large btn-block" type='submit' name='submit_rit' value='Отправить' style="margin-top: 10px;" />
</form>
           
                 
                  </div>
                </div>
              </div>
<?}if(isset($_GET['type'])and empty($_GET['tiketid'])){?>
<div class="silver-bk">
<table cellpadding='3' cellspacing='0' border='0'  align='center' width="550" BGCOLOR="#FCF6C2" >
<thead>
    <tr style='background:#804040; '>
       
        <td style='border-radius:0px;color:#fff; text-align:center;'>
            Тема
        </td>
       
        <td style='border-radius:0px;color:#fff; text-align:center;'>
            Дата
        </td>
    <td style='border-radius:0px;color:#fff; text-align:center;'>
            Статус
        </td>   

    </tr>
</thead>
<tbody>
</div>
<?
        $sup = $db->Query("SELECT id,title,date,status FROM support WHERE user='$_SESSION[user]'  ORDER BY id DESC")or die(mysql_error());
while($_sup=$db->FetchArray($sup)){   
if($_sup['status']=='0'){$ot = 'В очереди';}else{$ot = 'Прочитано';}
?>

    <tr><td style='text-align:center;'><a href="/?menu=support&tiketid=<?=$_sup['id']?>"><?=$_sup['title']?></a></td>
    <td style='text-align:center;'><?=date('M-d-Y h:i',$_sup['date'])?></td><td style='text-align:center;'><?=$ot?></td><td></td>
   
    </tr>

<?}?>
</tbody>   
</table>


<?}
if(isset($_GET['tiketid'])){
$tid = $_GET['tiketid'];

?>
<div class="silver-bk">

<?
$md = $db->Query("SELECT id,user,text,date FROM  support WHERE id='$tid'")or die(mysql_error());
$remd= $db->FetchArray($md);
$idd  = $remd['id'];
$user = $remd['user'];
$textd  = $remd['text'];
$dat  = $remd['date'];           
?>
<center>
<div style='border:1px solid #660066;border-radius:5px; padding:3px; background:#fff;'>
<div><b><?=$_SESSION['user']?></b>&nbsp;&nbsp;(<?=date('M-d-Y h:i',$dat)?>)</div>
<hr>
<div style='min-height:40px;'><?=$textd?></div>
</div><br>
<?$md2 = $db->Query("SELECT user,text,date FROM  ot_sup WHERE id_mes='$idd' ORDER BY id ASC")or die(mysql_error());
while($remd2= $db->FetchArray($md2)){
$idd2  = $remd2['id'];
$textd2  = $remd2['text'];
$dat2  = $remd2['date'];           
?>
<div style='border:1px solid #660066;border-radius:5px; padding:3px; background:#fff;'>
<div><b><?=$remd2['user']?></b>&nbsp;&nbsp;(<?=date('M-d-Y h:i',$dat2)?>)</div>
<hr>
<div style='min-height:40px;'><?=$textd2?></div>
</div><br>
<?}?>

</center>
<br>
<center>
<form method="post" action="">
Ответить<br>
<textarea name="ans" rows="6" cols="50"></textarea><br><br>
<input type="hidden" name="id_mes" value='<?=$idd?>'>
<input type="submit" name='ans_go' value="Отправить" onclick="">
</form>
</center>
<?}?>


              </div>
  </div>

<div class="silver-bk">
<b>Вопрос:</b> Как начать играть ? <br>
<b>Ответ:</b> После регистрации в проекте, Вы переходите в раздел "Рынок Динозавров", где совершаете нужные покупки, собираете яйца, продаете - получаете серебро
<br><br>
<b>Вопрос:</b> Если я не пополнил баланс, могу ли я начать играть ?<br>
<b>Ответ:</b> Да, можете! Ежедневный бонус позволит Вам собрать немного серебра для покупки птиц<br><br>

<b>Вопрос:</b> Как пополнить баланс?<br>
<b>Ответ:</b> Баланс Вы можете пополнить в разделе "Вложить" любым удобным для Вас способом.<br><br>

<b>Вопрос:</b> Что такое верификация, и для чего она нужна ?<br>
<b>Ответ:</b> Верификация - это привязка Вашего номера кошелька к Вашему аккаунту по средствам мобильной связи. Верификация нужна для дополнительной безопасности Вашего аккаунта.
Логин указывается в формате Р2244668, "Р" заглавная английская.<br><br>

<b>Вопрос:</b> Я указал номер телефона, почему не приходит сообщение с кодом ?<br>
<b>Ответ</b>: Правильно указывайте формат телефона, он должен быть в международном формате, к примеру, для России это +7(номер телефона). Если Вы сделали все верно и код не приходит уже
долгое время, напишите подробный тикет, с указанием телефона.<br><br>

<b>Вопрос</b>: Что делать, если в разделе выплат указан чужой номер кошелька системы PAYEER ?<br>
<b>Ответ</b>: Самое первое, что стоит сделать - это ИЗМЕНИТЬ ПАРОЛЬ. Если данные не Ваши значит уже что то не так.
Тут 2 варианта. Первый - Вы мошенник, который хочет изменить номер кошелька на свой.
Второй - Ваши средства хотели забрать мошенники, в этом случае если Вы не проходили верификацию, а это сделали за Вас, пишите тикет с описанием проблемы,
если Вы проходили верификацию, но номер кошелька не Ваш, но номер мобильного Ваш, также пишете тикет с указанием проблемы, после чего заново
верифицируетесь в системе.<br><br>

<b>Вопрос</b>: Как мне вывести деньги из проекта ?<br>
<b>Ответ</b>: Вывести заработанное Вы можете в разделе "Вывести". Там присутствуют специальные формы для выплат.<br><br>

<b>Вопрос</b>: Как скоро я смогу начинать выводить деньги ?<br>
<b>Ответ</b>: Сразу после пополнения и покупки динозавров, в разделе "Вывести". Перед выводом средств вам нужно собрать яйца и обменять их на серебро!
<br><br>
<b>Вопрос</b>: Я пополнил счет, но деньги не пришли - что делать?<br>
<b>Ответ</b>: Ожидать. Скорость пополнения зависит от выбранного Вами способа оплаты. Поэтому время оплаты может варьироваться от 1 минуты до 2-х рабочих дней.
Прежде чем совершить платеж, ВНИМАТЕЛЬНО читайте условия перевода, или оплаты. Если Вы все сделали правильно но деньги все таки не дошли до Вашего счета,
тогда и только тогда пишите тикет, с полной информацией платежа(Платежная система, дата, время, сумма, номер перевода/транзакции, логин в игре).
<br><br>
<b>Вопрос</b>: Как можно еще зарабатывать серебро в проекте, кроме пополнения ?<br>
<b>Ответ</b>:
Серебро Вы можете заработать несколькими способами:<br>
1. Играя в игры<br>
2. Участвуя в конкурсе рефералов<br>
3. Ежедневный бонус<br>
В каждом соответствующем разделе есть подробное описание
<br><br>
<b>Вопрос</b>: Как мне привлечь рефералов?<br>
<b>Ответ</b>:
Вам нужно отправить свою реферальную ссылку<br>
(<img src="/img/piar-link.png" style="vertical-align:-2px; margin-right:5px;"><font color="#000;">http://dunozavar.com/?i=2</font>) пользователю, которого хотите пригласить. Как только он пополнит баланс - он будет считаться активным рефералом, и Вы получите за него баллы и серебро на ваш счет!<br>
http://dunozavar.com/account/referals - здесь можете отслеживать активность ваших рефералов!
<br><br>
<b>Вопрос</b>: Я хочу поменять реферала или реферера, как мне это сделать?<br>
<b>Ответ</b>:
К сожалению, эти данные менять нельзя! Если ваш друг не стал вашим рефералом после регистрации, значит он зарегистрировался не по вашей ссылке.
<br><br>
<b>Вопрос</b>: Уровни рефералов - это что?<br>
<b>Ответ</b>:
1 уровень - это ваш реферал. 2 уровень - реферал вашего реферала. 3 уровень - реферал реферала вашего реферала.
<br><br>
<b>Вопрос</b>: Меня заблокировали в чате, за что?<br>
<b>Ответ</b>:<br>
1)Спам<br>
2)Размещение ссылок<br>
3)Нецензурные выражения<br>
4)Ввождение в заблуждение пользователей <br>
5)Попытка навести смуту<br>
<b>Получили бан в чате? Разблокировка платная! Поэтому будьте внимательны!</b>

<br><br>
</div>





          </div>
        </div>
      </div>
       </div>
    </section>

   



   <div id="push"></div>
    </div>

<?
}else{
?>



<div class="cl-right">


<script type="text/javascript">


function isNotMax(oTextArea) {
  return oTextArea.value.length <= oTextArea.getAttribute('maxlength');
}


function isNotMax(e){
  e = e || window.event;
  var target = e.target || e.srcElement;
  var code=e.keyCode?e.keyCode:(e.which?e.which:e.charCode)

  switch (code){
    case 13:
    case 8:
    case 9:
    case 46:
    case 37:
    case 38:
    case 39:
    case 40:
      return true;
  }
  return target.value.length <= target.getAttribute('maxlength');
}


</script>

<div class="s-bk-lf">
    <div class="acc-title">Служба поддержки</div>
</div>
<div class="silver-bk">

Прежде чем обратиться в техническую поддержку, пожалуйста, авторизируйтесь!
</div>
<div class="clr"></div>


                            <div class="clr"></div>
                            </div>
                           











<?


/*echo 'Помощь доступна только авторизированным участникам.';*/
}   
?>
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
  • #13
misterikl написал(а):
Соответственно, я так понимаю, лучше этот скрипт для внутренней почты не использовать, да?
почему?
Вы думаете, когда Вы поставите этот скрипт все "хакеры" мира пойдут искать у Вас неправильную обработку данных?
У Вас в самом скрипте игры ошибок достаточно, а это лишь "капля в море".
Вы сами не знаете в чем проблема (я кстати, тоже еще не нашел что Remdev имел ввиду), а Ваши игроки и подавно даже не подумают об этом
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
  • #14
misterikl написал(а):
Ну допустим, я решил не использовать внутреннюю почту. Спасибо большое за помощь?
Но тогда надо поставить систему Тикетов, что бы пользователи могли обращаться в Суппорт, а тут есть что ни будь?
Код:
<?



if(isset($_SESSION['user_id'])){
if(isset($_POST['ans_go'])){
$id_m = $_POST['id_mes'];
$date = time();
$ans = $_POST['ans'];
$db->Query("INSERT INTO `ot_sup` (`id_mes`,`user`,`text`,`date`)VALUES('$id_m','$_SESSION[user]','$ans','$date')") or die(mysql_error());
echo "<span id='erorr'  class='msgbox-error'>Тикет успешно создан.</span>";

$db->Query("UPDATE support SET status='0' WHERE id='$id_m'");

}


тут тоже самое - все запросы GET и POST передаются "как есть" и не фильтруются - можно в поле вписать что-нибудь "нехорошее"

if(isset($_POST['submit_rit'])){
$tima = $_POST['title_g'];



$sod = $_POST['post_g'];
if($tima==""){$err[] = 'Заполните поле Тема';}
elseif($sod==""){$err[] = 'Заполните поле Содержание';}
$date = time();
if(empty($err)){
$db->Query("INSERT INTO `support` (`user`,`title`,`text`,`date`,`status`)VALUES('$_SESSION[user]','$tima','$sod','$date','0')") or die(mysql_error());
echo "<span id='erorr'  class='msgbox-error'>Тикет успешно создан.</span>";
}else{
foreach($err AS $error)
echo "<span id='erorr'  class='msgbox-error'>".$error."</span>";

}
}
?>
    
                    <script type="text/javascript" language="JavaScript">
            $(document).ready(function(){
                $("#addreply").click(function(){
                    $("#replyblock").fadeIn("slow");
                    document.getElementById('replybtn').innerHTML = "<span class='button-gray'>Ответить</span>";
                });
            })
            function appendtag(text1, text2)
            {
                if ((document.selection))
                {
                    document.surforder.ask_desc.focus();
                    document.surforder.document.selection.createRange().text = text1+document.surforder.document.selection.createRange().text+text2;
                } else if(document.surforder.ask_desc.selectionStart != undefined) {
                    var element    = document.surforder.ask_desc;
                    var str     = element.value;
                    var start    = element.selectionStart;
                    var length    = element.selectionEnd - element.selectionStart;
                    element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length);
                } else document.surforder.ask_desc.value += text1+text2;
            }
            function showclose()
            {
                $('#basic-modal-content').modal();
                return false;
            }        
        </script>
<script type='text/javascript' src='/js/jquery.simplemodal.js'></script>
<script type='text/javascript' src='/js/guibasic.js'></script>
<script type="text/javascript" language="JavaScript">
            function ClearForm()
            {
                document.forms['mailform'].scount.value = 'Осталось 1500 символов';
            }
            function descchange(elem)
            {
                if (elem.value.length > 1500) {
                    elem.value = elem.value.substr(0,1500);
                }
                document.forms['mailform'].scount.value = 'Осталось '+(1500-elem.value.length)+' символов';
            }

        </script>

    
    <section id="logged-in">
      <div class="container">
        <div class="row-fluid">
          <div class="span12 well well-white">

      
      
      
            <div class="row-fluid">
              <div class="span12 text-center">          
          
                <hr />
              </div>
            </div>
      

    




    
    
            <ul class="nav nav-tabs">
              <li  <?if(empty($_GET['type'])){?>class="active"<?}?>><a href="/?menu=support" data-toggle="tab">Создать запрос</a></li>
              <li <?if(isset($_GET['type'])){?>class="active"<?}?>><a href="/?menu=support&type=all" data-toggle="tab">Мои тикеты</a></li>
       
            </ul>
    
    
    


<?if(empty($_GET['type']) and empty($_GET['tiketid'])){?>
<div class="silver-bk">
            <div class="tab-content">
              <div class="tab-pane active" id="create-ticket">
              <div class="row-fluid" style="">
                <div class="span12">
                  <label class="control-label" for="title"><u>Прежде чем создать тикет, убедитесь, что нужной вам информации нет на сайте! Время ожидания ответа - до 24 часов!</u></label>
                </div>
              </div>
              <div class="row-fluid" style="">
                <div class="span12">
<form name="mailform" id="mailform" method="POST" action="">
<input size='40' type="text" name="title_g" value=''>
                </div>
              </div>
          
              <div class="row-fluid">
                <div class="span12">
                  <label class="control-label" for="inputMessage">Содержание запроса:</label>
                </div>
              </div>
              <div class="row-fluid">
                <div class="span12">
                  <textarea class="input-block-level" name="post_g" rows="6" cols='65' onkeyup="descchange(this);"  placeholder="Как можно подробнее опишите вашу проблему. Например: если у вас проблема с платежом, то вам необходимо отправить название системы оплаты, дату, время, как пополняли (вручную или нет) и.т.д."></textarea>
                </div>
              </div>
              <div class="row-fluid">
                <div class="span12">
                  <input class="scount input-block-level text-center" type="text" readonly="readonly" value="Осталось 1500 символов" maxlength="25" size="85" name="scount">
                </div>
              </div>
              <div class="row-fluid">
                <div class="span12">
<input class="btn btn-large btn-block" type='submit' name='submit_rit' value='Отправить' style="margin-top: 10px;" />
</form>
        
              
                  </div>
                </div>
              </div>
<?}if(isset($_GET['type'])and empty($_GET['tiketid'])){?>
<div class="silver-bk">
<table cellpadding='3' cellspacing='0' border='0'  align='center' width="550" BGCOLOR="#FCF6C2" >
<thead>
    <tr style='background:#804040; '>
    
        <td style='border-radius:0px;color:#fff; text-align:center;'>
            Тема
        </td>
    
        <td style='border-radius:0px;color:#fff; text-align:center;'>
            Дата
        </td>
    <td style='border-radius:0px;color:#fff; text-align:center;'>
            Статус
        </td>

    </tr>
</thead>
<tbody>
</div>
<?
        $sup = $db->Query("SELECT id,title,date,status FROM support WHERE user='$_SESSION[user]'  ORDER BY id DESC")or die(mysql_error());
while($_sup=$db->FetchArray($sup)){
if($_sup['status']=='0'){$ot = 'В очереди';}else{$ot = 'Прочитано';}
?>

    <tr><td style='text-align:center;'><a href="/?menu=support&tiketid=<?=$_sup['id']?>"><?=$_sup['title']?></a></td>
    <td style='text-align:center;'><?=date('M-d-Y h:i',$_sup['date'])?></td><td style='text-align:center;'><?=$ot?></td><td></td>

    </tr>

<?}?>
</tbody>
</table>


<?}
if(isset($_GET['tiketid'])){
$tid = $_GET['tiketid'];

?>
<div class="silver-bk">

<?
$md = $db->Query("SELECT id,user,text,date FROM  support WHERE id='$tid'")or die(mysql_error());
$remd= $db->FetchArray($md);
$idd  = $remd['id'];
$user = $remd['user'];
$textd  = $remd['text'];
$dat  = $remd['date'];        
?>
<center>
<div style='border:1px solid #660066;border-radius:5px; padding:3px; background:#fff;'>
<div><b><?=$_SESSION['user']?></b>&nbsp;&nbsp;(<?=date('M-d-Y h:i',$dat)?>)</div>
<hr>
<div style='min-height:40px;'><?=$textd?></div>
</div><br>
<?$md2 = $db->Query("SELECT user,text,date FROM  ot_sup WHERE id_mes='$idd' ORDER BY id ASC")or die(mysql_error());
while($remd2= $db->FetchArray($md2)){
$idd2  = $remd2['id'];
$textd2  = $remd2['text'];
$dat2  = $remd2['date'];        
?>
<div style='border:1px solid #660066;border-radius:5px; padding:3px; background:#fff;'>
<div><b><?=$remd2['user']?></b>&nbsp;&nbsp;(<?=date('M-d-Y h:i',$dat2)?>)</div>
<hr>
<div style='min-height:40px;'><?=$textd2?></div>
</div><br>
<?}?>

</center>
<br>
<center>
<form method="post" action="">
Ответить<br>
<textarea name="ans" rows="6" cols="50"></textarea><br><br>
<input type="hidden" name="id_mes" value='<?=$idd?>'>
<input type="submit" name='ans_go' value="Отправить" onclick="">
</form>
</center>
<?}?>


              </div>
  </div>

<div class="silver-bk">
<b>Вопрос:</b> Как начать играть ? <br>
<b>Ответ:</b> После регистрации в проекте, Вы переходите в раздел "Рынок Динозавров", где совершаете нужные покупки, собираете яйца, продаете - получаете серебро
<br><br>
<b>Вопрос:</b> Если я не пополнил баланс, могу ли я начать играть ?<br>
<b>Ответ:</b> Да, можете! Ежедневный бонус позволит Вам собрать немного серебра для покупки птиц<br><br>

<b>Вопрос:</b> Как пополнить баланс?<br>
<b>Ответ:</b> Баланс Вы можете пополнить в разделе "Вложить" любым удобным для Вас способом.<br><br>

<b>Вопрос:</b> Что такое верификация, и для чего она нужна ?<br>
<b>Ответ:</b> Верификация - это привязка Вашего номера кошелька к Вашему аккаунту по средствам мобильной связи. Верификация нужна для дополнительной безопасности Вашего аккаунта.
Логин указывается в формате Р2244668, "Р" заглавная английская.<br><br>

<b>Вопрос:</b> Я указал номер телефона, почему не приходит сообщение с кодом ?<br>
<b>Ответ</b>: Правильно указывайте формат телефона, он должен быть в международном формате, к примеру, для России это +7(номер телефона). Если Вы сделали все верно и код не приходит уже
долгое время, напишите подробный тикет, с указанием телефона.<br><br>

<b>Вопрос</b>: Что делать, если в разделе выплат указан чужой номер кошелька системы PAYEER ?<br>
<b>Ответ</b>: Самое первое, что стоит сделать - это ИЗМЕНИТЬ ПАРОЛЬ. Если данные не Ваши значит уже что то не так.
Тут 2 варианта. Первый - Вы мошенник, который хочет изменить номер кошелька на свой.
Второй - Ваши средства хотели забрать мошенники, в этом случае если Вы не проходили верификацию, а это сделали за Вас, пишите тикет с описанием проблемы,
если Вы проходили верификацию, но номер кошелька не Ваш, но номер мобильного Ваш, также пишете тикет с указанием проблемы, после чего заново
верифицируетесь в системе.<br><br>

<b>Вопрос</b>: Как мне вывести деньги из проекта ?<br>
<b>Ответ</b>: Вывести заработанное Вы можете в разделе "Вывести". Там присутствуют специальные формы для выплат.<br><br>

<b>Вопрос</b>: Как скоро я смогу начинать выводить деньги ?<br>
<b>Ответ</b>: Сразу после пополнения и покупки динозавров, в разделе "Вывести". Перед выводом средств вам нужно собрать яйца и обменять их на серебро!
<br><br>
<b>Вопрос</b>: Я пополнил счет, но деньги не пришли - что делать?<br>
<b>Ответ</b>: Ожидать. Скорость пополнения зависит от выбранного Вами способа оплаты. Поэтому время оплаты может варьироваться от 1 минуты до 2-х рабочих дней.
Прежде чем совершить платеж, ВНИМАТЕЛЬНО читайте условия перевода, или оплаты. Если Вы все сделали правильно но деньги все таки не дошли до Вашего счета,
тогда и только тогда пишите тикет, с полной информацией платежа(Платежная система, дата, время, сумма, номер перевода/транзакции, логин в игре).
<br><br>
<b>Вопрос</b>: Как можно еще зарабатывать серебро в проекте, кроме пополнения ?<br>
<b>Ответ</b>:
Серебро Вы можете заработать несколькими способами:<br>
1. Играя в игры<br>
2. Участвуя в конкурсе рефералов<br>
3. Ежедневный бонус<br>
В каждом соответствующем разделе есть подробное описание
<br><br>
<b>Вопрос</b>: Как мне привлечь рефералов?<br>
<b>Ответ</b>:
Вам нужно отправить свою реферальную ссылку<br>
(<img src="/img/piar-link.png" style="vertical-align:-2px; margin-right:5px;"><font color="#000;">http://dunozavar.com/?i=2</font>) пользователю, которого хотите пригласить. Как только он пополнит баланс - он будет считаться активным рефералом, и Вы получите за него баллы и серебро на ваш счет!<br>
http://dunozavar.com/account/referals - здесь можете отслеживать активность ваших рефералов!
<br><br>
<b>Вопрос</b>: Я хочу поменять реферала или реферера, как мне это сделать?<br>
<b>Ответ</b>:
К сожалению, эти данные менять нельзя! Если ваш друг не стал вашим рефералом после регистрации, значит он зарегистрировался не по вашей ссылке.
<br><br>
<b>Вопрос</b>: Уровни рефералов - это что?<br>
<b>Ответ</b>:
1 уровень - это ваш реферал. 2 уровень - реферал вашего реферала. 3 уровень - реферал реферала вашего реферала.
<br><br>
<b>Вопрос</b>: Меня заблокировали в чате, за что?<br>
<b>Ответ</b>:<br>
1)Спам<br>
2)Размещение ссылок<br>
3)Нецензурные выражения<br>
4)Ввождение в заблуждение пользователей <br>
5)Попытка навести смуту<br>
<b>Получили бан в чате? Разблокировка платная! Поэтому будьте внимательны!</b>

<br><br>
</div>





          </div>
        </div>
      </div>
       </div>
    </section>





   <div id="push"></div>
    </div>

<?
}else{
?>



<div class="cl-right">


<script type="text/javascript">


function isNotMax(oTextArea) {
  return oTextArea.value.length <= oTextArea.getAttribute('maxlength');
}


function isNotMax(e){
  e = e || window.event;
  var target = e.target || e.srcElement;
  var code=e.keyCode?e.keyCode:(e.which?e.which:e.charCode)

  switch (code){
    case 13:
    case 8:
    case 9:
    case 46:
    case 37:
    case 38:
    case 39:
    case 40:
      return true;
  }
  return target.value.length <= target.getAttribute('maxlength');
}


</script>

<div class="s-bk-lf">
    <div class="acc-title">Служба поддержки</div>
</div>
<div class="silver-bk">

Прежде чем обратиться в техническую поддержку, пожалуйста, авторизируйтесь!
</div>
<div class="clr"></div>


                            <div class="clr"></div>
                            </div>
                        











<?


/*echo 'Помощь доступна только авторизированным участникам.';*/
}
?>
тут тоже самое - запросы GET и POST передаются "как есть" без фильтрации - можно вставить в поле что-нибудь "нехорошее"
 
misterikl
Местный
Сообщения
100
Реакции
7
  • #15
pligin написал(а):
тут тоже самое - запросы GET и POST передаются "как есть" без фильтрации - можно вставить в поле что-нибудь "нехорошее"
Дааа, жаль(
А не подскажете, как убрать фон встренный в код, и чем можно заменить GET и POST?
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
  • #16
misterikl написал(а):
Дааа, жаль(
А не подскажете, как убрать фон встренный в код, и чем можно заменить GET и POST?
А с помощью чего вы будет передавать данные и формы в форму и в базу?
Лучше у поисковика спросите про фильтрацию данных, а не ищите что и чем заменить
 
Remdev
Участник
Сообщения
77
Реакции
19
  • #17
misterikl написал(а):
Ну допустим, я решил не использовать внутреннюю почту. Спасибо большое за помощь?
Но тогда надо поставить систему Тикетов, что бы пользователи могли обращаться в Суппорт, а тут есть что ни будь?
Код:
<?



if(isset($_SESSION['user_id'])){
if(isset($_POST['ans_go'])){
$id_m = $_POST['id_mes'];
$date = time();
$ans = $_POST['ans'];
$db->Query("INSERT INTO `ot_sup` (`id_mes`,`user`,`text`,`date`)VALUES('$id_m','$_SESSION[user]','$ans','$date')") or die(mysql_error());
echo "<span id='erorr'  class='msgbox-error'>Тикет успешно создан.</span>";

$db->Query("UPDATE support SET status='0' WHERE id='$id_m'");

}




if(isset($_POST['submit_rit'])){
$tima = $_POST['title_g'];



$sod = $_POST['post_g'];
if($tima==""){$err[] = 'Заполните поле Тема';}
elseif($sod==""){$err[] = 'Заполните поле Содержание';}
$date = time();
if(empty($err)){
$db->Query("INSERT INTO `support` (`user`,`title`,`text`,`date`,`status`)VALUES('$_SESSION[user]','$tima','$sod','$date','0')") or die(mysql_error());
echo "<span id='erorr'  class='msgbox-error'>Тикет успешно создан.</span>";
}else{
foreach($err AS $error)
echo "<span id='erorr'  class='msgbox-error'>".$error."</span>";

}
}
?>
      
                    <script type="text/javascript" language="JavaScript">
            $(document).ready(function(){
                $("#addreply").click(function(){
                    $("#replyblock").fadeIn("slow");
                    document.getElementById('replybtn').innerHTML = "<span class='button-gray'>Ответить</span>";
                });
            })
            function appendtag(text1, text2)
            {
                if ((document.selection))
                {
                    document.surforder.ask_desc.focus();
                    document.surforder.document.selection.createRange().text = text1+document.surforder.document.selection.createRange().text+text2;
                } else if(document.surforder.ask_desc.selectionStart != undefined) {
                    var element    = document.surforder.ask_desc;
                    var str     = element.value;
                    var start    = element.selectionStart;
                    var length    = element.selectionEnd - element.selectionStart;
                    element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length);
                } else document.surforder.ask_desc.value += text1+text2;
            }
            function showclose()
            {
                $('#basic-modal-content').modal();
                return false;
            }          
        </script>
<script type='text/javascript' src='/js/jquery.simplemodal.js'></script>
<script type='text/javascript' src='/js/guibasic.js'></script>
<script type="text/javascript" language="JavaScript">
            function ClearForm()
            {
                document.forms['mailform'].scount.value = 'Осталось 1500 символов';
            }
            function descchange(elem)
            {
                if (elem.value.length > 1500) {
                    elem.value = elem.value.substr(0,1500);
                }
                document.forms['mailform'].scount.value = 'Осталось '+(1500-elem.value.length)+' символов';
            }

        </script>

      
    <section id="logged-in">
      <div class="container">
        <div class="row-fluid">
          <div class="span12 well well-white">

        
        
        
            <div class="row-fluid">
              <div class="span12 text-center">            
            
                <hr />
              </div>
            </div>
        
  
      




      
      
            <ul class="nav nav-tabs">
              <li  <?if(empty($_GET['type'])){?>class="active"<?}?>><a href="/?menu=support" data-toggle="tab">Создать запрос</a></li>
              <li <?if(isset($_GET['type'])){?>class="active"<?}?>><a href="/?menu=support&type=all" data-toggle="tab">Мои тикеты</a></li>
         
            </ul>  
      
      
      


<?if(empty($_GET['type']) and empty($_GET['tiketid'])){?>
<div class="silver-bk">
            <div class="tab-content">
              <div class="tab-pane active" id="create-ticket">
              <div class="row-fluid" style="">
                <div class="span12">
                  <label class="control-label" for="title"><u>Прежде чем создать тикет, убедитесь, что нужной вам информации нет на сайте! Время ожидания ответа - до 24 часов!</u></label>
                </div>
              </div>
              <div class="row-fluid" style="">
                <div class="span12">
<form name="mailform" id="mailform" method="POST" action="">
<input size='40' type="text" name="title_g" value=''>
                </div>
              </div>
            
              <div class="row-fluid">
                <div class="span12">
                  <label class="control-label" for="inputMessage">Содержание запроса:</label>
                </div>
              </div>
              <div class="row-fluid">
                <div class="span12">
                  <textarea class="input-block-level" name="post_g" rows="6" cols='65' onkeyup="descchange(this);"  placeholder="Как можно подробнее опишите вашу проблему. Например: если у вас проблема с платежом, то вам необходимо отправить название системы оплаты, дату, время, как пополняли (вручную или нет) и.т.д."></textarea>
                </div>
              </div>
              <div class="row-fluid">
                <div class="span12">
                  <input class="scount input-block-level text-center" type="text" readonly="readonly" value="Осталось 1500 символов" maxlength="25" size="85" name="scount">
                </div>
              </div>
              <div class="row-fluid">
                <div class="span12">
<input class="btn btn-large btn-block" type='submit' name='submit_rit' value='Отправить' style="margin-top: 10px;" />
</form>
          
                
                  </div>
                </div>
              </div>
<?}if(isset($_GET['type'])and empty($_GET['tiketid'])){?>
<div class="silver-bk">
<table cellpadding='3' cellspacing='0' border='0'  align='center' width="550" BGCOLOR="#FCF6C2" >
<thead>
    <tr style='background:#804040; '>
      
        <td style='border-radius:0px;color:#fff; text-align:center;'>
            Тема
        </td>
      
        <td style='border-radius:0px;color:#fff; text-align:center;'>
            Дата
        </td>
    <td style='border-radius:0px;color:#fff; text-align:center;'>
            Статус
        </td>  

    </tr>
</thead>
<tbody>
</div>
<?
        $sup = $db->Query("SELECT id,title,date,status FROM support WHERE user='$_SESSION[user]'  ORDER BY id DESC")or die(mysql_error());
while($_sup=$db->FetchArray($sup)){  
if($_sup['status']=='0'){$ot = 'В очереди';}else{$ot = 'Прочитано';}
?>

    <tr><td style='text-align:center;'><a href="/?menu=support&tiketid=<?=$_sup['id']?>"><?=$_sup['title']?></a></td>
    <td style='text-align:center;'><?=date('M-d-Y h:i',$_sup['date'])?></td><td style='text-align:center;'><?=$ot?></td><td></td>
  
    </tr>

<?}?>
</tbody>  
</table>


<?}
if(isset($_GET['tiketid'])){
$tid = $_GET['tiketid'];

?>
<div class="silver-bk">

<?
$md = $db->Query("SELECT id,user,text,date FROM  support WHERE id='$tid'")or die(mysql_error());
$remd= $db->FetchArray($md);
$idd  = $remd['id'];
$user = $remd['user'];
$textd  = $remd['text'];
$dat  = $remd['date'];          
?>
<center>
<div style='border:1px solid #660066;border-radius:5px; padding:3px; background:#fff;'>
<div><b><?=$_SESSION['user']?></b>&nbsp;&nbsp;(<?=date('M-d-Y h:i',$dat)?>)</div>
<hr>
<div style='min-height:40px;'><?=$textd?></div>
</div><br>
<?$md2 = $db->Query("SELECT user,text,date FROM  ot_sup WHERE id_mes='$idd' ORDER BY id ASC")or die(mysql_error());
while($remd2= $db->FetchArray($md2)){
$idd2  = $remd2['id'];
$textd2  = $remd2['text'];
$dat2  = $remd2['date'];          
?>
<div style='border:1px solid #660066;border-radius:5px; padding:3px; background:#fff;'>
<div><b><?=$remd2['user']?></b>&nbsp;&nbsp;(<?=date('M-d-Y h:i',$dat2)?>)</div>
<hr>
<div style='min-height:40px;'><?=$textd2?></div>
</div><br>
<?}?>

</center>
<br>
<center>
<form method="post" action="">
Ответить<br>
<textarea name="ans" rows="6" cols="50"></textarea><br><br>
<input type="hidden" name="id_mes" value='<?=$idd?>'>
<input type="submit" name='ans_go' value="Отправить" onclick="">
</form>
</center>
<?}?>


              </div>
  </div>

<div class="silver-bk">
<b>Вопрос:</b> Как начать играть ? <br>
<b>Ответ:</b> После регистрации в проекте, Вы переходите в раздел "Рынок Динозавров", где совершаете нужные покупки, собираете яйца, продаете - получаете серебро
<br><br>
<b>Вопрос:</b> Если я не пополнил баланс, могу ли я начать играть ?<br>
<b>Ответ:</b> Да, можете! Ежедневный бонус позволит Вам собрать немного серебра для покупки птиц<br><br>

<b>Вопрос:</b> Как пополнить баланс?<br>
<b>Ответ:</b> Баланс Вы можете пополнить в разделе "Вложить" любым удобным для Вас способом.<br><br>

<b>Вопрос:</b> Что такое верификация, и для чего она нужна ?<br>
<b>Ответ:</b> Верификация - это привязка Вашего номера кошелька к Вашему аккаунту по средствам мобильной связи. Верификация нужна для дополнительной безопасности Вашего аккаунта.
Логин указывается в формате Р2244668, "Р" заглавная английская.<br><br>

<b>Вопрос:</b> Я указал номер телефона, почему не приходит сообщение с кодом ?<br>
<b>Ответ</b>: Правильно указывайте формат телефона, он должен быть в международном формате, к примеру, для России это +7(номер телефона). Если Вы сделали все верно и код не приходит уже
долгое время, напишите подробный тикет, с указанием телефона.<br><br>

<b>Вопрос</b>: Что делать, если в разделе выплат указан чужой номер кошелька системы PAYEER ?<br>
<b>Ответ</b>: Самое первое, что стоит сделать - это ИЗМЕНИТЬ ПАРОЛЬ. Если данные не Ваши значит уже что то не так.
Тут 2 варианта. Первый - Вы мошенник, который хочет изменить номер кошелька на свой.
Второй - Ваши средства хотели забрать мошенники, в этом случае если Вы не проходили верификацию, а это сделали за Вас, пишите тикет с описанием проблемы,
если Вы проходили верификацию, но номер кошелька не Ваш, но номер мобильного Ваш, также пишете тикет с указанием проблемы, после чего заново
верифицируетесь в системе.<br><br>

<b>Вопрос</b>: Как мне вывести деньги из проекта ?<br>
<b>Ответ</b>: Вывести заработанное Вы можете в разделе "Вывести". Там присутствуют специальные формы для выплат.<br><br>

<b>Вопрос</b>: Как скоро я смогу начинать выводить деньги ?<br>
<b>Ответ</b>: Сразу после пополнения и покупки динозавров, в разделе "Вывести". Перед выводом средств вам нужно собрать яйца и обменять их на серебро!
<br><br>
<b>Вопрос</b>: Я пополнил счет, но деньги не пришли - что делать?<br>
<b>Ответ</b>: Ожидать. Скорость пополнения зависит от выбранного Вами способа оплаты. Поэтому время оплаты может варьироваться от 1 минуты до 2-х рабочих дней.
Прежде чем совершить платеж, ВНИМАТЕЛЬНО читайте условия перевода, или оплаты. Если Вы все сделали правильно но деньги все таки не дошли до Вашего счета,
тогда и только тогда пишите тикет, с полной информацией платежа(Платежная система, дата, время, сумма, номер перевода/транзакции, логин в игре).
<br><br>
<b>Вопрос</b>: Как можно еще зарабатывать серебро в проекте, кроме пополнения ?<br>
<b>Ответ</b>:
Серебро Вы можете заработать несколькими способами:<br>
1. Играя в игры<br>
2. Участвуя в конкурсе рефералов<br>
3. Ежедневный бонус<br>
В каждом соответствующем разделе есть подробное описание
<br><br>
<b>Вопрос</b>: Как мне привлечь рефералов?<br>
<b>Ответ</b>:
Вам нужно отправить свою реферальную ссылку<br>
(<img src="/img/piar-link.png" style="vertical-align:-2px; margin-right:5px;"><font color="#000;">http://dunozavar.com/?i=2</font>) пользователю, которого хотите пригласить. Как только он пополнит баланс - он будет считаться активным рефералом, и Вы получите за него баллы и серебро на ваш счет!<br>
http://dunozavar.com/account/referals - здесь можете отслеживать активность ваших рефералов!
<br><br>
<b>Вопрос</b>: Я хочу поменять реферала или реферера, как мне это сделать?<br>
<b>Ответ</b>:
К сожалению, эти данные менять нельзя! Если ваш друг не стал вашим рефералом после регистрации, значит он зарегистрировался не по вашей ссылке.
<br><br>
<b>Вопрос</b>: Уровни рефералов - это что?<br>
<b>Ответ</b>:
1 уровень - это ваш реферал. 2 уровень - реферал вашего реферала. 3 уровень - реферал реферала вашего реферала.
<br><br>
<b>Вопрос</b>: Меня заблокировали в чате, за что?<br>
<b>Ответ</b>:<br>
1)Спам<br>
2)Размещение ссылок<br>
3)Нецензурные выражения<br>
4)Ввождение в заблуждение пользователей <br>
5)Попытка навести смуту<br>
<b>Получили бан в чате? Разблокировка платная! Поэтому будьте внимательны!</b>

<br><br>
</div>





          </div>
        </div>
      </div>
       </div>
    </section>

  



   <div id="push"></div>
    </div>

<?
}else{
?>



<div class="cl-right">


<script type="text/javascript">


function isNotMax(oTextArea) {
  return oTextArea.value.length <= oTextArea.getAttribute('maxlength');
}


function isNotMax(e){
  e = e || window.event;
  var target = e.target || e.srcElement;
  var code=e.keyCode?e.keyCode:(e.which?e.which:e.charCode)

  switch (code){
    case 13:
    case 8:
    case 9:
    case 46:
    case 37:
    case 38:
    case 39:
    case 40:
      return true;
  }
  return target.value.length <= target.getAttribute('maxlength');
}


</script>

<div class="s-bk-lf">
    <div class="acc-title">Служба поддержки</div>
</div>
<div class="silver-bk">

Прежде чем обратиться в техническую поддержку, пожалуйста, авторизируйтесь!
</div>
<div class="clr"></div>


                            <div class="clr"></div>
                            </div>
                          











<?


/*echo 'Помощь доступна только авторизированным участникам.';*/
}  
?>
Тоже есть, как минимум можно создавать тикеты от имени других пользователей
 
misterikl
Местный
Сообщения
100
Реакции
7
  • #18
Еще один вопрос, пополнение через Вебмани. Пополнение есть, а серебро пользователю не зачисляется, помогите пожалуйста вот
wmrest.php

Код:
<?php
// Если это форма предварительного запроса, то идем дальше...
IF($_POST['LMI_PREREQUEST']==1) {

  // Проверяем, не произошла ли подмена кошелька.
  // Cравниваем наш настоящий кошелек с тем кошельком, который передан нам Мерчантом.
  // Если кошельки не совпадают, то выводим ошибку и прерываем работу скрипта.
  if(trim($_POST['LMI_PAYEE_PURSE'])!="R11111111111") {
    echo "ERR: НЕВЕРНЫЙ КОШЕЛЕК ПОЛУЧАТЕЛЯ ".$_POST['LMI_PAYEE_PURSE'];
    exit;
  }
  // Если ошибок не возникло и мы дошли до этого места, то выводим YES
  echo "YES";
}

ELSE {

# Автоподгрузка классов
function __autoload($name){ include("classes/_class.".$name.".php");}
# Класс конфига
$config = new config;
# Функции
$func = new func;
# База данных
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);

  // проверка данных
  $secret_key="111111111111111111111111";
  $common_string = $_POST['LMI_PAYEE_PURSE'].$_POST['LMI_PAYMENT_AMOUNT'].$_POST['LMI_PAYMENT_NO'].
     $_POST['LMI_MODE'].$_POST['LMI_SYS_INVS_NO'].$_POST['LMI_SYS_TRANS_NO'].
     $_POST['LMI_SYS_TRANS_DATE'].$secret_key.$_POST['LMI_PAYER_PURSE'].$_POST['LMI_PAYER_WM'];
  $hash = strtoupper(sha256($common_string));
  if($hash!=$_POST['LMI_HASH']) exit;
  // всё верно, зачисляем и пишем в базу
  $sum = $_POST['LMI_PAYMENT_AMOUNT'];
  $ik_payment_amount = $sum;
  $id_user = (int)$_POST['id_user'];
  $user_id = $id_user;
  $u_name = $_POST['name_user'];
  $db->Query("INSERT INTO db_payeer_insert (user_id, user, sum, date_add,status) VALUES ('$id_user','$u_name','$sum','".time()."','1')");
 
 
  # Настройки
    $db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
    $sonfig_site = $db->FetchArray();

   $db->Query("SELECT user, referer_id FROM db_users_a WHERE id = '{$user_id}' LIMIT 1");
   $user_ardata = $db->FetchArray();
   $user_name = $user_ardata["user"];
   $refid = $user_ardata["referer_id"];

   # Зачисляем баланс
   $serebro = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );

   $db->Query("SELECT insert_sum FROM db_users_b WHERE id = '{$user_id}' LIMIT 1");
   $ins_sum = $db->FetchRow();

   $serebro = intval($ins_sum <= 0.01) ? ($serebro + ($serebro * 0.5) ) : $serebro;
   $serebro = intval($ins_sum >= 0.01) ? ($serebro + ($serebro * 0.5) ) : $serebro;
   $add_tree = ( $ik_payment_amount >= 49009.99) ? 2 : 0;
   $lsb = time();
   $to_referer = ($serebro * 0.10);
  
                  //Начисляем билеты
           if($ik_payment_amount >= 200 and $ik_payment_amount < 1000) {
           $bil = $ik_payment_amount / 200;
           $bill = intval($bil);
           } elseif ($ik_payment_amount >= 1000 and $ik_payment_amount < 2000) {
            $bil = $ik_payment_amount / 200;
            $bill = intval($bil) + 2; // если сумма больше 1000 и меньше 2000 руб то бонус 2 билет
           }elseif ($ik_payment_amount >= 2000) {
            $bil = $ik_payment_amount / 200;
            $bill = intval($bil) + 5; // если сумма больше 2000 руб то бонус 5 билета
           }else{
            $bill = 0;
           }
  
   $db->Query("UPDATE db_users_b SET money_b = money_b + '$serebro', e_t = e_t + '$add_tree', to_referer = to_referer + '$to_referer', last_sbor = '$lsb', insert_sum = insert_sum + '$ik_payment_amount', billet = billet + '$bill' WHERE id = '{$user_id}'");



   # Зачисляем средства рефереру и дерево
   $add_tree_referer = ($ins_sum <= 0.01) ? ", a_t = a_t + 1" : "";
   $db->Query("UPDATE db_users_b SET money_b = money_b + $to_referer, from_referals = from_referals + '$to_referer' {$add_tree_referer} WHERE id = '$refid'");

   # Статистика пополнений
   $da = time();
   $dd = $da + 60*60*24*15;
   $db->Query("INSERT INTO db_insert_money (user, user_id, money, serebro, date_add, date_del)
   VALUES ('$user_name','$user_id','$ik_payment_amount','$serebro','$da','$dd')");
  
   # Конкурс
    $competition = new competition($db);
    $competition->UpdatePoints($user_id, $ik_payment_amount);
  
   # Обновление статистики сайта
    $db->Query("UPDATE db_stats SET all_insert = all_insert + '$ik_payment_amount' WHERE id = '1'");
 
}

Вот insert.php

Код:
class="title">ПОПОЛНЕНИЕ СЧЕТА</div>
                                </div>
                                <div class="silver-bk"><br><br>
<?PHP
$_OPTIMIZATION["title"] = "Пополнение c помощью WebMoney";
$usid = $_SESSION["user_id"];
$usname = $_SESSION["user"];

$db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
$sonfig_site = $db->FetchArray();

$db->Query("SELECT id FROM `db_payeer_insert`order by id desc limit 1");
if ($db->NumRows()!=0)
{
    $res =  $db->FetchArray();
    $last_id = $res['id'];
} else $last_id='0';
$last_id++;

?>

<div class="silver-bk">
<font color = 'black'>
<center><h3><p>Автоматическая оплата через WebMoney</p> </center></h3>
<p><center><img src="/img/wm.png" /></center></p>
<div class="title"><h4>
<span style="color: snow;">
Курс игровой валюты: 1 рубль (<?=$config->VAL; ?>) = <?=$sonfig_site["ser_per_wmr"]; ?> золота.
<p>Ввод средств позволяет автоматически приобрести игровое серебро с помощью Webmoney.</p>
<p>Оплата и зачисление серебра на баланс производится в автоматическом режиме.</p>
<p>Введите сумму в РУБЛЯХ, которую вы хотите зачислить на ваш  баланс. <BR />
После пополнения вам будет моментально зачислено серебро.<br /></p>
<p></span>
<span style="color: #7FFF00;">
При пополнении от 1 до 2499р -  <b>50%</b> от суммы В ПОДАРОК!<br>

При пополнении от 2500р. -  <b>100%</b> от суммы В ПОДАРОК!<br>

При пополнении от 5000р -  <b>200%</b> от суммы В ПОДАРОК!<br>
</span></h4></div>

<BR />


<BR />

<script type="text/javascript">
var min = 0.01;
var ser_pr = 100;
function calculate(st_q) {

    var sum_insert = parseFloat(st_q);
    var sum_a1 = sum_insert * ser_pr;
    var sum_b1;
   
    $('#res_sum').html( (sum_insert * ser_pr).toFixed(0) );
    $('#wm_summ').val(sum_insert);
   
    if (sum_insert>=1 && sum_insert<2499) {
       sum_b1 = sum_a1 * 0.5;
       $('#res_sum').html( (sum_a1.toFixed(0) + ' + ' + sum_b1.toFixed(0)) );
    }
    if (sum_insert>=2500 && sum_insert<5000) {
       sum_b1 = sum_a1 * 1.0;
       $('#res_sum').html( (sum_a1.toFixed(0) + ' + ' + sum_b1.toFixed(0)) );
    }
    if (sum_insert>=5000 && sum_insert<20000) {
       sum_b1 = sum_a1 * 2.0;
       $('#res_sum').html( (sum_a1.toFixed(0) + ' + ' + sum_b1.toFixed(0)) );
    }
   
}

</script>

<div id="error3"></div>
    <p>Перед покупкой серебра соберите алмазы</p>
Введите сумму [<?=$config->VAL; ?>]:
<input type="text" value="100" name="sum" size="7" id="psevdo" onchange="calculate(this.value)" onkeyup="calculate(this.value)" onfocusout="calculate(this.value)" onactivate="calculate(this.value)" ondeactivate="calculate(this.value)">

    <b><font color = 'green'>Вы получите <span id="res_sum">10000</span> серебра </font></b>

    <BR /><BR />


<form method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp">
<input type="hidden" name="LMI_PAYMENT_NO" value="<?php echo $last_id; ?>">
<input type="hidden" name="LMI_PAYMENT_AMOUNT" id="wm_summ" value="0.05">
<input type="hidden" name="LMI_PAYMENT_DESC" value="<?php echo "Пополнение баланса в 11111";?>">
<input type="hidden" name="LMI_PAYEE_PURSE" value="R111111111111111">
<input type="hidden" name="id_user" value="<?php echo $usid ;?>">
<input type="hidden" name="name_user" value="<?php echo $usname ;?>">
<input type="submit" value="Оплатить">
</form>
<script type="text/javascript">
calculate(100);
</script>
<center>

<BR />

</center>
<BR /><BR />
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
  • #19
misterikl написал(а):
Еще один вопрос, пополнение через Вебмани. Пополнение есть, а серебро пользователю не зачисляется, помогите пожалуйста вот
wmrest.php

Код:
<?php
// Если это форма предварительного запроса, то идем дальше...
IF($_POST['LMI_PREREQUEST']==1) {

  // Проверяем, не произошла ли подмена кошелька.
  // Cравниваем наш настоящий кошелек с тем кошельком, который передан нам Мерчантом.
  // Если кошельки не совпадают, то выводим ошибку и прерываем работу скрипта.
  if(trim($_POST['LMI_PAYEE_PURSE'])!="R11111111111") {
    echo "ERR: НЕВЕРНЫЙ КОШЕЛЕК ПОЛУЧАТЕЛЯ ".$_POST['LMI_PAYEE_PURSE'];
    exit;
  }
  // Если ошибок не возникло и мы дошли до этого места, то выводим YES
  echo "YES";
}

ELSE {

# Автоподгрузка классов
function __autoload($name){ include("classes/_class.".$name.".php");}
# Класс конфига
$config = new config;
# Функции
$func = new func;
# База данных
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);

  // проверка данных
  $secret_key="111111111111111111111111";
  $common_string = $_POST['LMI_PAYEE_PURSE'].$_POST['LMI_PAYMENT_AMOUNT'].$_POST['LMI_PAYMENT_NO'].
     $_POST['LMI_MODE'].$_POST['LMI_SYS_INVS_NO'].$_POST['LMI_SYS_TRANS_NO'].
     $_POST['LMI_SYS_TRANS_DATE'].$secret_key.$_POST['LMI_PAYER_PURSE'].$_POST['LMI_PAYER_WM'];
  $hash = strtoupper(sha256($common_string));
  if($hash!=$_POST['LMI_HASH']) exit;
  // всё верно, зачисляем и пишем в базу
  $sum = $_POST['LMI_PAYMENT_AMOUNT'];
  $ik_payment_amount = $sum;
  $id_user = (int)$_POST['id_user'];
  $user_id = $id_user;
  $u_name = $_POST['name_user'];
  $db->Query("INSERT INTO db_payeer_insert (user_id, user, sum, date_add,status) VALUES ('$id_user','$u_name','$sum','".time()."','1')");


  # Настройки
    $db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
    $sonfig_site = $db->FetchArray();

   $db->Query("SELECT user, referer_id FROM db_users_a WHERE id = '{$user_id}' LIMIT 1");
   $user_ardata = $db->FetchArray();
   $user_name = $user_ardata["user"];
   $refid = $user_ardata["referer_id"];

   # Зачисляем баланс
   $serebro = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );

   $db->Query("SELECT insert_sum FROM db_users_b WHERE id = '{$user_id}' LIMIT 1");
   $ins_sum = $db->FetchRow();

   $serebro = intval($ins_sum <= 0.01) ? ($serebro + ($serebro * 0.5) ) : $serebro;
   $serebro = intval($ins_sum >= 0.01) ? ($serebro + ($serebro * 0.5) ) : $serebro;
   $add_tree = ( $ik_payment_amount >= 49009.99) ? 2 : 0;
   $lsb = time();
   $to_referer = ($serebro * 0.10);
 
                  //Начисляем билеты
           if($ik_payment_amount >= 200 and $ik_payment_amount < 1000) {
           $bil = $ik_payment_amount / 200;
           $bill = intval($bil);
           } elseif ($ik_payment_amount >= 1000 and $ik_payment_amount < 2000) {
            $bil = $ik_payment_amount / 200;
            $bill = intval($bil) + 2; // если сумма больше 1000 и меньше 2000 руб то бонус 2 билет
           }elseif ($ik_payment_amount >= 2000) {
            $bil = $ik_payment_amount / 200;
            $bill = intval($bil) + 5; // если сумма больше 2000 руб то бонус 5 билета
           }else{
            $bill = 0;
           }
 
   $db->Query("UPDATE db_users_b SET money_b = money_b + '$serebro', e_t = e_t + '$add_tree', to_referer = to_referer + '$to_referer', last_sbor = '$lsb', insert_sum = insert_sum + '$ik_payment_amount', billet = billet + '$bill' WHERE id = '{$user_id}'");



   # Зачисляем средства рефереру и дерево
   $add_tree_referer = ($ins_sum <= 0.01) ? ", a_t = a_t + 1" : "";
   $db->Query("UPDATE db_users_b SET money_b = money_b + $to_referer, from_referals = from_referals + '$to_referer' {$add_tree_referer} WHERE id = '$refid'");

   # Статистика пополнений
   $da = time();
   $dd = $da + 60*60*24*15;
   $db->Query("INSERT INTO db_insert_money (user, user_id, money, serebro, date_add, date_del)
   VALUES ('$user_name','$user_id','$ik_payment_amount','$serebro','$da','$dd')");
 
   # Конкурс
    $competition = new competition($db);
    $competition->UpdatePoints($user_id, $ik_payment_amount);
 
   # Обновление статистики сайта
    $db->Query("UPDATE db_stats SET all_insert = all_insert + '$ik_payment_amount' WHERE id = '1'");

}

Вот insert.php

Код:
class="title">ПОПОЛНЕНИЕ СЧЕТА</div>
                                </div>
                                <div class="silver-bk"><br><br>
<?PHP
$_OPTIMIZATION["title"] = "Пополнение c помощью WebMoney";
$usid = $_SESSION["user_id"];
$usname = $_SESSION["user"];

$db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
$sonfig_site = $db->FetchArray();

$db->Query("SELECT id FROM `db_payeer_insert`order by id desc limit 1");
if ($db->NumRows()!=0)
{
    $res =  $db->FetchArray();
    $last_id = $res['id'];
} else $last_id='0';
$last_id++;

?>

<div class="silver-bk">
<font color = 'black'>
<center><h3><p>Автоматическая оплата через WebMoney</p> </center></h3>
<p><center><img src="/img/wm.png" /></center></p>
<div class="title"><h4>
<span style="color: snow;">
Курс игровой валюты: 1 рубль (<?=$config->VAL; ?>) = <?=$sonfig_site["ser_per_wmr"]; ?> золота.
<p>Ввод средств позволяет автоматически приобрести игровое серебро с помощью Webmoney.</p>
<p>Оплата и зачисление серебра на баланс производится в автоматическом режиме.</p>
<p>Введите сумму в РУБЛЯХ, которую вы хотите зачислить на ваш  баланс. <BR />
После пополнения вам будет моментально зачислено серебро.<br /></p>
<p></span>
<span style="color: #7FFF00;">
При пополнении от 1 до 2499р -  <b>50%</b> от суммы В ПОДАРОК!<br>

При пополнении от 2500р. -  <b>100%</b> от суммы В ПОДАРОК!<br>

При пополнении от 5000р -  <b>200%</b> от суммы В ПОДАРОК!<br>
</span></h4></div>

<BR />


<BR />

<script type="text/javascript">
var min = 0.01;
var ser_pr = 100;
function calculate(st_q) {

    var sum_insert = parseFloat(st_q);
    var sum_a1 = sum_insert * ser_pr;
    var sum_b1;
  
    $('#res_sum').html( (sum_insert * ser_pr).toFixed(0) );
    $('#wm_summ').val(sum_insert);
  
    if (sum_insert>=1 && sum_insert<2499) {
       sum_b1 = sum_a1 * 0.5;
       $('#res_sum').html( (sum_a1.toFixed(0) + ' + ' + sum_b1.toFixed(0)) );
    }
    if (sum_insert>=2500 && sum_insert<5000) {
       sum_b1 = sum_a1 * 1.0;
       $('#res_sum').html( (sum_a1.toFixed(0) + ' + ' + sum_b1.toFixed(0)) );
    }
    if (sum_insert>=5000 && sum_insert<20000) {
       sum_b1 = sum_a1 * 2.0;
       $('#res_sum').html( (sum_a1.toFixed(0) + ' + ' + sum_b1.toFixed(0)) );
    }
  
}

</script>

<div id="error3"></div>
    <p>Перед покупкой серебра соберите алмазы</p>
Введите сумму [<?=$config->VAL; ?>]:
<input type="text" value="100" name="sum" size="7" id="psevdo" onchange="calculate(this.value)" onkeyup="calculate(this.value)" onfocusout="calculate(this.value)" onactivate="calculate(this.value)" ondeactivate="calculate(this.value)">

    <b><font color = 'green'>Вы получите <span id="res_sum">10000</span> серебра </font></b>

    <BR /><BR />


<form method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp">
<input type="hidden" name="LMI_PAYMENT_NO" value="<?php echo $last_id; ?>">
<input type="hidden" name="LMI_PAYMENT_AMOUNT" id="wm_summ" value="0.05">
<input type="hidden" name="LMI_PAYMENT_DESC" value="<?php echo "Пополнение баланса в 11111";?>">
<input type="hidden" name="LMI_PAYEE_PURSE" value="R111111111111111">
<input type="hidden" name="id_user" value="<?php echo $usid ;?>">
<input type="hidden" name="name_user" value="<?php echo $usname ;?>">
<input type="submit" value="Оплатить">
</form>
<script type="text/javascript">
calculate(100);
</script>
<center>

<BR />

</center>
<BR /><BR />
$secret_key="111111111111111111111111"; - свой секретный ключ вставлял ?
 
misterikl
Местный
Сообщения
100
Реакции
7
  • #20
pligin написал(а):
$secret_key="111111111111111111111111"; - свой секретный ключ вставлял ?
Конечно, платеж проходит, на мой кашелек деньги приходят, а вот пользователям серебро не начисляется( вот не могу понять почему?
 
Сверху