Непонятное явление с $_POST

E-Not

Новичок
Всем здрасть.Ситуация следующая:

Вобщем скрипт с формой, по сабмиту отправляет данные другому скрипту (обработчику) методом POST. И вот тут начинается самое интересное. В одном из полей $_POST['text'] содержится текст (местами с тегами). Текст порядка 3-4 тыс символов. Так вот если сделать в скрипте print_r($_POST); то скрипт отписывает все содержимое правильно и в $_POST['text'] содержаться все 3 тыс символов. Если же сделать print $_POST['text']; то он мифическим образом сжимается до 100-120 символов. по-просту обрезает текст. В чём причина не могу понять. Ведь если при первом выводе print_r отображается весь текст, то значт что данные постом до скрипта дошли целостно, почему тогда при обращении непосредственно к данным, их содержимое внезапно сокращается?!?!

З.Ы. В сорцы html сомотрел, там действительно нехвататет текста и он нигде не спрятался по средствам глюка отображения.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Надеюсь, ты смотришь на документ в виде исходного кода?
 

E-Not

Новичок
2 Dovg так и проверял.

2 c0dex ога))

щас приложу лучше кусочки кода)))

Значит это кусочек с формой:

PHP:
<div class="textEdit">
            Текст:<br/>
            <textarea id="pageEdit_text" name="pageEdit_text"><?=$mysql->result['text'];?></textarea>
 <script language="JavaScript">
            $(document).ready(function() {
                $("input#cancelBut").click(function()
                {
                    $.fancybox.close();
                });
                
                $("input#okBut").click(function()
                {
                    page = '<?=$page;?>';
                    title = $("input#title").val();
                    content = tinyMCE.get('pageEdit_text').getContent();
                    alert(content);
                    $.ajax({
                            type	: "POST",
                            cache	: false,
                            url	: '/ajax/savePageContent.php',
                            data    : 'page='+page+'&title='+title+'&text='+content,
                            success: function(data) 
                            {
                                alert(data);
                                //$.fancybox.close();
                            }
                    });
                });
            });
            </script>
        </div>
        <div class="pageEdit_but">
            <input type="button" value="OK" id="okBut" /><input type="button" value="Отмена" id="cancelBut" />
        </div>

А это обработчик:

PHP:
class savePageContent {
    //put your code here
    function savePageContent()
    {
        GLOBAL $core,$mysql;
        
        if($core->isAdmUser())
        {
            ........

            print_r($_POST);
            echo strlen($_POST['text']);


            //$mysql->query = "UPDATE `pages` SET `title`='$title',`text`='$content' WHERE `name`='$page'";
            //$mysql->exec();
        }
    }
}
за грязь сорри, пытаюсь отловить косяк))Вобщем как видно из первого фрагмента, отправляется по средствам Ajax в jquery. Но там всё ок работает.
 

radioheaded

PHP нуб
Если же сделать print $_POST['text']; то он мифическим образом сжимается до 100-120 символов. по-просту обрезает текст.
Где ты видишь результат вывода? На странице браузера? Если хочешь получить вывод текста как есть, то преобразуй служебные символы (htmlspecialchars, например). Если нужно просто сохранить в базу, так сохраняй, зачем этот вывод?
 

E-Not

Новичок
Где ты видишь результат вывода? На странице браузера? Если хочешь получить вывод текста как есть, то преобразуй служебные символы (htmlspecialchars, например). Если нужно просто сохранить в базу, так сохраняй, зачем этот вывод?
В этом и проблема... Вообще оно в базу сохраняется, но неожидано для меня в укороченном виде.Оттуда и пошёл вывод на страницу.
 

Фанат

oncle terrible
Команда форума
чудес не бывает. если print и print_r расположены рядом, то они не могут выдавать разное содержимое для одной и той же переменной*
сколько полей с текстом в форме?

аякс лучше бы исключить из отладки. смотри ответ не аяксом, а файрбагом, прямо в ответе сервера

*хотя, конечно, надо бы учитывать всякие кунштюки с перезаписыванием функций, как это делает xdebug, например. но он, вроде, var_dump корёжит, а не print_r
в любом случае, в исходнике всё должно быть видно
 

radioheaded

PHP нуб
В этом и проблема... Вообще оно в базу сохраняется, но неожидано для меня в укороченном виде.Оттуда и пошёл вывод на страницу.
Ты можешь просто ответить на вопрос?) Еще раз: где ты видишь результаты вывода? Откуда знаешь, что в базу сохраняется в укороченном виде? При помощи чего смотришь содержимое базы?
 

radioheaded

PHP нуб
Покажи SHOW CREATE TABLE, приведи примеры (на входе '26gtr64trhduywerytr', на выходе '26gtr64trh', например), покажи, как преобразовывается текст перед вставкой в базу.
 

Фанат

oncle terrible
Команда форума
кстати да, про SHOW CREATE TABLE - это очень правильно.
учитывая, что "примерно 120 символов" - это как раз varchar в UTF-е...
 

E-Not

Новичок
Изменил тестируемый текст и изменилось соотношение длин на входе и выходе))

собствено вот:

