Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6475
Последний выпуск: 19.06.2015

формы. проблема с заменой символов при отправке

57K
29 марта 2012 года
grin09
7 / / 28.06.2010
Доброго времени суток. Я пишу тестовый редактор и столкнулся с проблемой при сохранении. Дело в том, что при отправке форма почему-то преобразует символы апостроф('), кавычки(") и обратный слеш(\) в \', "\, \\ соответственно.


 
Код:
<?
    if(isset($_POST['save'])){
        $fp = fopen("../" . $_GET['directory'] . $_GET['filename'], "w");
        $mytext = $_POST['filedata'];
        $test = fwrite($fp, $mytext);
        if ($test) echo 'Данные в файл успешно занесены.';
        else echo 'Ошибка при записи в файл.';
        fclose($fp);
    }
?>
 
Код:
<form action="index.php" method="POST">
    <textarea name="filedata">$_POST['filedata']</textarea>
    <button type="submit" name="save">Сохранить</button>
</form>
Если форма так и должна делать, то подскажите вариант сохранения изменяемого файла. Заранее спасибо
261
03 апреля 2012 года
MrXaK
721 / / 31.12.2002
Версия PHP старая,
magic_quotes_gpc установлено в on,
собственно либо менять php.ini если есть доступ к нему, либо обновить PHP до нормальной версии (в 5.4.0 магические кавычки отключены за ненадобностью), либо юзать stripslashes() (но при переезде на новый хост надо будет следить за этим)
57K
03 апреля 2012 года
grin09
7 / / 28.06.2010
Спасибо) я решил этот вопрос переходом с виндовса на убунту, попутно устанавливая все новое =)

вопрос закрыт
4
03 апреля 2012 года
mike
3.7K / / 01.10.2002
Цитата: grin09
Спасибо) я решил этот вопрос переходом с виндовса на убунту, попутно устанавливая все новое =)

вопрос закрыт



Радикально. Опишу традиционное решение этой проблемы:

Код:
$var=$_POST['var'];

if (function_exists('get_magic_quotes_gpc')) { // В будущих версиях PHP такой функции может не быть
    if (get_magic_quotes_gpc()) {
        $var=stripslashes($_POST['var']);
        }
    }

// при записи в базу данных
$sql="INSERT INTO table SET var='".mysql_real_escape_string($var)."';";

// при выводе
echo htmlspecialchars($var);

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог