[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Текстовая переменная рушит разметку html
Forever
Наконец написал свой первый сайт в жизни, перенес его с локального хоста в интернет, нахостинг Fozzy. Всплыла куча сюрпризов, сейчас разбираю самый неприятный. В моем скрипте есть переменная, которая содержит текст из БД.

Грубо говоря, она может выглядеть так:
Код:

$chapter = ' Carry - герои, которые «принесут» команде победу. Их потенциал зависит от собранных предметов. Как правило, в начале игры они очень слабы и поэтому должны быть защищены героями, способными гораздо успешнее драться в начале игры, но позднее становятся весьма могущественны. Для раскрытия всех своих возможностей они должны умело пользоваться способностями. Наличие большого количества таких персонажей в команде может усложнить игру, т.к. каждый игрок будет стараться получить опыт или лишнее золото, что, конечно, замедлит получение опыта и золота другим игрокам Carry - герои, которые «принесут» команде победу. Их потенциал зависит от собранных предметов... ';

далее эта переменная помещается в самый конец переменной $view (простите за страшные приемы программирования и разметки ):
Код:
$view = '
<input type = "hidden" id = "guide_id" value = "'
.$guide_id.'">

<div class = "main" >
<div id = "heroes" class = "hide">
</div>

<div id = "redactor_core" >

<div class = "sub_nav" >
<div class = "sn_sel" >
<a href = "/guide/edit/'
.$guide_id.'" >РЕДАКТИРОВАНИЕ</a>
</div>
<div class = "sn_not_sel" >
<a target = "_blank" href = "/guide/preview/'
.$guide_id.'" >ПРЕДПРОСМОТР</a>
</div>
</div>

<div class = "guide_actions">
<div class = "save_action">
<input type = "button" value = "Сохранить изменения", class = "save button">
</div>

<div class = "publish_action" >
<input type = "button" class = "'
.$p_button_class.' button" value = "'.$p_button_val.'"
data-guide_id = "'
.$guide_id.'">
</div>

<div class = "delete_action" >
<input type = "button" class = "'
.$d_button_class.' button" value = "'.$d_button_val.'"
data-guide_id = "'
.$guide_id.'">
</div>

</div>
<div class = "del_time" >
<span>'
.$del_time.'</span>
</div>

<div class="b_redactor ">
<div id = "guide_name">
Название гайда: <input type = "text" id = "guide_name_input" value = "'
.$guide_name.'">
</div>

<div id = "hero">
<div class = "hero_info">
<div>Герой: <a target = "_blank" href = "/heroes/view/'
.str_replace(' ', '_', $hero[0]['name']).'">'.$hero[0]['name'].'</a> </div>
<span id = "hero_id" data-id = "'
.$hero[0]['id'].'" ></span>
<div>
<img class = "hero_tooltip" data-id = "'
.$hero[0]['id'].'" src = "/images/heroes/66x66/'.str_replace(' ', '_', $hero[0]['name']).'.png">
</div>
</div>
</div>

<div class="bs">

<div class="bs_content">
<div class="bs_nav">
'
.$b_links.'</div>
<div class="bs_add"><img src = "/images/interface/add.png"> Добавить</div>
</div>
</div>
<div class="b_list ">
'
.$builds.'
</div>

<div class = "text"> //РАЗМЕТКА ПРОПАДАЕТ, НАЧИНАЯ ОТСЮДА
<div class = "static_insert_chapter s_head">
<div><img src = "/images/interface/insert_chapter.png"> <span >Создать главу</span></div>
</div>

<div class = "chapters">
'
.$chapters.' //ВОТ СЮДА !
</div>
</div>
</div>

'
.$tmp.'

</div>
</div>
<input type = "hidden" id = "token" maxlength="32" value = "'
.$_SESSION['CSRF_token'].'" />
<script type="text/javascript" src="/modules/guide/edit/js/edit.js"></script>'
;
Так вот. если переменная $chapters содержит определенный текст, например такой, как указан выше, то на странице пропадает разметка html , начиная с DIV class = "text" и с этого момента в исходном коде вообще ничего нет.

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

А если переменная содержит какой-то текст попроще, например "aaaaa, bbbbb - ccccc !" . то все нормально, ничего не обрывается. Я уже все прогонял через htmlentities, думал какие то злые символы замешаны, но нет.

Еще несколько странных моментов:
1) Если написать так
Код:
<div class = "chapters">
'.$chapters.'
'.$chapters.'

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

Через echo переменная выводится в любой точке кода после своего объявления

Если ее приклеить даже в самое начало переменной $view , то html обрывается все равно после DIV class = "text".

В общем, я совсем ничего не понимаю, так ведь не бывает. Подскажите, как решить эту проблему, сил имоих больше нет, пол-дня сижу.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.