Автоматическая замена " на ' при вводе в фору, как?

12 3
S
На сайте с 13.11.2012
Offline
72
1431

Постоянно сталкиваюсь с необходимостью вручную изменять кавычки " на ' при заполнении форм, к примеру, ставлю метрику, если не изменить кавычки то на сайте все слетает + иногда сам код в результате множится.

Есть доступ к настройкам сервера.

Правил на сервере параметр magic_quotes_gpc "магические кавычки" из Off в On, проблема не решилась, добавляется \" но при дальнейших правках, код множится и портится, получается что-то подобное \\\\\\\\"

Можно как-то решить эту проблему, чтобы при добавлении в форму все менялось или изменялось в момент отправки и выводилось корректно в код?

Посоветуйте...

Сайт работает без mysql данные сохраняются в файл

Обработчик

<?php
session_start();

if (!(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] != '')) {
header ("Location: index.php");
}
include('encryption.php'); // pass encrypt - decrypt

if (!empty($_POST))
{
$store = $_POST;
$store['admin_password'] = encryptPaswd($store['admin_password'],getEncryptKey());

// Live Code
$fp = fopen('dbase.php','w');
// For demo only
fwrite($fp,base64_encode(serialize($store)));
try{
//enter code to catch
echo "Saved";
}catch(Exception $ex){
//Process the exception
echo "Error code" . $ex;
}

}

else

{
echo "Landed mistakenly ?";
}
?>

Данная проблема наблюдается в textarea

в input все четко работает но сохраняет в одно строку :(

[Удален]
#1

Smirnof, вам надо просто производить замену двойной кавычки на одинарную на лету?

S
На сайте с 13.11.2012
Offline
72
#2

Да, было бы здорово т.к. с одинарной все четко работает.

[Удален]
#3

Просто тогда обрабатывайте функцией, например, такой.

function formatStr($string){

$string = str_replace("\"", "'", $string );
return $string;
}
S
На сайте с 13.11.2012
Offline
72
#4

Не смог понять куда ее воткнуть :(

Много перепробовал но не получилось, il_rudov у вас нет примера кода с использованием данной функции?

[Удален]
#5

fwrite($fp,base64_encode(serialize($store)));

вот здесь вы записываете, вам надо $store обработать этой функцией

А ещё лучше сделайте так

fwrite($fp,formatStr($store));

А функция


function formatStr($string){
$string = str_replace("\"", "'", $string );

return base64_encode(serialize($string));
}
U
На сайте с 09.04.2015
Offline
28
#6

Вместо

$store = $_POST;

поставьте

$store=str_replace('"',"'".$_POST['admin_password']);

Это упрощенное решение заявленной проблемы. Не следует забывать, что все входящие данные являются по умолчанию враждебными.

P.S. А вообще, чем Вам $_POST не угодил? Не имеет смысла плодить массивы, они память занимают.

S
На сайте с 13.11.2012
Offline
72
#7

Чем мне post не угодил - не знаю, не разбираюсь.

В данный код вставлял оба варианта, видимо что-то не так вставляю, теряю все данные в админке.

<?php
session_start();

if (!(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] != '')) {
header ("Location: index.php");
}
include('encryption.php');

if (!empty($_POST))
{
$store = $_POST;
$store['admin_password'] = encryptPaswd($store['admin_password'],getEncryptKey());

// Live Code
$fp = fopen('dbase.php','w');
// For demo only
fwrite($fp,base64_encode(serialize($store)));
try{
//enter code to catch
echo "Saved";
}catch(Exception $ex){
//Process the exception
echo "Error code" . $ex;
}

}

else

{
echo "Landed mistakenly ?";
}
?>
S
На сайте с 13.11.2012
Offline
72
#8

Все перепробовал, не могу корректно изменить код.

D.iK.iJ
На сайте с 26.05.2013
Offline
239
#9

$store = $_POST;

попробуйте поменять на

$store=str_replace('"', '',$_POST);

Адаптивный дизайн в 2 строчки ( https://dikij.com/wm/adaptaciya-saytov.php ). + Принимаю заказы любой сложности ( https://searchengines.guru/ru/forum/926323 ). 💎 Еще я делаю классные кулоны с опалами ( https://mosaicopal.ru/ ).
S
На сайте с 13.11.2012
Offline
72
#10

DiKiJ, спасибо!

Сделал как вы сказали но кавычек вообще не было, сохранялось без кавычек.

Добавил ' между '', т.е. так

$store=str_replace('"', ''',$_POST);

стало сохранять так как и должно, правда стала появляться надпись

Processing data
Please wait while we process your data

попробую понять в чем дело, главное работает, спасибо.

Оставил ваш вариант, мой $store=str_replace('"', ''',$_POST);

как оказалось не работает.

Код баннеров без кавычек вообще - работает, в том числе и метрика. Странно конечно :)

12 3

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