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

Тема в разделе "Помощь (Help)", создана пользователем vell, 21 июл 2015.

  1. vell

    vell New Member User

    Регистрация:
    26 окт 2014
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Добрый день, нужна помощь со скриптом голосование l2top.
    Суть проблемы в то что голосовать можно хоть сколько раз а нужно сделать раз в 24 часа.
    Сам код:
    PHP:
    <?php
    if($module30==1){
    $serv_info=file("сюда я вставил список");    //указать номер л2топ


    session_start();
    $error 1;
    $dberror=0;
    $realIP $_SERVER["REMOTE_ADDR"];
    $realtime time();
    $exp_time 43200;
    if (
    strlen($realIP)<||strlen($realIP)>16) {
            echo 
    "<center><span style='color:red'>Ошибка: Повреждена целостность данных.</span><br></center>";
        exit;
        }

    $dbconnect=mssql_connect($mssql_host,$mssql_login,$mssql_pass);
        if(!
    $dbconnect) { echo "<h1>Engine Error: Fatal Error #002</h1><br>Извините, сервис недоступен по техническим причинам. Попробуйте позже."$dberror=1; }

    if(
    $dberror!=1) {

    if(
    $authok==1){
    if(
    antiinjection($_SESSION['acc'])){

    $provakk $_SESSION['acc'];


    }else { exit; }

    if(
    $_POST['action']=='votel2top') {

    echo 
    "<div align=center>";

        if(
    count($_POST)>0){
            if(
    1==1){

        
    $error 2;

        
        
    $user $_POST['user'];
    if(
    antinoob($user)){ $username=$user;

        
    $oldpwd $_POST['oldpassword'];
    if(
    antiinjection($oldpwd)){ $oldpassword=$oldpwd;

        
    $oldname $_POST['oldname'];
    if(
    antinoob($oldname)){ $oldnamez=$oldname;



        if (
    strlen($username)<|| strlen($username)>14) {
            echo 
    "<span style='color:red'>Длина имени аккаунта заключена в диапазон от 4 до 14 символов.</span><br>";
            
    $error 1;
        } else {
        if (
    strlen($oldpassword)<|| strlen($oldpassword)>16) {
            echo 
    "<span style='color:red'>Длина старого пароля заключена в диапазон от 3 до 16 символов.</span><br>";
            
    $error 1;
        } else {
        if (
    strlen($oldnamez)<|| strlen($oldnamez)>16) {
            echo 
    "<span style='color:red'>Длина старого ника заключена в диапазон от 3 до 16 символов.</span><br>";
            
    $error 1;
        } else {
    $zalupa=0;
    for(
    $i=0;$i<count($serv_info);$i++){
    if(
    strpos($serv_info[$i], $oldnamez) !== false) {
    $zalupa=1;
    }
    }
        if (
    $zalupa==0)
        {
            echo 
    "<span style='color:red'>Ошибка: Вас нет в статистике L2TOP.</span><br>";
            
    $error 1;
        } else {
        

        
    connectdb($lin2db$mssql_host$mssql_login$mssql_pass);
        
    $result mssql_query (sprintf(SELECT_USER_PASS$username));


     if(
    mssql_num_rows($result)>) {

        
    $rows=mssql_fetch_assoc($result); 
        
    extract($rows);

        
    $password '0x' bin2hex($password);
        
    $oldpassword encrypt($oldpassword);

        if (
    $password!=$oldpassword) {
            echo 
    "<span style='color:red'>Пароль неверен.</span><br>";
            
    $error 1;
        }
    } else {
            echo 
    "<span style='color:red'>Аккаунт не существует.</span><br>";
            
    $error 1;
    }

     } } } }


    } else { 
    $error=1; echo "<span style='color:red'>Неверные данные в графе - ник.</span><br>"; }

    } else { 
    $error=1; echo "<span style='color:red'>Неверные данные в графе - пароль.</span><br>"; }

    } else { 
    $error=1; echo "<span style='color:red'>Неверные данные в графе - Аккаунт.</span><br>"; }

            }else{
            echo 
    "<span style='color:red'>Неправильно введен код с картинки.</span><br>";
            
    $error 1;
            }
        }
        unset(
    $_SESSION['captcha_keystring']);

        echo 
    "</div>";
    }

    // Checked by Dev -- OK

    if($error<2) {
        echo 
    "
    <br>
    <form name='votel2top' action='index.php?page=ip' method='post' onsubmit='return checkForm(this);'>


    <fieldset>


            <table cellspacing=0 border=0 cellpadding=0 width=100%>
        <tr><td align=left>
        <i><b>Аккаунт</b></i><br>
    (Введите аккаунт, на котором вы хотите получить бонус) 
        </td>
        <td align=right>
    <div align=right>
     <input type=text maxlength=16 name=user>
    </div>
    </td></tr>

        <tr><td align=left>
        <i><b>Пароль</b></i><br>
    (Введите текущий пароль от аккаунта) 
        </td>
        <td align=right>
    <div align=right>
     <input type=password maxlength=16 name=oldpassword>
    </div>
    </td></tr>

        <tr><td align=left>
        <i><b>Ник</b></i><br>
    (Введите ник персонажа на вашем аккаунте, которому хотите зачислить бонус.) 
        </td>
        <td align=right>
    <div align=right>
     <input type=text maxlength=16 name=oldname>
    </div>
    </td></tr>

    </table>
            </fieldset>
    <br>
            <fieldset>
                        <legend><b>Код безопасности:</b></legend>
            <table cellspacing=0 border=0 cellpadding=0 width=100%>
        <td align=left>
    <b><i>Код на картинке</i></b><br>(Введите число, которое Вы видите на картинке. Если вы не видите картинку, включите в браузере отображение картинок.) 
        </td>
        <td align=right>
    <div align=right>
    <div class='captha'><img id='capchaimage' src='captha/index.php?"
    ; echo session_name(); echo "="; echo session_id(); echo "' height='50' width='120'><br></div>
    <input type=text maxlength=16 name=keystring value=''>
    </div>
    </td></table>

            </fieldset>


            <div align=right>
                <BR>
                <input type=hidden name=action value='votel2top'>
                <span><input type=submit name=submit value='Подтвердить'></span>
            </div>
        </form>
        "
    ;
    }

    if(
    $error==2) {


    mssql_connect($mssql_host,$mssql_login,$mssql_pass);
    mssql_select_db($lin2world); 

    $result=mssql_query("SELECT * FROM user_data WHERE char_name='$oldnamez'");

    if(
    mssql_num_rows($result)>0){

    $result=mssql_query("SELECT * FROM user_data WHERE char_name='$oldnamez' and account_name='$username'");

    if(
    mssql_num_rows($result)>0){

    $charid=mssql_result($result0'char_id'); 

    //Обращаемся к CacheD

    include('config/cached.php');

    $cached = new CacheD($cachedport,$cachedip,$webadmin);

    $char_id $charid;

    if (
    $cached -> KickCharacterPacket($char_id)) {

    $result mssql_query("SELECT * FROM l2_votex WHERE char_id='$oldnamez' and date>'$realtime'");

    if(
    mssql_num_rows($result) == ) {
        
    $nametoken 1;
        } else {
            echo 
    "<span style='color:red'>Ошибка: Вы уже голосовали сегодня. Приходите через 12 часов!<br><br></span><br>";
        }

    }
    else
    { echo 
    "<span style='color:red'>Error 895. Сервер не работает.</span><br>"; }
    }
    else
    { echo 
    "<span style='color:red'>На вашем аккаунте нет персонажа с ником $oldnamez.</span><br>"; }
    }
    else
    { echo 
    "<span style='color:red'>Персонаж $oldnamez не найден.</span><br>"; }


    }


    if(
    $nametoken==1){


    $stopfr 2;
    $realtime2 $realtime+$exp_time;

    mssql_connect($mssql_host,$mssql_login,$mssql_pass);
    mssql_select_db($lin2world); 
    $result=mssql_query("INSERT INTO l2_votex(char_id, date, ip, is_activated) VALUES('$oldnamez','$realtime2','$realIP','1')");
    $result2=mssql_query("INSERT INTO l2_votex_ip(date, ip) VALUES('$realtime2','$realIP')");





    $warehouse 0;
    $enchant 0;
    $eroded 0;
    $bless 0;
    $wished 0;

    $cached = new CacheD($cachedport,$cachedip,$webadmin);

    if (
    $cached -> KickCharacterPacket($char_id)) {    $cached -> AddItem2Packet($char_id,$warehouse,"4357","1",$enchant$eroded$bless$wished); }


    $thedata date("d.m.Y H:i");
    $success "$thedata - начислено персонажу [$oldnamez] char_id=[$char_id] - проголосовавшего с ИП - [$realIP] \r\n";
    $file fopen("log/l2top_vote.txt""a+");
    fwrite($file$success);
    fclose($file);

    echo 
    "<span style='color:green'>Ваш голос зачтен и вам выдан приз. <br> Следующий раз вы сможете проголосовать через 24 часа.</span><br>";

    }


    }else { echo 
    "<center><span style='color:red'>Ошибка: Авторизируйтесь в личном кабинете для получения бонусов.</span><br></center>"; }



    else{
    echo 
    $errfield;
    }
    }
    ?>
    Вот это условие не работает:
    PHP:
    $result mssql_query("SELECT * FROM l2_votex WHERE char_id='$oldnamez' and date>'$realtime'");

    if(
    mssql_num_rows($result) == ) {
        
    $nametoken 1;
        } else {
            echo 
    "<span style='color:red'>Ошибка: Вы уже голосовали сегодня. Приходите через 12 часов!<br><br></span><br>";
        }
     
  2. vell

    vell New Member User

    Регистрация:
    26 окт 2014
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Тему можно закрыть исправил ошибка была в базе не правильном формате(