PDA

Просмотр полной версии : почему не работает??


vorona
19.10.2009, 19:28
foreach($_POST as $key => $value)
{
$value=htmlspecialchars($value);

echo $value.'<br/>';



}

Все пост-запросы выводятся, но, почему-то не обрабатываются функцией htmlspecialchars. ПОЧЕМУ?

Т.е. echo $value.'<br/>'; работает для всех ПОСТ-запросов, а $value=htmlspecialchars($value); НЕТ!

m0Hze
19.10.2009, 19:32
А что именно не обрабатываеться? Покажите пример данных скармливаемых скрипту.

vorona
19.10.2009, 19:34
#2
ну например есть несколько ПОСТ-форм.
в них пишется текст
на сл. странице
весь ПОСТ-массив проверяется циклом foreach
и все формы выводятся

vorona
19.10.2009, 19:39
Вообщем так:
из скрипта А в скрипт Б передаётся куча ПОСТ-запросов.

Код скрипта Б:

foreach($_POST as $key => $value)
{
$value=htmlspecialchars($value);

echo $value.'<br/>';

}


Из цикла все ПОСТ-запросы выводятся (т.е. echo $value.'<br/>'; работает), а вот ф-ция $value=htmlspecialchars($value); не работает. Почему?

POS_troi
19.10.2009, 19:49
у тя проблема не в этом скрипте, тут все отрабатывает четко - даже проверил

http://img199.imageshack.us/img199/3048/35663166.jpg

m0Hze
19.10.2009, 19:49
Экранируеться только:

* '&' (ampersand) becomes '&amp;'
* '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.
* ''' (single quote) becomes ''' only when ENT_QUOTES is set.
* '<' (less than) becomes '&lt;'
* '>' (greater than) becomes '&gt;'


-это я к тому,есть ли такие символы у автора в тексте передаваемого к обработке.

vorona
19.10.2009, 19:56
Экранируеться только:

* '&' (ampersand) becomes '&amp;'
* '"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.
* ''' (single quote) becomes ''' only when ENT_QUOTES is set.
* '<' (less than) becomes '&lt;'
* '>' (greater than) becomes '&gt;'


-это я к тому,есть ли такие символы у автора в тексте передаваемого к обработке.


ну например если передать <h1>HI</h1>
, то выведется большими буквами HI, т.е. чёрточки не уберутся

vorona
19.10.2009, 19:57
у тя проблема не в этом скрипте, тут все отрабатывает четко - даже проверил

http://img199.imageshack.us/img199/3048/35663166.jpg
а в чём тогда?

m0Hze
19.10.2009, 20:02
а в чём тогда?
Красные стрелочке кагбе говорят: Капитан очевидность1

vorona
19.10.2009, 20:12
чёт $value в цикле не обрабатывается ни htmlspecialchars, ни str_reolace

POS_troi
19.10.2009, 20:15
ну например если передать <h1>HI</h1>
, то выведется большими буквами HI, т.е. чёрточки не уберутся

Опять ошибаешся

http://img41.imageshack.us/img41/6875/35467520.jpg

а насчет что не так - а хз, я не телепат

vorona
19.10.2009, 20:19
Опять ошибаешся

http://img41.imageshack.us/img41/6875/35467520.jpg

а насчет что не так - а хз, я не телепат

а может быть из-за того, что этот цикл подключается на страницу include_once?
если да, как его правильно подключить?

vorona
19.10.2009, 20:21
т.е. из скрипта А в скрипт Б передаются пост-запросы.
в скрипте Б иклудом подключается цикл, который проверяет все пост-запросы.
потом в скрипте Б выводятся пост-запросы.
что здесь не так?

m0Hze
19.10.2009, 20:22
а может быть из-за того, что этот цикл подключается на страницу include_once?
если да, как его правильно подключить?
А может быть,все изза того,что у нас нет полного кода? Как ты думаеш?

vorona
19.10.2009, 20:23
А может быть,все изза того,что у нас нет полного кода? Как ты думаеш?
сча дам!

POS_troi
19.10.2009, 20:23
а хз. выкидывай скрипт сюды и посмотрим а так гадать после тяжкого раб. дня нет никакого желания.

ну вот как всегда опаздал =)

vorona
19.10.2009, 20:26
1.php:

<?
include_once("2.php");

if (!isset($_GET['act']) || $_GET['act']=="")
{
echo'<br><hr><form action="1.php?act=add" method="post">';
echo'<b>Сообщение:</b><br>';
echo '<textarea cols="20" rows="3" name="msg"></textarea><br>';

echo'<input type="submit" value="ADD" /></form>';
}

if ($_GET['act']=="add")
{
echo $_POST['msg'];
}
?>


2.php:


foreach($_POST as $key => $value)
{
$value=htmlspecialchars($value);

}

vorona
19.10.2009, 20:35
что не так?

L I G A
19.10.2009, 20:51
2.php:


foreach($_POST as $key => $value)
{
$value=htmlspecialchars($value);

}
ууу,шо за бляц**тво ,зачем переменной передавать значение глобального массива пост в htmlspecialchars(); не лучше будег его на выводе использовать?
<?php
$array=array('a','b','c','>');
foreach($array as $key => $value)
echo htmlspecialchars($value);
?>

m0Hze
19.10.2009, 20:56
уууух, ебал)

$_POST = array_map("htmlspecialchars",$_POST);

oO ниправдале

vorona
19.10.2009, 21:07
2.php:


foreach($_POST as $key => $value)
{
$value=htmlspecialchars($value);

}
ууу,шо за бляц**тво ,зачем переменной передавать значение глобального массива пост в htmlspecialchars(); не лучше будег его на выводе использовать?
<?php
$array=array('a','b','c','>');
foreach($array as $key => $value)
echo htmlspecialchars($value);
?>
дело в том, что это для всех пост-запросов, т.е. я не знаю имена всех переменных.
В примере имя известно, а на самом деле мне нужно для всех пост-запросов.

vorona
19.10.2009, 21:09
уууух, ебал)

$_POST = array_map("htmlspecialchars",$_POST);

oO ниправдале
а как вырезать определённые символы?

m0Hze
19.10.2009, 21:17
а как вырезать определённые символы?
strtr,str_replace,preg_replace,preg_irelplace,ereg _replace.

vorona
19.10.2009, 21:21
strtr,str_replace,preg_replace,preg_irelplace,ereg _replace.
ну это я знаю)
пример в array_map можно?

m0Hze
19.10.2009, 21:24
ну это я знаю)
пример в array_map можно?
function replace_to($text){
str_replace();
}
array_map("replace",$array);
Думай сюда.

vorona
19.10.2009, 21:30
function replace_to($text){
str_replace();
}
array_map("replace",$array);
Думай сюда.
СПС. Выручили!

m0Hze
19.10.2009, 21:35
СПС. Выручили!
Та я в себе не сомневался :o