1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Php вывод баланса выводит null

Тема в разделе "Оффтопик", создана пользователем zuma2, 12 июн 2014.

  1. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Код:
                $stmt = $db->prepare("SELECT username,balance FROM iConomy WHERE username= :login");
                $stmt->bindValue(':login', $login);
                $stmt->execute();
                $row = $stmt->fetch(PDO::FETCH_ASSOC);
                $iconmoney = $row['balance'];
    
    Переменные свои подставишь.
     
  2. Автор темы
    zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    Fatal error: Call to undefined method db::prepare() in /var/www/xlheiuei/data/www//index.php(354) : eval()'d code on line 101
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    А подключение ты написал?
    try {
    $db = new PDO("mysql:host=$db_host;port=$db_port;dbname=$db_database", $db_user, $db_pass);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->exec("set names utf8");
    } catch(PDOException $pe) {
    die($pe->getMessage());
    }
     
    Последнее редактирование: 13 июн 2014
  4. ilucha

    ilucha Активный участник Пользователь

    Баллы:
    93
    Имя в Minecraft:
    ilucha
    Попробуй через массив.

    PHP:
    $c $mysqli->query("SELECT * FROM dle_users WHERE name='$user'");
    $a mysqli_fetch_array($c);
    echo 
    $a['realmoney'];
     
  5. Автор темы
    zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    Fatal error: Call to a member function query() on a non-object in /var/www/xlheiuei/data/www/ragecraft.ru/index.php(354) : eval()'d code on line 102
    1. include('balance/config.php');
     
  6. криптоай

    криптоай Новичок Пользователь

    Баллы:
    13
    Эм..
    Просто echo mysql_error();
     
  7. Автор темы
    zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    работает вместе с этим, я не пойму почему О_о
    PHP:
    <?php
    /*    BlockShop v0.8[FREE] - магазин блоков для DLE
        Скрипт: functions.php (все функции магазина)
        @Konstantin773  от 17.07.2013    Продажа оригинального и модифицированного кода запрещена!!!
    */
    define ('BLOCKSHOP'true );
    include(
    'config.php');
    header("Content-type: text/html; charset=windows-1251");
    if(
    $charset=='CP1251'){foreach($_POST as $name => $value){$_POST[$name] = iconv('UTF-8','WINDOWS-1251'$value);}}
    if(empty(
    $username)){badly("Авторизируйся!");}
    $_POST array_map('trim'$_POST);
    $count count($_POST);
    if(
    $count>2){$a = array('<','>','$','eval','?');inlog('error.txt',str_replace($a,"",implode(",",$_POST)));exit();}
    //////Балансы юзера(создаем, если не существуют)/////
    $ecobal mysql_query("SELECT * FROM `{$eco['0']}` WHERE `{$eco['1']}`='{$username}';");
    if(
    mysql_num_rows($ecobal) == ) {mysql_query("INSERT INTO `{$eco['0']}` (id,`{$eco['1']}`,`{$eco['2']}`) VALUES (NULL, '{$username}','{$nominal}');"); $ecobal mysql_query("SELECT `{$eco['2']}` FROM `{$eco['0']}` WHERE `{$eco['1']}`='{$username}';");}
    $realbal mysql_query("SELECT * from `{$real['0']}` where `{$real['1']}`='{$username}'");
    if (
    mysql_num_rows($realbal) == ) {mysql_query("INSERT INTO `{$real['0']}` (id,`{$real['1']}`,`{$real['2']}`) VALUES (NULL,'{$username}','0');"); $realbal mysql_query("SELECT `{$real['2']}` FROM `{$real['0']}` WHERE `{$real['1']}`='{$username}';");}
    //////Условия использования функций///////
    if(isset($_POST['buy']) and $count==2){
        if(empty(
    $_POST['user'])){$s1 $username;}
        if(
    strlen($_POST['user'])<22 and strlen($_POST['user'])>2){$s1 ifuser($_POST['user']);}
        
    buyblock($_POST['buy']."::".$s1);}
    if(
    $count==1){
        if(
    $group == 1){
            if(isset(
    $_POST['history']) and $_POST['history'] = mysql_real_escape_string($_POST['history'])){history($_POST['history']);}
            if(isset(
    $_POST['cart']) and $_POST['cart'] = mysql_real_escape_string($_POST['cart'])){cart($_POST['cart']);}
            if (isset(
    $_POST['admin'])){admin($_POST['admin']);}
            if (isset(
    $_POST['edit'])) {edit($_POST['edit']);}
            if(isset(
    $_POST['del'])) {delblock($_POST['del']);}
        }
    if(isset(
    $_POST['balance'])){balance($_POST['balance']);}
    if(isset(
    $_POST['perevod'])){perevod($_POST['perevod']);}
    if(isset(
    $_POST['cart'])){cart($username);}
    if(isset(
    $_POST['history'])){history($username);}
    if(isset(
    $_POST['delb'])){back($_POST['delb']);}
    if(isset(
    $_POST['dellog'])){dellog();}
    }
    /////////ФУНКЦИИ///////////
    function ifuser($s1){
        global 
    $eco;
        if(
    mysql_result(mysql_query("SELECT `{$eco['1']}` from `{$eco['0']}` where `{$eco['1']}`='{$s1}'"),0)==$s1)
        return 
    $s1; else badly("Пользователь с данным именем не найден!");
    }
    function 
    upbalance($s1,$s2,$s3){
        
    mysql_query("UPDATE `{$s1['0']}` set `{$s1['2']}`={$s1['2']}{$s2} where `{$s1['1']}`='{$s3}'");
    }
    ///история///
    function history($s1){
        global 
    $dir,$logs;
        
    $q mysql_query("SELECT * FROM {$logs} WHERE name='{$s1}' ORDER BY date DESC");
        if(
    mysql_num_rows($q)==0badly('<center>История пуста!<br/></center>');
        
    $c.='<div class="presale" type="button" onclick="bedit(\'dellog=0\')" style="width:20%;"><div class="sale" style="height:100px;width:85%;cursor:pointer;font-size:10px;"><center><b><br>Очистить<br>логи старее<br>10 суток</b></center></div></div>';
        while(
    $r mysql_fetch_array($q)) {
            list(
    $n$a$p$i) = explode(":n:"$r['info']);
            
    $d date('j.m.Y H:i:s'$r['date']);
            
    $c.='<div class="presale" style="width:20%;"><div class="sale" style="height:100px;width:85%;font-size:10px;"><center><b>'.$n.'</b><br/><img src="'.$dir.'images/'.$i.'"><br />
            <b>'
    .skl($a,array('штука','штуки','штук')).' за '.$p.' р.</b><br /><b>'.$d.'</b><br /><br></center></div></div>';
        }
        die (
    $c);
    }
    ///баланс///
    function balance($s1){
        global 
    $username,$eco,$real,$ecobal,$realbal,$sklrub,$skleco;
        if(
    $s1==0){$s2 skl(round(bal($ecobal,$eco['2'])),$skleco);$val 'iConomy';} else {
        
    $s2 skl(round(bal($realbal,$real['2'])),$sklrub);$val 'Рубли';}
        die (
    "Текущая валюта: ".$val.". Баланс: ".$s2);
    }
    function 
    bal($s1,$s2){
        
    $q=mysql_fetch_assoc($s1);
        return 
    $q[$s2];
    }
    ///склад////
    function cart($s1){
        global 
    $cart$dir$s;
        for(
    $i 0$size count($s); $i $size; ++$i) {
            
    $q mysql_query("SELECT * FROM `{$s[$i]}` WHERE `{$cart['1']}`='{$s1}'");
            while(
    $r mysql_fetch_array($q)) {
            
    $c.='<div class="presale" id="d'.$r['id'].'" style="width:20%;"><div class="sale" style="height:100px;width:85%;font-size:10px;"><input type="button" onclick="delblock(\''.$r['id'].'\',\''.$s[$i].'\');" class="ud uk" title="Отказаться от покупки"><center><b>'.$r['name'].'<br /><img src="'.$dir.'images/'.$r['img'].'"><br>'.$r[$cart['3']].' шт.<br>Сервер: '.$s[$i].'</b></center></div></div>';
            }
        }
        if(
    $c==""){badly('<center>Корзина пуста!<br/></center>');}
        die (
    $c);
    }
    ///очистка логов///
    function dellog(){
        global 
    $username,$logs;
        
    $time time()-864000;
        
    mysql_query("DELETE from {$logs} where name='{$username}' and date<{$time}");
        
    inlog('log.txt',"Очищена история!");
        die (
    history($username));
    }
    ///возврат покупки
    function back($s1){
        list(
    $id,$serv) = explode("::",$s1);
        global 
    $username,$cart,$eco,$ecobal,$s,$blocks,$skleco;
        if(!
    ctype_digit($id) or !in_array($serv,$s)) badly("Некорректные данные!");
        
    $q mysql_query("SELECT price from `{$serv}` where id='{$id}' and `{$cart['1']}`='{$username}'");
        if(
    mysql_num_rows($q)!=1badly("Указанный блок не найден!");
        
    $backprice mysql_result($q,0);
        
    $skl=skl($backprice,$skleco);
        
    mysql_query("DELETE from `{$serv}` where id='{$id}' and `{$cart['1']}`='{$username}'");
        
    upbalance($eco,"+".$backprice,$username);
        
    inlog('log.txt',"Возвращено {$skl} из корзины!");
        
    goodly("Блок успешно удален! Возвращено на игровой счет: <b>{$skl}<b>");
    }
    ///покупка предмета
    function buyblock($s1){
        global 
    $blocks,$eco,$real,$ecobal,$realbal,$cart,$logs,$username,$sklrub,$skleco;
        list(
    $s1,$s2,$ss,$s3) = explode("::"$s1);
        if(!
    ctype_digit($s2) OR $s2 == '0' OR $s2 128 OR !preg_match("|^[\d]+$|",$s1 OR $s3!=mysql_real_escape_string($s3))) badly("Неверно введено количество предметов!<br>Допустимые значения от 1 до 128 шт!");
        
    $query =  mysql_query("SELECT * FROM {$blocks} WHERE id='{$s1}';"); ///не волнуйтесь, запрос безопасен///
        
    if(mysql_num_rows($query) == 0badly("Данный блок отсутствует в продаже!");
        
    $r mysql_fetch_assoc($query);
        
    ///валюты//
        
    if($ss == 0){
        
    $q bal($ecobal,$eco['2']);$plata $eco;$price $r['price']*$s2;$val $skleco;}else{
        
    $q bal($realbal,$real['2']);$plata $real;$price $r['realprice']*$s2;$val $sklrub;}
        if(
    $price ==0badly("Данный тип валюты недоступен для покупки этого предмета!<br/>");
        
    $amount $r['amount']*$s2;
        
    ///скидки (удалите если не нужно)///
        
    if($amount 63) {$price round($price*0.95);$skidka 'Скидка <b>5%</b>.';}
        if(
    $r['action'] !== '0') {$action=1-$r['action']/100;$price round($price*$action);$skidka 'Скидка <b>'.$r['action'].'%</b>.';}
        
    ///сопоставление баланса с ценой///
        
    if($q $pricebadly("У Вас не хватает денег на счету для выполнения данной операции!");
            
    $now $q-$price;
            
    $backprice round($r['price']*$s2/2);
            
    $time=time();
            
    $skl1=skl($price,$val);
            
    $skl2=skl($now,$val);
            
    $skl3=skl($amount,array('штука','штуки','штук'));
            if(
    $s3!=$username){$add=" игроку <b>\"{$s3}\"</b> ";}
            if(
    $_SESSION['buytime']>$time){$fail=skl($_SESSION['buytime']-$time,array('секунду','секунды','секунд'));badly("Следующая покупка возможна через <b>{$fail}</b>!");}
            
    $info $r['name'].":n:".$amount.":n:".$price.":n:".$r['image'];
            
    upbalance($plata,"-".$price,$username);
            
    mysql_query("INSERT into {$logs} (name,info,date) VALUES ('{$s3}','{$info}','{$time}')");
            if(
    mysql_num_rows(mysql_query("SELECT * from `{$r['server']}` where `{$cart['1']}`='{$s3}' and name='{$r['name']}'")) == 1) {
            
    mysql_query("UPDATE `{$r['server']}` set `{$cart['3']}`= `{$cart['3']}` + {$amount}, price=price+{$backprice} where `{$cart['1']}`='{$s3}' and `{$cart['2']}`='{$r['block_id']}'");
            } else {
            
    mysql_query("INSERT INTO `{$r['server']}`(id,`{$cart['1']}`,`{$cart['2']}`,`{$cart['3']}`, img, name, price) VALUES (NULL, '{$s3}','{$r['block_id']}','{$amount}', '{$r['image']}', '{$r['name']}','{$backprice}');");}
            
    $_SESSION['buytime']=$time+10;
            
    goodly("Вы купили предмет <b>\"{$r['name']}\"</b>{$add}. Количество: <b>{$skl3}</b>. Цена: <b>{$skl1}</b>.<br>{$skidka}Ваш текущий баланс <b>{$skl2}");
    }
    ///покупка/продление статусов///
    function goodly($s1){
    die (
    '<div class="mess goodly">'.$s1.'</div>');
    }
    function 
    badly($s1){
    die (
    '<div class="mess badly">'.$s1.'</div>');
    }
    ////Администраторские функции////
    function edit($s1){
            global 
    $blocks$s$cat;
            list(
    $image,$blockid,$name,$amount,$price,$realprice,$server,$action,$mid,$category) = explode("::"$s1);
            if(!
    ctype_digit($price) or !ctype_digit($realprice) or !ctype_digit($mid) or !ctype_digit($action) or $action or $action 99 or !ctype_digit($amount) or $amount or !in_array($server,$s) or !in_array($category,$cat) or
            !
    preg_match("|^([0-9\.\:\-\a-z]{1,8})$|is",$blockid) or !file_exists('images/'.$image) or empty($image) or $image != mysql_real_escape_string($image) or $name != mysql_real_escape_string($name)) badly("В полях ввода обнаружены запрещенные символы!");
             if(
    $mid != 0){
              
    mysql_query("UPDATE {$blocks} SET image='{$image}', block_id='{$blockid}', amount='{$amount}', price='{$price}', realprice='{$realprice}', name='{$name}', action='{$action}', server='{$server}', category='{$category}' WHERE id='{$mid}';");
              
    inlog('admin.txt',"Отредактирован блок под id: {$blockid}");
              
    goodly("Вы успешно отредактировали блок под ID: ".$blockid);} else {
              
    mysql_query("INSERT INTO {$blocks}(id,image,block_id,amount,price,realprice,name,action,server,category) VALUES (NULL, '{$image}', '{$blockid}', '{$amount}', '{$price}', '{$realprice}', '{$name}', '{$action}', '{$server}', '{$category}');");
              
    inlog('admin.txt',"Добавлен блок под id: {$blockid}");
              
    goodly("Вы успешно добавили блок под ID: ".$blockid);}
    }
    function 
    admin($s1){
        global 
    $dir$serv$blocks$cats;
        if(!
    ctype_digit($s1)) badly("Неверно заполнено одно из полей!");
        
    ///массив изображений блоков
        
    $files scandir('images/');
        for(
    $i=2$i sizeof($files); $i++){$imglist .= '<div id="ach"><input type=radio name="image" id="'.$files[$i].'" value="'.$files[$i].'" onChange="javascript: doIcon( this.value );"><label for="'.$files[$i].'"><img src="'.$dir.'images/'.$files[$i].'"></label></div>';}
        
    ///определение значений добавления/редактирования блоков
        
    if($s1!=0){
            
    $que mysql_query("SELECT * FROM {$blocks} where id='{$s1}'");
            while(
    $r mysql_fetch_array($que)) {$f1 '<div id="img_box" style="width: 36px;height:36px;background-image: url(/'.$dir.'images/'.$r['image'].'); background-position: 50% 50%; background-repeat: no-repeat no-repeat;"></div><input type=hidden id="b1" value="'.$r['image'].'" style="display:none">';$f2 $r['block_id'];$f3 $r['name'];
            
    $f4 $r['amount'];$f5 $r['price'];$f6 $r['id'];$f7 $r['action'];$f8 $r['realprice'];$serv str_replace($r['server'].'"'$r['server'].'" selected'$serv);$cats=str_replace($r['category'].'"'$r['category'].'" selected'$cats);}
        } else { 
    $f1 '<div id="img_box" style="width:36px;height:36px;background-image: url(/'.$dir.'images/1.png);"></div><input type=hidden id="b1" value="0" style="display:none">';$f4 "1";$f5 "1";$f6 "0";$f7 "0";$f8 "0";}
        
    ///вывод формы добавления/редактирования///
        
    $c.='<center><p>Выберите картинку блока:<br><div class="sale" style="height:auto"><div class="slcon"><div class="item">'.$imglist.' </div></div></div><br>Текущая картинка блока:<br>'.$f1.'
        <div class="field">
        ID блока:<br /><input type="text" class="form" pattern="[0-9\.\:]*" id="b2" value="'
    .$f2.'" required><br />
        Название:<br /><input type="text" class="form" id="b3" value="'
    .$f3.'" required><br />
        </div><div class="field">
        Сервер:<br /><select id="b6" class="form">'
    .$serv.'</select><br>
        Категория:<br /><select id="b9" class="form">'
    .$cats.'</select><br>
        </div><div class="field">
        Цена(IC)/Цена(Р)/скидка(%):<br /><input type="number" class="form" style="width:30%" pattern="[0-9]*" id="b5" value="'
    .$f5.'" required><input type="number" class="form" style="width:30%" pattern="[0-9]*" id="b10" value="'.$f8.'" required><input type="number" class="form"  style="width:30%" id="b7" value="'.$f7.'"><br />
        Количество:<br /><input type="number" class="form" pattern="[0-9]*" id="b4" onkeyup="this.value=this.value.replace(/[^\d\.]+/g,\'\');" value="'
    .$f4.'" required><br /></div>
        <button type="button" id="b8" value="'
    .$f6.'" onclick="zedit();" class="btn-shop">Сохранить</button></p></center>';
        die(
    $c);
    }
    function 
    delblock($s1){
            global 
    $blocks;
            if(!
    ctype_digit($s1)) badly("Обнаружены некорректные символы!");
            
    mysql_query("DELETE FROM {$blocks} WHERE id='{$s1}';");
            
    inlog('admin.txt',"Удален блок под id: {$s1}");
            
    goodly("Блок успешно удален!");
    }
    function 
    inlog($s1,$s2){
        global 
    $username;
        
    file_put_contents('logs/'.$s1,'['.date("d/m/Y H:i:s"time()).']['.$username.']['.$_SERVER['REMOTE_ADDR'].']=>' $s2 "\n",FILE_APPEND);
    }
    ?>
     
  8. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Может потому что у тебя старое mysql а не pdo подключение и переменная $db у тебя пустая?
    К тому же я писал назначь свои переменные.
    Вообще зачем лезть что то переписывать, если не понимаете как это работает!
     
  9. ilucha

    ilucha Активный участник Пользователь

    Баллы:
    93
    Имя в Minecraft:
    ilucha
    1. PHP:
      $c mysql_query("SELECT * FROM dle_users WHERE name='Переменная игрока'");
      $a mysql_fetch_array($c);
      echo 
      $a['realmoney'];
      Для mysql подключения
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ну или так да! Если совсем лузер юзай старый mysql.
     
  11. Автор темы
    zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    No database selected mysql_error
    Если ты не лузер, научи меня в скайпе
     
  12. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Просто посмотри в сашке новом, примеров достаточно будет.
     
  13. mcdima

    mcdima Старожил Пользователь

    Баллы:
    153
    Ты в своем сашке не можешь исправить конект с authme, а еще кого-то учишь? Мда...
     
  14. Автор темы
    zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    решено
     
  15. AlexMerser

    AlexMerser Старожил Пользователь

    Баллы:
    173
    Try catch? :confused:
    Советую прочитать
     
  16. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Тип не знал что в пыхе тоже можно try catch?
    Уже давно так юзаю в сашке.
    try {
    $db = new PDO("mysql:host=$db_host;port=$db_port;dbname=$db_database", $db_user, $db_pass);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->exec("set names utf8");
    } catch(PDOException $pe) {
    die(Security::encrypt("errorsql", $key1).$logger->WriteLine($log_date.$pe)); //вывод ошибок MySQL в m.log
    }
     
  17. Help

    Help Старожил Пользователь

    Баллы:
    123

    $query = mysql_query("SELECT 'realmoney' FROM `dle_users` WHERE `name`='Переменная игрока'");
    $realmoney = @mysql_result($query, 0);

    Так лучше.
     
  18. AlexMerser

    AlexMerser Старожил Пользователь

    Баллы:
    173
    В данном случае нужен try, в ТСовском - нет - он не будет ничего с ошибкой делать(зачем ее ловить тогда?). Про вывод пхп сам позаботится
     
  19. Автор темы
    zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    Забейте, ошибка была в конфиге
     

Поделиться этой страницей