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

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

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

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Нет =)
     
  2. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    вы чего, конечно можно

    PHP:
    <?php
    function somefunc($str)
    {
        return 
    'alert(\''.$str.'\')';
    }
    ?>
    <a href="#" onclick="<?=somefunc('Йа креведко');?>">Сиськи</a>
    :D :D
     
    2 people like this.
  3. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Хитрый :)
     
  4. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    А такой вариант подойдет? :)
    PHP:
    for ($j=1$j<100$j++)
    for (
    $i=189295200$i<220917600 $i=$i+86400)
    {
       
    $s=sprintf("%02d",$j);
       echo 
    date('dm',$i).$s;
       echo 
    '<br>';
      
    }
    Тут просто вывод, если надо в файл то вместо echo делаем запись в файл :).
    З.Ы.
    Можно и без вложеного цикла... но функции работы с датами имеют диапазон от 1970 по 2038 посему именно так.
    Лишние даты есть - это 29 февраля в не високосных годах ;)
     
    #2844 Red_Red1, 22 Apr 2008
    Last edited: 22 Apr 2008
  5. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    if(preg_match('#32\.60\.\d{1,3}\.\d{1,3}#',$remoteaddr)){
    ban;
    }

    Не проверял но вроде должно работать
     
    1 person likes this.
  6. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    если нада из БД брать делай так
    в бд например

    $fetch['ban'] = '32.60.*.*';
    делаем
    $fetch['ban'] = preg_quote($fetch['ban']);
    $fetch['ban'] = str_replace('*','\d{1,3}',$fetch['ban']);
    if(preg_match("#$fetch['ban'] #",$remote addr)){
    ban;
    }
     
  7. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Написал класс для работы с БД но проблема в то что он работает только в виндовс в локлке а на сервере не хочет

    вот сам класс

    PHP:
    <?php

    /**
     * @author @FATAL@
     * @copyright 2008
     */

    class DB
    {
        public function 
    __construct($host,$user,$db_pass,$db)
        {
             
    $this->connect mysqli_connect($host,$user,$db_pass);
             
    mysqli_select_db($this->connect,$db);
        }
         function 
    mysql_qw()
        {
            
    $this->args func_get_args();
            
    $qwery $this->mysql_make_qw();
            return 
    $result mysqli_query($this->connect,$qwery);
            
    mysqli_free_result($result);
        }
    private    function 
    mysql_make_qw()
        {
            
    $tml $this->args;
            
    $tml[0] = str_replace('%','%%',$tml[0]);
            
    $tml[0] = str_replace('?','%s',$tml[0]);
            foreach (
    $tml as $i => $v)
            {
                if (!
    $i)
                {
                    continue;
                }
                if (
    is_int($v))
                {
                    continue;
                }
                
    $tml[$i] = "'" mysqli_escape_string($this->connect,$v) . "'";
            }
            for (
    $i $c count($tml) - 1$i $c 20$i++)
            {
                
    $tml[$i 1] = "UNKNOWN_PLACEHOLDER_$i";
                return 
    call_user_func_array("sprintf",$tml);
            }
        }

        public function 
    __destruct()
        {
            
    mysqli_close($this->connect);
        }
    }
    ?>
    на сервере PHP 5 mysql 5

    на компе денвер 3

    на сервере пишет

    Code:
    Fatal error: Call to undefined function mysqli_connect() in /data/home/******/*****/includes/mysql.class.php on line 12
    Видему функция отключена?
     
    #2847 Doom123, 23 Apr 2008
    Last edited: 23 Apr 2008
  8. symbioin

    symbioin Member

    Joined:
    6 Aug 2007
    Messages:
    62
    Likes Received:
    23
    Reputations:
    -16
    mysqli таково нету :(

    есть mysql

    попробуй
     
  9. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
  10. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    symbioin Есть. Это новая библиотека в PHP 5
     
  11. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    На сервере нету mysqli, перепиши скрипт на mysql
     
  12. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Можно и вот так, например
    PHP:
    $ip $_SERVER['REMOTE_ADDR'];
    if (
    preg_match ('/^32\.60(\.([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][0-9]|25[0-5])){2}$/'$ip))
    {
      
    ban;
    }
     
  13. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    PHP:
    <?php
    if(strpos($_SERVER['REMOTE_ADDR'], '32.60.') !== falseban();
    ?>
    Или

    PHP:
    <?php
    if(substr($_SERVER['REMOTE_ADDR'], 05) == '32.60.'ban();
    ?>
     
    2 people like this.
  14. Хелпер

    Хелпер Elder - Старейшина

    Joined:
    21 Feb 2007
    Messages:
    120
    Likes Received:
    31
    Reputations:
    -1
    Вопрос тупой, но как определить юзерагента???
     
  15. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    $_server['http_user_agent']
     
  16. Хелпер

    Хелпер Elder - Старейшина

    Joined:
    21 Feb 2007
    Messages:
    120
    Likes Received:
    31
    Reputations:
    -1
    Вот написал скрипт вывода на экран юзер агента.
    PHP:
    <?PHP  
    $x
    $_server['http_user_agent'];
    echo 
    $x
    ?>
    А он мне пустой лист. В разных браузерах. :(
     
  17. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    $_SERVER['HTTP_USER_AGENT'] - большими буквами. Или через get_browser()
     
    #2857 krypt3r, 23 Apr 2008
    Last edited: 23 Apr 2008
  18. Хелпер

    Хелпер Elder - Старейшина

    Joined:
    21 Feb 2007
    Messages:
    120
    Likes Received:
    31
    Reputations:
    -1
    Пасибо.
    И еще вопрос.
    PHP:
    <?php
    $x
    $_SERVER['HTTP_USER_AGENT'];
    switch (
    $x)
    {
    case (
    'Opera/9.25 (Windows NT 5.1; U; ru)');
    echo 
    Опера;
    }
    Если версия оперы 9,25 то все гуд, но если опера 9,27 или другая, то не выполняется. Можно ли чтоб тока если есть слово Opera, уже выполнять действие?
     
    #2858 Хелпер, 23 Apr 2008
    Last edited: 23 Apr 2008
  19. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Вариантов куча
    PHP:
      if (strstr ($SERVER['HTTP_USER_AGENT'], "Opera") !== FALSE)
        echo 
    "Это опера";
    Можно другими функциями - ereg, preg_match, stristr...
     
  20. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    PHP:
    <?
    $x $_SERVER['HTTP_USER_AGENT'];
    $y 'Opera';
    $check strpos($x$y);
    if (
    $check === false)
    {
    echo 
    'Другой браузер<br>';
    }
    else 
    {
    echo 
    'Опера';
    }
    ?>
    вот тут пофиг какая версия=)

    и еще посмари переменную сервер много полезного увидишь)))

    PHP:
    <?
    echo 
    '<pre>';
    print_r ($_SERVER);
    echo 
    '</pre>';
    ?>
     
Thread Status:
Not open for further replies.