Странен проблем...

baceto90

Registered
Здравейте. Имам проблем който не мога да разбера от къде идва. На домашния сървър нямам проблем ,но на платения не знам как да го оправя.
При вземане на информация от дадено поле и вкарването му в база данни аз го прекарвам през тези функции:
Код:
$komentar = htmlspecialchars(addslashes($_POST['komentar']));
На домашния сървър при въвеждането на следния низ:
"някакъв текст"
в база данни се записва това :
"някакъв текст"
и като коментар си излиза точно както искам, но сега на платения при въвеждането на същия текст в база от дани се записва това:
\"някакъв текст\"
а в извеждането му като коментар изглежда така:
\"някакъв текст\"
Някой има ли идея, защо се получава това ?
 
baceto90 каза:
И на мен това ми мина през ума. Ще изчакам да видим другите какво ще кажат :)

ако наистина съвъра има защита(пиши им на съпорта) ,махни това htmlspecialchars() .. :)
 
xmmm каза:
baceto90 каза:
И на мен това ми мина през ума. Ще изчакам да видим другите какво ще кажат :)

ако наистина съвъра има защита(пиши им на съпорта) ,махни това htmlspecialchars() .. :)
Щом го е сложил явно му трябва... Аз го ползвам и нямам проблем. :)
 
MakeAWish каза:
Минавай го и през stripslashes при извеждането :)
Иначе, най-вероятно magic quotes-а е причината :)
Да при извеждането като го мина през stripslashes си става както трябва,но навсякаде където съм ползвал тези функции става това и трябва навсякаде да добавям striptslashes. Как да го изключа тоя Magic quotes. В моя код никъде не съм добавял такова нещо.
 
Пиши това в php.ini

; Magic quotes
;

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

Или в .htaccess

php_flag magic_quotes_gpc Off
 
Fakeheal каза:
Пиши това в php.ini

; Magic quotes
;

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

Или в .htaccess

php_flag magic_quotes_gpc Off
В php.ini като го добавя нищо не стана, а в
.htaccess дава SERVER ERROR
 
Код:
function clean($c){
	$cl = htmlspecialchars(mysql_real_escape_string(strip_tags($c)));
		return $cl;
}

Използвай тази функция, за сега нямам ядове с нея!
Примерно си запиши един файл: functions.php и я плесни вътре, после include във всички файлове, където ще я използваш ..

един пример как да извикаш функцията при GET заявки.
<?php
$blabla = clean($_GET['blabla'];
echo "$blabla";
?>

Или там за каквото ще я използваш :?:
 
nom3r1 каза:
Код:
function clean($c){
	$cl = htmlspecialchars(mysql_real_escape_string(strip_tags($c)));
		return $cl;
}

Използвай тази функция, за сега нямам ядове с нея!
Примерно си запиши един файл: functions.php и я плесни вътре, после include във всички файлове, където ще я използваш ..

един пример как да извикаш функцията при GET заявки.
<?php
$blabla = clean($_GET['blabla'];
echo "$blabla";
?>

Или там за каквото ще я използваш :?:
Абсолютно същия ефект... :(
 
baceto90 каза:
Абсолютно същия ефект... :(

На какъв хостинг си? Защо просто не пишеш на съпорта, както казаха по-горе? Ако съпорта им е добър ще получиш точния отговор. Успех!
 
nom3r1 каза:
baceto90 каза:
Абсолютно същия ефект... :(

На какъв хостинг си? Защо просто не пишеш на съпорта, както казаха по-горе? Ако съпорта им е добър ще получиш точния отговор. Успех!
ICN е хостинга. Писах им вече сега ще видим какво ще направят.
 
Проблемът е бил в magic_quotes . Както и да опитвах аз да ги изключа не ставаше. Проверих сега в php.ini файла и в .htcaccess няма нищо променено явно са го изключили по друг начин, но сега всичко е ОК. Благодаря на всички отзовали се . :)
 
Това е кода, който php.net дават за изключване на magic quotes по време на изпълнение на скиптовете ти (runtime):

Код:
<?php
if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}
?>
 

Back
Горе