Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   пхп сохраняет в файл - добавляет слеши. как отключить? (https://forum.antichat.xyz/showthread.php?t=22551)

Дикс 12.08.2006 23:45

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

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 (
'ну ты же не думаешь, что я вот так вот просто дам любому редактировать файлы? ;)');
}
?>

я не прошу её критиковать (хотя любые отзывы о коде мне были бы полезны)
меня интересует почему сохранённый из неё файл весь пробит слешами (перед каждой кавычкой - слеш)
а точнее как эту особенность отключить чтобы сохранять работоспособные скрипты.

Ch3ck 13.08.2006 00:03

Тык... magic_quotes_gpc работаит... наверно надо выключить...

SMiX 13.08.2006 12:06

Если 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 и модифицировано мной
Я во все конфиги моих скриптов это сую.

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

max_pain89 13.08.2006 15:27

$writing = fwrite($to_write, stripslashes($_POST['data']));

SMiX 13.08.2006 15:59

Цитата:

Сообщение от max_pain89
$writing = fwrite($to_write, stripslashes($_POST['data']));

Ну можно и так, но лучше все глобальные переменные сразу избавить от слешей..


Время: 02:42