формы. проблема с заменой символов при отправке
Код:
<?
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);
}
?>
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>
<textarea name="filedata">$_POST['filedata']</textarea>
<button type="submit" name="save">Сохранить</button>
</form>
magic_quotes_gpc установлено в on,
собственно либо менять php.ini если есть доступ к нему, либо обновить PHP до нормальной версии (в 5.4.0 магические кавычки отключены за ненадобностью), либо юзать stripslashes() (но при переезде на новый хост надо будет следить за этим)
вопрос закрыт
Цитата: 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);
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);