Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   почему не работает?? (https://forum.antichat.xyz/showthread.php?t=149546)

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

Экранируеться только:
PHP код:

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

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

vorona 19.10.2009 19:56

Цитата:

Сообщение от m0Hze
Экранируеться только:
PHP код:

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

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


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

vorona 19.10.2009 19:57

Цитата:

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

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

а в чём тогда?

m0Hze 19.10.2009 20:02

Цитата:

Сообщение от vorona
а в чём тогда?

Красные стрелочке кагбе говорят: Капитан очевидность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

Цитата:

Сообщение от POS_troi
Опять ошибаешся

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

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

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

vorona 19.10.2009 20:21

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

m0Hze 19.10.2009 20:22

Цитата:

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

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

vorona 19.10.2009 20:23

Цитата:

Сообщение от m0Hze
А может быть,все изза того,что у нас нет полного кода? Как ты думаеш?

сча дам!

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

PHP код:

2.php:


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



ууу,шо за бляц**тво ,зачем переменной передавать значение глобального массива пост в htmlspecialchars(); не лучше будег его на выводе использовать?
PHP код:

<?php
 $array
=array('a','b','c','>');
foreach(
$array as $key => $value)
echo 
htmlspecialchars($value);
?>


m0Hze 19.10.2009 20:56

уууух, ебал)
PHP код:

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

oO ниправдале

vorona 19.10.2009 21:07

Цитата:

Сообщение от L I G A
PHP код:

2.php:


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



ууу,шо за бляц**тво ,зачем переменной передавать значение глобального массива пост в htmlspecialchars(); не лучше будег его на выводе использовать?
PHP код:

<?php
 $array
=array('a','b','c','>');
foreach(
$array as $key => $value)
echo 
htmlspecialchars($value);
?>


дело в том, что это для всех пост-запросов, т.е. я не знаю имена всех переменных.
В примере имя известно, а на самом деле мне нужно для всех пост-запросов.

vorona 19.10.2009 21:09

Цитата:

Сообщение от m0Hze
уууух, ебал)
PHP код:

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

oO ниправдале

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

m0Hze 19.10.2009 21:17

Цитата:

Сообщение от vorona
а как вырезать определённые символы?

strtr,str_replace,preg_replace,preg_irelplace,ereg _replace.

vorona 19.10.2009 21:21

Цитата:

Сообщение от m0Hze
strtr,str_replace,preg_replace,preg_irelplace,ereg _replace.

ну это я знаю)
пример в array_map можно?

m0Hze 19.10.2009 21:24

Цитата:

Сообщение от vorona
ну это я знаю)
пример в array_map можно?

PHP код:

function replace_to($text){
str_replace();
}
array_map("replace",$array); 

Думай сюда.

vorona 19.10.2009 21:30

Цитата:

Сообщение от m0Hze
PHP код:

function replace_to($text){
str_replace();
}
array_map("replace",$array); 

Думай сюда.

СПС. Выручили!

m0Hze 19.10.2009 21:35

Цитата:

Сообщение от vorona
СПС. Выручили!

Та я в себе не сомневался :o


Время: 06:46