PHP:
CREATE TABLE IF NOT EXISTS `pages` (
  `name` varchar(512) NOT NULL,
  `title` varchar(512) NOT NULL,
  `text` text NOT NULL,
  `discript` varchar(1024) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
На входе :

Длина - 2043

Первое полустишие аллитерирует поток сознания, первым образцом которого принято считать книгу А.Бертрана "Гаспар из тьмы". Мифопоэтическое пространство, если уловить хореический ритм или аллитерацию на "р", вызывает музыкальный строфоид, где автор является полновластным хозяином своих персонажей, а они - его марионетками. Олицетворение, соприкоснувшись в чем-то со своим главным антагонистом в постструктурной поэтике, упруго-пластично. Диахрония, несмотря на внешние воздействия, прекрасно дает урбанистический пастиш, однако дальнейшее развитие приемов декодирования мы находим в работах академика В.Виноградова. Абстракционизм начинает конструктивный реформаторский пафос, хотя в существование или актуальность этого он не верит, а моделирует собственную реальность. Стиль дает музыкальный мифопоэтический хронотоп, но известны случаи прочитывания содержания приведённого отрывка иначе.

Графомания, несмотря на внешние воздействия, параллельна. Комбинаторное приращение аллитерирует прозаический полифонический роман, заметим, каждое стихотворение объединено вокруг основного философского стержня. Стихотворение, соприкоснувшись в чем-то со своим главным антагонистом в постструктурной поэтике, просветляет механизм сочленений, причём сам Тредиаковский свои стихи мыслил как “стихотворное дополнение” к книге Тальмана. Лирика откровенна.

Мифопоэтический хронотоп иллюстрирует речевой акт, именно об этом говорил Б.В.Томашевский в своей работе 1925 года. Ритмический рисунок иллюстрирует литературный контрапункт, также необходимо сказать о сочетании метода апроприации художественных стилей прошлого с авангардистскими стратегиями. Поэт инстинктивно чувствовал преимущества реального устного исполнения тех стихов, в которых лирика отражает символ, что нельзя сказать о нередко манерных эпитетах. Композиционный анализ представляет собой ямб, что нельзя сказать о нередко манерных эпитетах. Акцент, как бы это ни казалось парадоксальным, иллюстрирует гекзаметр, так как в данном случае роль наблюдателя опосредована ролью рассказчика.
На выходе:

длина - 1280 симв

Первое полустишие аллитерирует поток сознания, первым образцом которого принято считать книгу А.Бертрана "Гаспар из тьмы". Мифопоэтическое пространство, если уловить хореический ритм или аллитерацию на "р", вызывает музыкальный строфоид, где автор является полновластным хозяином своих персонажей, а они - его марионетками. Олицетворение, соприкоснувшись в чем-то со своим главным антагонистом в постструктурной поэтике, упруго-пластично. Диахрония, несмотря на внешние воздействия, прекрасно дает урбанистический пастиш, однако дальнейшее развитие приемов декодирования мы находим в работах академика В.Виноградова. Абстракционизм начинает конструктивный реформаторский пафос, хотя в существование или актуальность этого он не верит, а моделирует собственную реальность. Стиль дает музыкальный мифопоэтический хронотоп, но известны случаи прочитывания содержания приведённого отрывка иначе.

Графомания, несмотря на внешние воздействия, параллельна. Комбинаторное приращение аллитерирует прозаический полифонический роман, заметим, каждое стихотворение объединено вокруг основного философского стержня. Стихотворение, соприкоснувшись в чем-то со своим главным антагонистом в постструктурной поэтике, просветляет механизм сочленений, причём сам Тредиаковский свои стихи мыслил как “стихотворное дополнение” к книге Тальмана. Лирика откровенна.

Мифопоэтический хронотоп иллюстрирует речевой акт, именно об этом говорил Б.В.Томашевский в своей работе 1925 года. Ритмический рисунок иллюстрирует литературный контрапункт, также необходимо сказать о сочетании метода апроприации художественных стилей прошлого с авангардистскими стратегиями. Поэт инстинктивно чувствовал преимущества реального устного исполнения тех стихов, в которых лирика отражает символ, что нельзя сказать о нередко манерных эпитетах. Композиционный анализ представляет собой ямб, что нельзя сказать о нередко манерных эпитетах. Акцент, как бы это ни казалось парадоксальным, иллюстрирует гекзаметр, так как в данном случае роль наблюдателя опосредована ролью рассказчика.
На коротком тексте "'26gtr64trhduywerytr" всё ок.Что на входе то и на выходе.
 

Фанат

oncle terrible
Команда форума
в приведенных примерах текстов я различий не вижу навскидку
 

E-Not

Новичок
о_О не то вставил))

Выход:

Первое полустишие аллитерирует поток сознания, первым образцом которого принято считать книгу А.Бертрана \"Гаспар из тьмы\". Мифопоэтическое пространство, если уловить хореический ритм или аллитерацию на \"р\", вызывает музыкальный строфоид, где автор является полновластным хозяином своих персонажей, а они - его марионетками. Олицетворение, соприкоснувшись в чем-то со своим главным антагонистом в постструктурной поэтике, упруго-пластично. Диахрония, несмотря на внешние воздействия, прекрасно дает урбанистический пастиш, однако дальнейшее развитие приемов декодирования мы находим в работах академика В.Виноградова. Абстракционизм начинает конструктивный реформаторский пафос, хотя в существование или актуальность этого он не верит, а моделирует собственную реальность. Стиль дает музыкальный мифопоэтический хронотоп, но известны случаи прочитывания содержания приведённого отрывка иначе.
Графомания, несмотря на внешние воздействия, параллельна. Комбинаторное приращение аллитерирует прозаический полифонический роман, заметим, каждое стихотворение объединено вокруг основного философского стержня. Стихотворение, соприкоснувшись в чем-то со своим главным антагонистом в постструктурной поэтике, просветляет механизм сочленений, причём сам Тредиаковский свои стихи мыслил как
 

radioheaded

PHP нуб
Ну, очевидно, что ваш текст обрезается при появлении первого utf-символа (попробуйте вставить просто “стихотворное дополнение”) . Меняйте кодировку таблицы, либо перекодируйте текст перед сохранением.
 

WMix

герр M:)ller
Партнер клуба
а русская буква это разве не доказательство utf8 или при перемешке 1251 с utf8 на глаз незаметно?
 
Сверху