[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    Доброго времени суток.
    Возникла ошибка в коде:

    HTML:
    Fatal error: Cannot access empty property in /home/arhangel/public_html/classes/DBObject.php on line 66
    вот строчка в которой указывается ошибка:
    $this->$objectId = $this->generateId();


    А вот фрагмент
    PHP:
    /**
        * Stores data of current object from class variables into database
        *
        * @access public
        */
        
    function insert() {
            if (!isset(
    $this->objectId)) {
                
    $this->$objectId $this->generateId();
            }
            
    $setClause $this->_prepareSetClause();
            if (
    strlen($setClause)>0) {
            
    $sql "INSERT INTO `{$this->__table}` SET $setClause ";
    //        echo "$sql<br>";
                
    return $this->DBManager->ExecuteQuery($sql);
            }
            return 
    false;
        }
    Подскажите в чём дело???
     
  2. kraken

    kraken Member

    Joined:
    2 Jan 2009
    Messages:
    74
    Likes Received:
    75
    Reputations:
    5
    PHP:
    $this->$objectId 
    замени на
    PHP:
     $this->objectId
    (тоесть без $)
    Выше строку смотри правильно же написал
     
    1 person likes this.
  3. SVAROG

    SVAROG Elder - Старейшина

    Joined:
    13 Feb 2007
    Messages:
    424
    Likes Received:
    86
    Reputations:
    -1
    из сокета получаю сжатую в gzip страницу, в пхп какая функция используеться для распаковки gzip ?
     
  4. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    gzuncompress
    (PHP 4 >= 4.0.1, PHP 5)

    gzuncompress -- Распаковывает строку
    Описание
    string gzuncompress ( string data [, int length] )


    Распаковывает строку.

    Список параметров


    data
    Данные, сжатые функцией gzcompress().

    length
    Максимальная длина данных для распаковки.


    Возвращаемые значения
    Распакованные данные или FALSE в случае ошибки.

    Функция сообщит об ошибке также в случае, когда распакованные данные длиннее в более, чем 32768 или length раз сжатых.
     
  5. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Если в $page ответ сервера, то так
    PHP:
    $page gzBody(substr($page,strpos($page,"\r\n\r\n")+4))


     function 
    gzBody($gzData){
        if(
    substr($gzData,0,3)=="\x1f\x8b\x08"){
            
    $i=10;
            
    $flg=ord(substr($gzData,3,1));
            if(
    $flg>0){
                if(
    $flg&4){
                    list(
    $xlen)=unpack('v',substr($gzData,$i,2));
                    
    $i=$i+2+$xlen;
                }
                if(
    $flg&8$i=strpos($gzData,"\0",$i)+1;
                if(
    $flg&16$i=strpos($gzData,"\0",$i)+1;
                if(
    $flg&2$i=$i+2;
            }
            return 
    gzinflate(substr($gzData,$i,-8));
        }
        else return 
    false;
      }
     
    _________________________
  6. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Почему я у себя на фтп не могу поменять префикс папки?

    Пишет: 550 CHMOD 777 banners: No such file or directory
     
  7. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Я пробовал несколькими фтп менеджерами!

    Пишит типа у вас нет доступа упровлять этими элементами! Что делать??
     
  8. kraken

    kraken Member

    Joined:
    2 Jan 2009
    Messages:
    74
    Likes Received:
    75
    Reputations:
    5
    geforce стучи суппорту они тебя заббанили наверное было что то похожее(((
     
  9. -m0rgan-

    -m0rgan- Elder - Старейшина

    Joined:
    29 Sep 2008
    Messages:
    514
    Likes Received:
    170
    Reputations:
    17
    РЕ адепты!
    Меня интересует такой вопрос:
    Как написать нормальный текстовый дедактор на пхп в часности редактор для добавления новостей на сайте.
    Добавление в бд меня не интересует, нужна нормальная обработка текста, то есть:
    например я вставляю текст с множеством абзацов и т п, мне нужно, чтобы текст сохранялся в исходном виде, а не гнал место абзаца новое предложение...
    Зарание спасибо!
     
  10. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    Доброго времени суток. Возникла ошибка:

    HTML:
    Warning: array_merge() [function.array-merge]: Argument #2 is not an array in /home/arhangel/public_html/classes/Fighter.php on line 150
    Invalid query: Duplicate entry '' for key 2 Query=> UPDATE `voc_users` SET voc_users.image = '',voc_users.canon_nick = '',voc_users.nick = '',voc_users.passwd = 'a6229ee0098513ecb3f0727c799111e1',voc_users.email = '',voc_users.question = '',voc_users.answer = '',voc_users.gender = '',voc_users.currentHealth = '',voc_users.realName = '',voc_users.ICQ = '',voc_users.AOL = '',voc_users.MSN = '',voc_users.referred_by = '',voc_users.Register_IP = '',voc_users.lastSecuritySave = '',voc_users.passwd = 'a6229ee0098513ecb3f0727c799111e1' WHERE voc_users.id='6761'

    а вот строчка на которую указывает ошибка :
    PHP:
           $this->data array_merge($this->dataunserialize($this->data['user_info']));

    а вот функция в которой содержиться строчка с ошибкой:

    PHP:
     function get($objectId) {
            if (
    parent::get($objectId)) {
                
    $this->data array_merge($this->dataunserialize($this->data['user_info']));
                unset(
    $this->data['user_info']);
                return 
    true;
            } else {
                return 
    false;
            }
        }
    Подскажи в чём дело и как исправить??? Буду благодарен.
     
  11. Dimaus

    Dimaus Banned

    Joined:
    7 Nov 2008
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Помогите пожалуйста:
    такой скрипт
    показывает ошибку, замысел таков, что происходит запись в файл из формы текста из текстариа
     
    #8231 Dimaus, 7 Feb 2009
    Last edited: 7 Feb 2009
  12. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Есть задачка: Есть много даных переданых постом. Мне надо создать функцию чека их на емти (т.е. на пустоту). Если хотя бы один из них пустой - ехо "пустота";... Ну вы поняли, только не надо пихать все даные function chk ($param1, $param2), т.к. у меня их ооочень много.
     
  13. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Dimaus
    PHP:
    <?php
    echo "<html>
    <head>
    </head>
    <body bgcolor=\"#FFFFFF\">
    <strong>Добавить сообщение:</strong><br>
    <form method=\"post\" action=\"\">
    Сообщение:<br><textarea name=\"mess\" rows=\"5\" cols=\"43\">
    </textarea>
    <br>
    <input type=\"submit\" value=\"Отправить\"></form>
    </body>
    </html>"
    ;
    if(isset(
    $_POST['mess'])){
    $f=fopen('data.txt','a+');
    fwrite($f,"$_POST[mess]\r\n");
    fclose($f);
    }
    ?>
     
  14. Dimaus

    Dimaus Banned

    Joined:
    7 Nov 2008
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Спасибо, я в своём уже разобрался))))
     
  15. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Вопрос:

    Есть запрос выбрки из базы! Он идет в конце так where id='$id'! А как поменять этот конец так чтоб был самый последний id или самый большой так как там первичный ключ и id формируется по порятку 0,1,2,3,4!???

    И как подщитать сколько записей в таблице?
     
  16. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    mailbrush
    PHP:
    function mass_empty($arr)
    {
        if (
    is_array($arr))
        {
            foreach (
    $arr as $one) if (empty($one)) return true;
        }
        else
        {
            if (empty(
    $arr)) return true;
        }
        return 
    false;    
    }

    if (
    mass_empty($_POST)) die('Вы что-то не ввели');
    geforce
    PHP:
    SELECT COUNT(*) FROM base;

    SELECT `idFROM base ORDER BY `idDESC
     
    _________________________
    #8236 Gifts, 7 Feb 2009
    Last edited: 7 Feb 2009
    1 person likes this.
  17. kraken

    kraken Member

    Joined:
    2 Jan 2009
    Messages:
    74
    Likes Received:
    75
    Reputations:
    5
    PHP:
    $result dbquery("ТУТ запрос");
    $n=mysql_num_rows($result);
    В $n будет храниться количество строк.
     
  18. [х26]VОLАND

    [х26]VОLАND Elder - Старейшина

    Joined:
    7 Jun 2006
    Messages:
    513
    Likes Received:
    756
    Reputations:
    218
    А если в POST объявлен служебный элемент (submit формы и тп.)? он ведь будет всегда пустым....

    PHP:
    /**
     * Find whether a string is really empty
     * (Substitution of empty())
     * 
     * If the first argument is an array, its elements will be checked in the aggregate 
     * depending on the logical method (AND - conjunction, OR - disjunction)
     * AND - Returns TRUE if all elements are empty
     * OR - Returns TRUE if at least one element is empty
     * 
     * This function also may be used for checking arrays 
     * concerning absence of elements
     * 
     * @param    string|array        string(s) to check
     * @param    string            checking method (LOGICAL_AND|LOGICAL_OR)
     * @return    bool
     */
    function is_empty($data$method 'LOGICAL_OR')
    {
        if (
    is_array($data)) {
            switch (
    $method) {
                case 
    'LOGICAL_AND' 
                {
                    return 
    is_empty(join(''$data));
                }
                
                case 
    'LOGICAL_OR' :  {
                    foreach (
    $data as $str) {
                        
    $result[] = ( (string) $str === '' ) ? 't' 'f';
                    }
                    return (
    in_array('t'$result)) ? true false;
                }
            }
        } else {
            return ( (string) 
    $data === '' ) ? true false;
        }
    }

    /*--------------------------------------------------------*/
    $is_empty is_empty(array(
                            
    $_POST['var1'],
                            
    $_POST['var2'],
                            
    $_POST['varN']),
                        
    'LOGICAL_OR');
    echo 
    $is_empty 'some field is empty' 'all ok';

    В отличие от empty() моя функция по-человечески реагирует на '0', то есть не считает строку с нулём пустой.
     
    #8238 [х26]VОLАND, 8 Feb 2009
    Last edited: 8 Feb 2009
    1 person likes this.
  19. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    [x26]VOLAND, спасибо. А теперь надо сделать массовый чек на иссет...
     
  20. Byrger

    Byrger Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Возвожно ли расшифровать PHP фаил такого типа?


    PHP:
    <?php /*This encoded file was generated using PHPCoder (http://phpcoder.sourceforge.net/) and eAccelerator (http://eaccelerator.sourceforge.net/)*/ 
    if (!is_callable("eaccelerator_load") && !@dl("eAccelerator.so")) {
     die(
    "This PHP script has been encoded using the excellent eAccelerator Optimizer, to run it you must install <a href=\"http://eaccelerator.sourceforge.net/\">eAccelerator or the eLoader</a>"); }
    eaccelerator_load('eJyNVo9v2kYUvjPeSppqEtPahpFEDpNsElMlWelCRzBzKG3Y0oRgwrqqUkTBFBYKrW2SZn/97t0Pc7ZJVUu278e7d+/73ud7btj1euOk0bY7Z22kIoSwAk9/PEBKijfIpZAbuoP3YELuFXJf9/q9YDybojQd+o7cw97Ed6EROqFPWIrQPcQuZ4V6xCmFeaR9FPaxscI2UZz73BC8BaOxjy/uU1NF2OrUAiMVW6s8MoSg1ffcXuBeshCkDotkIiL5ge/8PXnOfdcbD3CNj8nTgGjsX86v8R9sCHbH6RCxk6Er5EAzbKkItEItVO7r89z1bltikbR5OsPQ/UJeL0heOg1t6M0+ar7r+4RpX7sZuZ6rMeuqobIFWCFLIGDDhm5VwdCpZjgMjNPOI45kleXlcuIGgev5WH9EDciMRRq99/2BO/wwGv97Nfk4nX367PnB/Prmy+1/9lH9RePlq+Pmn3+dvD49a523nc5F9+83/7zd2//1aenZbwfl585jvgkXDtYfC+eU7DU+DTFNsb7GJ2mwrTVOBpv8idqqZE4j7yfQW1OQ1o26yHMXO/D+0c6S5yH1RmGLfpXn6zDLG0JRXm86aGXvIOY8y/2oSlfYCFybWaG6nZ9J66GTS6Q/F0t/Lpn+HA9FeE3n2IoycEVyX+9o9bOL006BTG5rtqNBeO6XsR8s1YRPBaEcUC9EAVwQOUkQOSEIlHZykvI9159PAqznBCxnPQFoPQZoXQb00g36o3frofuI2yMYr7IIhIlCIhB7AH5vdoN1voWqnG9w7nFqhaeF4s5scFVQbPvFDerpgaNxLBDt6Mq9xboWEd5WVHhbEeFtRYW3JYQHzp5Ar6agV92oizx3sQPv53Y+Jrx8THj5ZcLL3yW8/EJ4wiYEtpkPlQdHxGFL5xaLE8qEIRW9cYxEDo1YDo2kKA0epnwmGWzRIXk1T51Gu6ONp8Fsob8CMywSFEWIskgCEbVhW+vaJxcNRyuANg2hTciLUTTC7cQ3UOYWX7MNyVhmrFLj/W3bkHRvCGHi9E6BvIeOmeDGjHFjJrkxl3BjskV738pNlA8zjtGM82GGEO+0XfCxxBjQGNu2KbFhLtiwd6lSU1CZecj0m9iVPk16NO0ylbFvg61SmLZ3ubaBBfqxkqNgNrsau9YeEgUZ3E9mH2bzgJjyBivEq4hdzlOuY7kQ8zGYLiXyVYrlq5TMV2lJvkps0bfWV+WgJJhkx2lJIrK0INJ6FoKFP5L+yO1fiZ+PsM0gFwTkMocsSK6VQ7yVCrTSDMynnue77yrhBosVRzBYpcNVMQ9neyVmp1dYksjBbiWItGJEWgki0xYz+B2FhYmrWpO+9KIGIvxqabKiXFoSl5YUviVpQZQmGGOlqZZAUIshqMkIhrQ01UL30dIE47w0CRMoTWKPsDTxLVTlrY14ZVqo6sSmk4pp0+Wb/TqLP/w9tOp0onUs5QXcnh8j4Q0+BInMDJ2BMgQhmcd0vd5vMpwUujd3nSaK/x836RbkdzCNFj/oepOxp+DW61gIFgyodPBBNATiONqDK8XF23LiWWg7IgvyzpYTuufHhJA4XFaXrhDd/wHK1pPz'); ?>
     
Thread Status:
Not open for further replies.