Помогите сделать скрипт кроссплатформенным

12
CR@ZY HE@LTH
На сайте с 08.02.2009
Offline
18
772

Здравствуйте. У меня на сайте работает следующий скрипт, который позволяет редактировать файл конфигурации, элементы дизайна и многое другое (для каждого объекта свой файл):


<body bgcolor=#797b86 text="black" link="black" alink="black" vlink="black">

<?php


function hdr($rst)
{
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?".$rst);
}
?>
<head>

</head>

<body>
<hr size="1" noshade="noshade" style="color:#797b86" />
<?php
if (empty($_POST['config_text']) && strlen(@$_POST['accept'])!==8 && $_SERVER['QUERY_STRING']!=="success" && $_SERVER['QUERY_STRING']!=="fault") { ?>
<form id="form_config_mysql" name="form_config_mysql" method="POST" action="">
<p>
<textarea name="config_text" cols="115" rows="30" wrap="physical" style="border:#999999; border-width:1px; border-style:solid; background:#F8F8F8"><?php echo join('', file("../top1.html")); ?></textarea>
</p>
<table width="96%" bgcolor="#797b86">
<tr>
<td><center><input name="accept" type="submit" id="accept" value="Перезаписать" /></center></td>
</tr>
</table>
</form>
<?php } else if (empty($_POST['config_text_pre']) && $_SERVER['QUERY_STRING']!=="success" && $_SERVER['QUERY_STRING']!=="fault") { ?>
<p>Вы уверены в своих действиях? <b>Файл не подлежит восстановлению!</b></p>
<form id="form_config_mysql_confirm" name="form_config_mysql_confirm" method="POST" action="">
<table width="18%" bgcolor="#F4FBFF">
<tr>
<td><input type="hidden" name="config_text_pre" value="<?php echo base64_encode($_POST['config_text']); ?>" />&nbsp;&nbsp;&nbsp;&nbsp;<input name="accept" type="submit" id="accept" value="&nbsp;&nbsp;&nbsp;Да&nbsp;&nbsp;&nbsp;" />&nbsp;
<input name="accept" type="submit" id="accept" value="&nbsp;&nbsp;&nbsp;Нет&nbsp;&nbsp;&nbsp;" /></td>
</tr>
</table>
</form>
<?php }
if (strlen(@$_POST['accept'])===8)
{

$fd = fopen("../top1.html", "w");
fwrite($fd, base64_decode($_POST['config_text_pre']));
fclose($fd);
if ($fd) hdr("success");
else hdr("fault");

}

if ($_SERVER['QUERY_STRING']==="success") echo "<p>Изменение шапки прошло успешно <br />"."\n";
if ($_SERVER['QUERY_STRING']==="fault") echo "<p> Ошибка. Изменение шапки не произошло</p>"."\n";
?>
<br />
</body></html>

При редктировании на Windows Сервере проблем нет,а вот если установить это чудо на Linux сервер и попробовать редактировать из под Windows,то появятся проблемы с редактированием и будет очень много символов "\" помогите решить проблему, чтобы можно было редактировать из под любой системы на любом сервере. От подобных кодов не откажусь, вообще буду рад всему!

[Удален]
#1

CR@ZY HE@LTH, не в оси тут дело, а в "php magic quotes"

погуглите по этой фразе

CR@ZY HE@LTH
На сайте с 08.02.2009
Offline
18
#2
bearman:
CR@ZY HE@LTH, не в оси тут дело, а в "php magic quotes"

погуглите по этой фразе

Огромное спасибо! Вопрос решился созданием .htaccess в директории со следующим кодом:


php_flag magic_quotes_gpc Off
[Удален]
#3

CR@ZY HE@LTH, это хорошо что вы сами погуглили, запомните надолго :)

я то знал ответ ;) ну и там еще когда пхп как cgi стоит, то в другое место надо писат подобные тсрочки)

Dreammaker
На сайте с 20.04.2006
Offline
569
#4
CR@ZY HE@LTH:
Вопрос решился созданием .htaccess в директории со следующим кодом:

http://phpfaq.ru/slashes

Более универсальный вариант описывается.

[Удален]
#5
Dreammaker:
http://phpfaq.ru/slashes

Более универсальный вариант описывается.

я бы поспорил :)

более универсальный - быть аккуратным, а не stripslashes расставлять везде как параноик, ведь можно не лечить проблему, а избежать ее

CR@ZY HE@LTH
На сайте с 08.02.2009
Offline
18
#6
Dreammaker:
http://phpfaq.ru/slashes

Более универсальный вариант описывается.

Ну наверно самый универсальный вариант это в php.ini прописать, а мне и .htaccess в директории хватает выше крыши :) Но все равно спасибо!

Dreammaker
На сайте с 20.04.2006
Offline
569
#7
CR@ZY HE@LTH:
Ну наверно самый универсальный вариант это в php.ini прописать, а мне и .htaccess в директории
bearman:
ведь можно не лечить проблему, а избежать ее

bearman, каким образом? :) Если я распространяю скрипт, то я не могу быть уверенным как на сайте настроен magic_quotes_gpc on или off. Мало того, .htaccess может на хостинге не работать по тем или иным причинам, а доступа к php.ini может и не быть.

[Удален]
#8

Dreammaker, может и не быть :) а можно пообщаться с саппортом всегда

а в чем проблема проверить включена ли эта директива в самом скрипте? если включена то грохнуть выполнение с ошибкой "выключи б****ие кавычки" :)

Dreammaker
На сайте с 20.04.2006
Offline
569
#9

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

По-моему, это правильный путь - проверить если есть кавычки, то удалить их, а если их нет, то не трогать.

[Удален]
#10

Dreammaker, хз, я приедрживаюсь мнения донастройки сервера ... возможно я не прав.

к тому же 99.99% хосингов поддерживают директивы в .htaccess / php.ini

ну и в хтаккасс можно с помощью условных директив сделать это приятно. пользователь что раньше и что позде ничего не узнает, а сервер мы спасем от работы по экранированию/очистке кавычек

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий