Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Помогите найти просчёт в скрипте


Автор: immax 2.7.2005, 22:46
Был нужен скрипт для редактирования. Написал. Вот что получилось:
Код

<?
print $filepath."<br>";
if(empty($filepath)): print "!!!Self-loaded!!!";
elseif(file_exists($filepath)): print "File  for writing is ready.";
else: $create = fopen($filepath, "a");
print "File  for writing was created.";
endif;
$preform ='<form action=admin.php method=post>
<input type=hidden name=filled value=yes>
<input type=hidden name=trans value=';
$cform='><textarea name=msg rows=28 cols=120>';
$botform='</textarea>
<br><input type=submit value=save!>
</form>';
if ($filled != "yes") :
print $preform.$filepath.$cform;
$ofile = file($filepath);
while (list($ln_num, $ln)=each($ofile)):
print $ln;
endwhile;
print $botform;
else :
$fd = fopen($trans, "w+");
fwrite($fd, $msg) or die("Error!");
fclose($fd);
endif;
?>


$filepath присылается input type=hidden из любой страницы на сайте... Всё работает... Только эта кака
"экранирует" знаки при сохранении файла с кодом пхп...
Вот результат двукратного действия этой каки:
Код

 <?
$title=\\\'Хе-хе\\\';
$path =\\\'Хе-хе\\\';
$keywords=\\\'Хе-хе\\\';
$description=\\\'Хе-хе\\\';
$main=\\\'Хе-хе\\\';
?>

Как от этого избавиться??? Вздумалось мне так:
Код

str_replace("\", "", $par);

Ага... Счас smile
Подскажите, где я просчитался, плз...

Автор: Mal Hack 3.7.2005, 11:28
Есть в PHP.ini такая штука, как magic_quotes_runtime и magic_quotes_gpc. Наверняка у тебя в положении On.
Надо запретить через .htaccess:
Код
php_value magic_quotes_runtime 0
php_value magic_quotes_gpc 0


Автор: immax 3.7.2005, 12:34
Спасибо большое, Mal Hack... Вот ведь как... Из-за настроек пхп не работало...
Но у меня ранее стоял суперский скрипт Invision Power File Manager и с этими настройками там всё сохранялось на ура... Хотя .htaccess подобный там не наблюдался... Может можно просто
Код

magic_quotes_runtime 0
magic_quotes_gpc 0

Можно как-нибудь в тело скрипта вписать???
И ещё один просьба:
Дайте, плз, если знаете и не лень, ссылку на лучшую по вашему мнению статью по настройке пхп...

Автор: Mal Hack 3.7.2005, 12:38
Цитата(immax @ 3.7.2005, 13:34)
Можно как-нибудь в тело скрипта вписать???

Да, через http://php.net/ini_set так кстати у IFM сделано.
но лично я больше люблю использовать .htaccess.

Цитата(immax @ 3.7.2005, 13:34)
Дайте, плз, если знаете и не лень, ссылку на лучшую по вашему мнению статью по настройке пхп...

Я бы посоветовал более детально изучить основные директивы конфигурации в оф. мане на http://php.net и уже смотреть что тебе нужно...

Автор: immax 3.7.2005, 12:43
Спасибо за совет... Так и поступлю...

Автор: immax 3.7.2005, 13:42
Я правильно понял про ini_set?? Вот у меня как получилось в начале скрипта:
Код

ini_set( 'magic_quotes_gpc' , '0' );
ini_set( 'magic_quotes_runtime' , '0' );

Не работаить... А чаво???

Автор: Mal Hack 3.7.2005, 13:50
Цитата(immax @ 3.7.2005, 14:42)
ini_set( 'magic_quotes_gpc' , '0' );

Не может ставится через ini_set.

Автор: immax 3.7.2005, 14:41
А как-нить по-другому можно... Без .htaccess???

Автор: Mal Hack 3.7.2005, 15:19
immax, magic_quotes_gpc устанавливаются либо в php.ini, либо в httpd.conf, либо в .htaccess.
Это конкретно данная директива.

Автор: immax 3.7.2005, 17:30
Спасибо... Значит .htaccess...

Автор: immax 3.7.2005, 20:10
Приведи пример такого полного .htaccess...
Нешта у меня он ваще доступ к файлам перекрывает smile

Автор: Mal Hack 3.7.2005, 20:39
php_value magic_quotes_gpc 0
или
php_flag magic_quotes_gpc 0

PS: Мог перепутать 1 с 0.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)