Проблема с кодом в php

Тема в разделе "Как сделать...", создана пользователем Kilkeni, 7 сен 2013.

Статус темы:
Закрыта.
  1. Kilkeni

    Kilkeni

    Регистр.:
    24 июн 2013
    Сообщения:
    158
    Симпатии:
    46
    В общем я не очень разбираюсь в пхп, пока только учусь, и встала у меня кость в горле

    Fatal error: Cannot redeclare mqfa1() (previously declared in Y:\home\bkwar.r\www\connect.php:48) in Y:\home\bkwar.r\www\connect.php on line 52

    (я не знаю что эта ошибка от меня хочет)

    Код:
    }
    
    function mqfa1($sql, $pos=0){
    if (strpos($sql,"show fields")===false && strpos($sql," limit ")===false) $sql.=" limit 1";
    $a=mysql_fetch_row(mq("$sql"));
    return $a[$pos];
    }
    
    function mqfa($sql){
    if (strpos($sql,"show fields")===false && strpos($sql," limit ")===false) $sql.=" limit 1";
    $a=mysql_fetch_assoc(mq("$sql"));
    return $a;
    }
    function mqfaa($sql){
    //if (strpos($sql,"show fields")===false && strpos($sql," limit ")===false) $sql.=" limit 1";
    $a=mq("$sql");
    $res = array();
    while ($row = mysql_fetch_assoc($a)) {
    $res[] = $row;
    } 
    
    Помогите подсказкой или решением пожалуйста.
     
  2. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.645
    Симпатии:
    1.349
  3. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    359
    Симпатии:
    243
    Написано же.. функция mqfa1 второй раз определяется. Смотреть строки 48 и 52.. одно из определений функции убрать (временно закомментировать, если есть опасения)
     
  4. Kilkeni

    Kilkeni

    Регистр.:
    24 июн 2013
    Сообщения:
    158
    Симпатии:
    46
    Пробывал, и ничего не выходит. (до такого я бы додумался)
     
  5. Nei

    Nei Nosce te ipsum

    Регистр.:
    5 сен 2009
    Сообщения:
    616
    Симпатии:
    488
    Что именно вы пробовали? Убрать одну из функций mqfa1? И это не помогло?
    Приведите весь код.
     
  6. Kilkeni

    Kilkeni

    Регистр.:
    24 июн 2013
    Сообщения:
    158
    Симпатии:
    46
    Код:
    <?php
    //if (strpos($_SERVER["PHP_SELF"], "ch.php")!==false) die;
    
    $djs=array(3672, 5721, 8505, 5840, 5880, 7452, 5823, 8556, 1785, 12927, 7904);
    if (1) {
    //  define("IMGBASE","");
      define("IMGBASE","");
      define("IMGNUM","");
    } else {
      define("IMGBASE","");
      define("IMGFN","_rm");
    }
    
      define("title","«Бойцовский Клуб» - Бесплатная, браузерная онлайн игра");
    
    if (!defined("INCRON")) define("INCRON", 0);
    
    define("CHATROOT","");
      if (!defined("DOCUMENTROOT")) define("DOCUMENTROOT","");
    define("APR1", 0);
    define("LETTERQUEST", 0);
    
    $smalladms=array();
    Error_Reporting(E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR);
    /*if (strpos($_SERVER["PHP_SELF"], "ch.php")===false) {
      echo "Ведутся технические работы, игра будет доступна примерно через 10 минут.";
      die;
    }*/
        $mysql = mysql_connect("localhost","root","");
        if ($_SERVER['REMOTE_ADDR'] == 'localhost') {
            mysql_select_db ("bkwar", $mysql);  // ТУТ ИМЯ БАЗЫ
        } else {
            mysql_select_db ("bkwar", $mysql);  // ТУТ ИМЯ БАЗЫ
        }
        mysql_query("SET NAMES CP1251");
    
    
        foreach ($_POST as $k=>$v) {
            $_POST[$k] = htmlspecialchars(mysql_real_escape_string($v));
        }
        foreach ($_GET as $k=>$v) {
            $_GET[$k] = htmlspecialchars(mysql_real_escape_string($v));
        }
        foreach ($_REQUEST as $k=>$v) {
            $_REQUEST[$k] = htmlspecialchars(mysql_real_escape_string($v));
        }
    
      function mqfa1($sql, $pos=0){
        if (strpos($sql,"show fields")===false && strpos($sql," limit ")===false) $sql.=" limit 1";
        $a=mysql_fetch_row(mq("$sql"));
        return $a[$pos];
      } 
    
      function mqfa($sql){
        if (strpos($sql,"show fields")===false && strpos($sql," limit ")===false) $sql.=" limit 1";
        $a=mysql_fetch_assoc(mq("$sql"));
        return $a;
      }
      function mqfaa($sql){
        //if (strpos($sql,"show fields")===false && strpos($sql," limit ")===false) $sql.=" limit 1";
        $a=mq("$sql");
        $res = array();
        while ($row = mysql_fetch_assoc($a)) {
            $res[] = $row;
        }
        return $res;
      }
      function mqfr($sql){
        if (strpos($sql,"show fields")===false && strpos($sql," limit ")===false) $sql.=" limit 1";
        $a=mysql_fetch_row(mq("$sql"));
        return $a;
      }
    
      function mq($sql){
        $a=mysql_query($sql);
        return $a;
      }
    
      function remquotes($s) {
        $ret=str_replace('&','&amp;',$s);
        $ret=str_replace('"','&#34;',$ret);
        $ret=str_replace("'",'&#39;',$ret);
        $ret=str_replace(">",'&gt;',$ret);
        $ret=str_replace("<",'&lt;',$ret);
        return $ret;
      }
    
      function mnr($q) {
        return mysql_num_rows(mq($q));
      }
    
    
    if(!function_exists("format_string")) {
    function format_string(&$string)
      {
    $string=str_replace("\\n","<BR>",$string);
    $string = addslashes(preg_replace(array('/\s+/','/,+/','/\-+/','/\0/s','/%00/'), array(' ',',','-',' ',' '),trim(stripcslashes($string))));
    $string=str_replace("<BR>","\\n",$string);
      return $string;
      }}
    array_walk($_REQUEST,"format_string");
    array_walk($_POST,"format_string");
    array_walk($_GET,"format_string");
    
    if(date("w")<6 && date("w")>0){
      define ("proc_exp", "200");
    }else{
      define ("proc_exp", "400");
    }
    $vr_st = mysql_fetch_array(mysql_query("SELECT honorpoints FROM `users` WHERE `id` = 99 LIMIT 1;"));
    if($vr_st['honorpoints']>0){
    define("vrag", "on");
    }else{
    define("vrag", "off");
    }
    define("MEMCACHE_PATH", "data/memcache");
    function trace() {
    }
    function debug($s) {
      $f=fopen("ot.txt", "ab+");
      fwrite($f, "$s\r\n");
      fclose($f);
    }
    define("SELLCOEF", "1");
    //define("SELLCOEF", "0.6");
    ?>
     
  7. Nei

    Nei Nosce te ipsum

    Регистр.:
    5 сен 2009
    Сообщения:
    616
    Симпатии:
    488
    Приведенный код никакой ошибки не выдаёт. Только что проверил.
    Если у вас всё еще отображается такая ошибка - ищите описание функции mqfa1 где-то в других файлах (если таковые подключены).
     
    Kilkeni нравится это.
  8. Kilkeni

    Kilkeni

    Регистр.:
    24 июн 2013
    Сообщения:
    158
    Симпатии:
    46
    Пожалуй я догадываюсь где именно, спасибо вам

    тему можно закрывать
     
    Последнее редактирование модератором: 9 сен 2013
  9. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    359
    Симпатии:
    243
    Если функция дублируется в других файлах, текст ошибки будет другой.
    Не так/не там пробовал.
     
  10. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.523
    Симпатии:
    1.376
    PHP не всегда даёт правильное описание ошибки, которое можно однозначно трактовать.
    Помимо дублирования функции может быть еще и дублирования подключения файла с определением функции...

    Для воспроизведеня ошибки как у ТС, попробуйте его код подключить дважды:
    PHP:
    <?php

    include('code.php'); 
    include(
    'code.php');
     
    Замечание к ТС: мог бы и сразу написать, что поиск по файлу/файлам на дублирование функции проводил - было бы меньше флуда в теме.
     
    Nei нравится это.
Статус темы:
Закрыта.