За последние 24 часа нас посетили 42583 программиста и 1814 роботов. Сейчас ищут 877 программистов ...

Запись в файл расположеный вне c:\inetpub\wwwroot

Тема в разделе "PHP для новичков", создана пользователем Delphin911, 29 янв 2016.

  1. Delphin911

    Delphin911 Активный пользователь

    С нами с:
    18 дек 2015
    Сообщения:
    72
    Симпатии:
    0
    Народ, подскажите, возможно ли записать данные в файл расположеный вне директории c:\inetpub\wwwroot, а может даже в сети где-то.
    Пытался так:
    Код (PHP):
    1. $dir = opendir("C:\Temp\Task\\");
    2. $fIn = fopen($FilePath, 'w+');
    3. fwrite($fIn, $LogString);
    4. fclose($fIn);
    5. closedir($dir);
    и просто так
    Код (PHP):
    1. $today = $_GET['FDate'];
    2. $NewFileName = $_GET['NewFileName'];
    3. $FilePath = "C:\Temp\Task\\".$today."_".$NewFileName.".TXT";
    4. file_put_contents($FilePath, $LogString);
    Не пишет. Как только указываю путь c:\inetpub\wwwroot или в какую-нибудь вложенную папку. Все работает.
    Да, уточню. Права на запись у локальной группы Users, в которую входят Domain users есть. Собственно одну и ту же папку с одинаковыми правами кладу либо в c:\temp либо в c:\inetpub\wwwroot.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Может прав нету, ошибку пишет?
     
  3. Delphin911

    Delphin911 Активный пользователь

    С нами с:
    18 дек 2015
    Сообщения:
    72
    Симпатии:
    0
    Про права написал. Вот чаво пишет в логах PHP
    Код (PHP):
    1. [28-Jan-2016 17:25:20 Europe/Moscow] PHP Warning:  opendir(): open_basedir restriction in effect. File(C:\Temp\Task\) is not within the allowed path(s): (c:\inetpub\wwwroot) in C:\inetpub\wwwroot\WriteTask.php on line 18
    2. [28-Jan-2016 17:25:20 Europe/Moscow] PHP Warning:  opendir(C:\Temp\Task\): failed to open dir: Operation not permitted in C:\inetpub\wwwroot\WriteTask.php on line 18
    3. [28-Jan-2016 17:25:20 Europe/Moscow] PHP Warning:  opendir(): open_basedir restriction in effect. File(C:\Temp\Task\) is not within the allowed path(s): (c:\inetpub\wwwroot) in C:\inetpub\wwwroot\WriteTask.php on line 35
    4. [28-Jan-2016 17:25:20 Europe/Moscow] PHP Warning:  opendir(C:\Temp\Task\): failed to open dir: Operation not permitted in C:\inetpub\wwwroot\WriteTask.php on line 35
    5. [28-Jan-2016 17:25:20 Europe/Moscow] PHP Warning:  closedir() expects parameter 1 to be resource, boolean given in C:\inetpub\wwwroot\WriteTask.php on line 39
    Подскажите, может где прописать путь надо? Там что-то про allowed path(s) написано.

    Добавлено спустя 39 минут 16 секунд:
    Разобрался.
    В php.ini есть строчка
    Код (PHP):
    1. open_basedir = c:\inetpub\wwwroot
    Я ее закоментировал и стала писать куда укажу. Вот только пока не знаю, может ли от этого быть вред чему-нибудь. Скажем безопасности. Может можно туда 2 пути ввести? Скажем через точку с запятой? Подскажите кто знает!
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    считается, что лучше хоть какая-то защита, чем никакой )
    http://php.ru/manual/ini.core.html#ini.open-basedir

    Добавлено спустя 38 секунд:
     
  5. Delphin911

    Delphin911 Активный пользователь

    С нами с:
    18 дек 2015
    Сообщения:
    72
    Симпатии:
    0
    Спасибо!