пхп сохраняет в файл - добавляет слеши. как отключить?

Discussion in 'PHP' started by Дикс, 12 Aug 2006.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    написал простую прогу - редактор файлов, чтобы не лазить на фтп

    PHP:
    <meta http-equiv='Content-type' Content='text/html; charset=windows-1251' />
    <?php
    if(isset($_GET['pass']) && $_GET['pass'] == 'МОЙ_ПАРОЛЬ')
    {
    $file trim($_GET['file']);
    $op fopen($file"r");
    while(!
    feof($op))
    {
    $mass fread($op4096);
    }
    ?>
    <b><?=$file?></b>
    <form action='file_editor.php?file=<?=$file?>&pass=everyday' method='POST'>
    <input type='hidden' name='file' value='<?=$file?>' />
    <textarea cols='90' rows='37' name='data'><?=$mass?></textarea>
    <br />
    <input type='submit' style='width: 740px; font-weight: bold' value='сохранить' />
    </form>
    <?php 
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
    $to_write fopen($file"w");
    $writing fwrite($to_write$_POST['data']);
    echo (
    'сохранено...');
    }
    }else
    {
    echo (
    'ну ты же не думаешь, что я вот так вот просто дам любому редактировать файлы? ;)');
    }
    ?>
    я не прошу её критиковать (хотя любые отзывы о коде мне были бы полезны)
    меня интересует почему сохранённый из неё файл весь пробит слешами (перед каждой кавычкой - слеш)
    а точнее как эту особенность отключить чтобы сохранять работоспособные скрипты.
     
    1 person likes this.
  2. Ch3ck

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

    Joined:
    9 Jun 2006
    Messages:
    1,362
    Likes Received:
    1,157
    Reputations:
    430
    Тык... magic_quotes_gpc работаит... наверно надо выключить...
     
  3. SMiX

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

    Joined:
    25 Jul 2005
    Messages:
    227
    Likes Received:
    55
    Reputations:
    29
    Если magic_quotes_gpc отключить возможности нет, используй следующий код:
    PHP:
    @set_magic_quotes_runtime(0);
    $self=$_SERVER['PHP_SELF'];
    if(!
    ini_get("register_globals")){
    @
    import_request_variables("GPC","");
    }
    if (
    get_magic_quotes_gpc()) strips($GLOBALS);
    function 
    strips(&$el) {
      if (
    is_array($el)) {
        foreach(
    $el as $k=>$v) {
          if(
    $k!='GLOBALS') {
            
    strips($el[$k]);
          }
        }
      } else {
          if(
    is_string($el))
          
    $el stripslashes($el);
      }
    }
    //Сперто из r57shell и модифицировано мной
    Я во все конфиги моих скриптов это сую.

    *Пасс лучше передавать постом.
     
  4. max_pain89

    max_pain89 Eat `em UP!

    Joined:
    11 Dec 2004
    Messages:
    451
    Likes Received:
    140
    Reputations:
    146
    $writing = fwrite($to_write, stripslashes($_POST['data']));
     
    1 person likes this.
  5. SMiX

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

    Joined:
    25 Jul 2005
    Messages:
    227
    Likes Received:
    55
    Reputations:
    29
    Ну можно и так, но лучше все глобальные переменные сразу избавить от слешей..
     
    1 person likes this.