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

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

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

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    а файл так и называется text.html?? если да то на, запускаешь в корне, удалит все файлы text.html

    PHP:
    <?
    $size = array(); 
    $dir dirname(__FILE__); 

    function 
    get_files($dir "."){ 
     
    $files = array(); 
     if (
    $handle opendir($dir)) { 
     while (
    false !== ($item readdir($handle))) { 
     if (
    is_file("$dir/$item")) { 
     
    $files[] = "$dir/$item"
     } 
     elseif (
    is_dir("$dir/$item") && ($item != ".") && ($item != "..")){ 
     
    $files array_merge($filesget_files("$dir/$item")); 
     } 
     } 
     
    closedir($handle); 
     } 
     return 
    $files

    $array_all_files get_files($dir); 



    foreach( 
    $array_all_files as $file_name ) { 

    if( 
    basename($file_name) == "text.html"){
    unlink($file_name);}

     }
    ?>
     
    #21801 qaz, 7 Sep 2013
    Last edited: 7 Sep 2013
    2 people like this.
  2. VladZombie

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    А чтобы только очистить файл можешь сделать? не удаляя файл?
     
  3. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Замени unlink($file_name); на file_put_contents($file_name, "");
     
    1 person likes this.
  4. VladZombie

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    Спасибо большое,проблему решил.Со временем выставлю права на эти файлы.
     
  5. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Да прямо в скрипте добавь ниже где было unlink($file_name); строчку chmod(400);
     
  6. pechkin

    pechkin New Member

    Joined:
    8 Mar 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Доброго дня, есть проблема с отображением времени в скриптах
    Запрос
    PHP:
    echo ".db_get_value("SELECT `dt_startFROM user_param WHERE id=".$_SESSION[uid])."<br>"
    Отображает время на 3 часа меньше чем необходимо.
    Сервер centos время на сервере
    PHP:
    /$ date
    Fri Sep 13 13
    :29:36 MSK 2013
    Но сам скрипт упорно не отображает время по Москве... при сверке времени всегда -3 часа. Подскажите куда копать.
     
  7. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    pechkin, http://php.net/manual/ru/function.date-default-timezone-set.php
     
    _________________________
  8. pechkin

    pechkin New Member

    Joined:
    8 Mar 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Спасибо но мимо php.ini
    PHP:
    Defines the default timezone used by the date functions
    http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
    date.timezone Europe/Moscow
    уже прописана таймзона

    Вопрос остается открытым - где копать?
     
    #21808 pechkin, 13 Sep 2013
    Last edited: 13 Sep 2013
  9. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Ну так видимо в БД уже записано время неправильное, сделай ручной фикс, достань из бд timestamp и отними от него 3 часа, или прибавь.

    ЗЫ а время на сервере верное? /etc/timezone что указывает? Насколько помню в centos это линк на зону, в дэбианах это текстовик в котором зона прописана.


    Code:
    [18:50][root@yeblan][~]# php -r 'date_default_timezone_set("Europe/Moscow");echo date("h:i:s");' 2>/dev/null
    06:50:07
    [18:50][root@yeblan][~]# date
    Fri Sep 13 18:50:08 MSK 2013
    [18:50][root@yeblan][~]# cat /etc/timezone
    Europe/Moscow
    [18:50][root@yeblan][~]#
     
  10. pechkin

    pechkin New Member

    Joined:
    8 Mar 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Все раскопал, дело было в mysql криво настроенном

    PHP:
    system time zone     BST
    time zone     SYSTEM
    пришлось нагнуть хостера, ибо меняется это значение на его стороне, в общем теперь все ок!
    Всем спасибо за помощь.
    П.С. Зато узнал много нового за сегодня :)
     
  11. YandexGryaz

    YandexGryaz Banned

    Joined:
    19 Sep 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Вопрос таков , есть фейк сайт составляющийся из 2 файлов index.php , base.php .
    Так вот при вводе http://мойсайт.сом/base.php открывается база с логами , как запаролить базу чтобы вход был по паролю ?
     
  12. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    как устранить такую ошибку ?
    Warning: Cannot modify header information - headers already sent by:


    понял спасибо ! )
     
    #21812 GAiN, 15 Sep 2013
    Last edited: 15 Sep 2013
  13. FunOfGun

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

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    GAiN, у тя опять BOM в файле стоит, убери его
     
    1 person likes this.
  14. herfleisch

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

    Joined:
    7 Jan 2009
    Messages:
    579
    Likes Received:
    203
    Reputations:
    13
    [​IMG]
     
    1 person likes this.
  15. antras2007

    antras2007 New Member

    Joined:
    4 Jul 2013
    Messages:
    33
    Likes Received:
    0
    Reputations:
    0
    Подскажите пожалуйста. Вот код
    PHP:
    <?php
    $error 
    = array();
    if(!empty(
    $_POST))
    {
        
    $name "Имя";
        
    $email "E-mail";
        if(empty(
    $_POST['name'])) $error[] = "Текстовое поле $name не заполнено";
        if(empty(
    $_POST['email'])) $error[] = "Текстовое поле $email не заполнено";
        if(empty(
    $error))
        {
            echo 
    $_POST['name']."<br/>";
            echo 
    $_POST['email']."<br/>";
            echo 
    $_POST['about']."<br/>";
        }
    }
    if(!empty(
    $error))
    {
        foreach(
    $error as $err)
        {
            echo 
    "<span style=\"color:red\">$err</span><br/>";
        }
    }
    $name $_POST['name'];
    $email $_POST['email'];
    $about $_POST['about'];
    $mysqli = new mysqli('localhost''root'""'form');
    $query mysqli_query($mysqli"SET NAMES 'utf8'");
    $sql htmlspecialchars("insert into `book` (name, email, about) values('$name', '$email', '$about')");
    $mysqli->real_escape_string($sql);//фильтрация к базе данных//

    if(!$mysqli->query($sql))
        echo 
    $mysqli->error;

    это обработчик формы. При заполнении формы информация заносится в базу данных. Как сделать так что бы информация которая уже занесена в базу данных отображалавсь последовательно на той же странице что и форма под номерами 1, 2 и т.д.?
     
    #21815 antras2007, 17 Sep 2013
    Last edited by a moderator: 18 Sep 2013
  16. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    помогите пожалуйста составить условие, нужно что бы перенаправлялся только рефер с сайта mysitename.ru, если же на код ниже поступил другой рефер или рефер скрыт то перенаправляло на страницу bad_refer.html
    PHP:
    <?php 
    $ref
    =$_SERVER['HTTP_REFERER']; 
    $url='http://sitename.ru'
    header('Referer:'.$ref); 
    header('Location:'.$url); 
    ?>
     
  17. Timon132009

    Timon132009 Member

    Joined:
    7 Jun 2009
    Messages:
    137
    Likes Received:
    19
    Reputations:
    0
    Что то типа этого

    PHP:
    <?php 
    $ref
    =getenv("HTTP_REFERER");
    if (
    $ref=='http://mysitename.ru/'
    {
    //////что делаем
    } else {
    header('Location: http://mysitename.ru/bad_refer.html');
    }
    ?>
     
    1 person likes this.
  18. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75

    так тупо, так как рефером может быть любая страница тго сайта

    лучше так

    PHP:
    <?php 
    $ref
    =getenv("HTTP_REFERER");
    if (
    preg_match("/mysitename/",$ref)) 
    {
    //////что делаем
    } else {
    header('Location: http://mysitename.ru/bad_refer.html');
    }
    ?>
     
    1 person likes this.
  19. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Регулярки не лучший вариант
    http://php.net/manual/ru/function.parse-url.php
    PHP:
    $host parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
     
    1 person likes this.
  20. Arnowt

    Arnowt New Member

    Joined:
    11 Sep 2013
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Лучший(в смысле скоростной) вариант это strpos

    А parse_url более менее корректно работает с версии 5.4.7 которая мало у кого стоит.
    К тому же не факт что он регулярку не вызывает.

    Так что:
    if(preg_match("%^http:\/\/mysitename\/%",$ref))
    if(strpos($ref,'http://mysitename/')===0)
     
Thread Status:
Not open for further replies.