Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Мелкие пакости!
 
 автор: alex1111   (11.06.2012 в 14:48)   письмо автору
 
 

Здравствуйте!
Есть раздел "отзывы" и код добавления отзыва в базу данных:
header('Content-Type: text/html; charset=utf-8');
setlocale(LC_ALL,'ru_RU.65001','rus_RUS.65001','Russian_Russia.65001','russian');

session_start();

$autor = $_SESSION['login'];
$otziv = $_POST['otziv'];
$data = date('y/n/d');

  include('bd.php');
$sql = mysql_query("INSERT INTO post (autor,text,data) Values ('$autor','$otziv','$data')", $conn);


А вот код вывода поста из базы данных посетителям:

<?php
include('bd.php');
$sqlCart mysql_query("SELECT text FROM post WHERE autor = '$login'"$conn);
 while(
$row mysql_fetch_array($sqlCart)) 
 {

$otziv $row["text"];

  echo 
"
   <table cellpadding=5 cellspacing=0 border=0 width=500 align='center'>
  <tr>
    <td><div style='width:370px; overflow:auto; border: 0px solid blue;'><pre>"
.htmlspecialchars($otziv)."</pre></div></td>
  </tr>
  </table>"

  }
      
mysql_close($conn);
  
?>


Пользователь соответственно вбивает отзывы без переноса строки. При показе какого отзыва срабатывать полоса прокрутки но это не удобно и не красиво. Как задать по настоящему фиксированный контейнер чтобы за его рамки ничего не вылезало?
Плюс ко всему вместо буквы "И" высвечивается какой-то иероглиф!?!
Можете посмотреть как это выглядит здесь: http://www.web-shpargalka.ru/otzivi.php
За ранее благодарю!

  Ответить  
 
 автор: Eugene77   (11.06.2012 в 18:04)   письмо автору
 
   для: alex1111   (11.06.2012 в 14:48)
 

Если убрать "<pre>" и воспользоваться некоторыми из функций:
1 nl2br
2 strip_tags
3 get_meta_tags
4 get_html_translation_table
6 htmlentities
7 hebrev
8 hebrevc
9 quoted_printable_decode
то контейнер можно получить устойчивый.

А что касается "И", так это настройку соединения надо проверять SET NAMES - посмотрите в MySQL

  Ответить  
 
 автор: alex1111   (11.06.2012 в 21:29)   письмо автору
 
   для: Eugene77   (11.06.2012 в 18:04)
 

Соединение настроил, изменил код подключения к базе данных с:
<?php
$conn 
mysql_connect("localhost""xxx""xxx") or die ("Could not connect: " mysql_error()); 
 
mysql_select_db("xxx"$conn);
?>

на
<?php
$conn 
mysql_connect("localhost""xxx""xxx") or die ("Could not connect: " mysql_error()); 
 
mysql_select_db("xxx"$conn);
 
mysql_query('SET NAMES utf8');
?>

Это надо было сделать еще до записи данных в базу.
А что касается переноса строк автоматический пака еще не разобрался.

  Ответить  
 
 автор: alex1111   (11.06.2012 в 22:22)   письмо автору
 
   для: alex1111   (11.06.2012 в 21:29)
 

Нашел решение:
<?php
$text 
htmlspecialchars($tema);
$newtext wordwrap($text50"<br />\n");
echo 
"$newtext";
?> 

Значение "50" указывает на то, после какого количества символов произойдет перенос строки.
Спасибо всем!

  Ответить  
 
 автор: Eugene77   (17.06.2012 в 11:52)   письмо автору
 
   для: alex1111   (11.06.2012 в 22:22)
 

>
<?php
>$text htmlspecialchars($tema);
>
$newtext wordwrap($text50"<br />\n");
>echo 
"$newtext";
>
?> 

Это самое простое решение, без переносов внутри слов.
Так сказать, наспех сделно... можно и более аккурано наковырять на основе приведённых выше функций.
Но с первым успехом поздравляю!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования