Разтягане на сайта (чат система)

winers

Registered
Здравейте имам готова чат система, но когато се напишат повече от 20 символа чат-а излиза от менюто

Ето кода:

PHP:
			<?php
include("forum/config.php");
mysql_connect("$dbhost","$dbuser","$dbpasswd");
mysql_select_db("$dbname");
if(!defined('IN_PHPBB')) {
exit;
}

if(isset($_POST['submit']))
{
$chat = addslashes(htmlspecialchars($_POST['chat']));
$avtor = $user->data['username'];
$date = date("Y-m-d в H:i");
$ip = $_SERVER['REMOTE_ADDR'];
if(empty($chat))
{
echo '<center>Попълни полетата</center>';

}else{
if(preg_match("/(\burl\b|http|\bwww\.|\.(com|fr|us|net|bg||biz|info|org|ru|su)\b)/i", $_POST['chat']) )
{
echo '<center>Линковете не са позволени</center>';
}else{

if($user->data['is_registered']) {

$sql = mysql_query("INSERT INTO shoutbox (text,avtor,date) VALUES ('$chat','$avtor','$date')") or die (mysql_error());
echo '<center>Добавено</center>';

} else {

exit("<center>Трябва да си регистриран за да пишеш в чата.</center>"); 

}
}

}
}

?>



<form action='' method='post'>
<center>
<b>Текст:</b>
<br />
<textarea name='chat' rows='3' id='styled' cols='18'></textarea><br />
<script type="text/javascript">
function emoticon(e) {
   var e;
   doc = document;
   g = doc.getElementById('styled');
   if(g.value == "") {
   g.value = e;
   } else {
   g.value = g.value + " " + e;
   }
}
</script>


<center><font color="#0586cc">ПИШИ НА КИРИЛИЦА</font></center>
<div> </div>
<?php if($user->data['is_registered']) { ?>
<input type='submit' name='submit' value='Прати' />
<input type='reset' name='submit' value='Изчисти' />
</center>
<?php } else { ?>
<a href="forum/ucp.php?mode=register" >Регистирай</a> се или <a href="forum/ucp.php?mode=login" >влез</a> в акаунта си за да пишеш.</center>
<?php } ?>
</form>
<?php
$sql = mysql_query("SELECT * FROM shoutbox ORDER BY id DESC LIMIT 5") or die (mysql_error());

while($row = mysql_fetch_assoc($sql)){
$uid = $bitfield = $options = '';
$allow_bbcode = $allow_urls = $allow_smilies = true;
generate_text_for_storage($row[text], $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies);
$text = generate_text_for_display($row[text], $uid, $bitfield, $options);
echo "
<table align='center'     ' width='100%'>
        <tr style='border: 1px solid #000; background: #716F6F;'>
        <td align='left' style='border: 1px solid #000; background: #716F6F; font-size:10px;'>
       <img src='img/chat.gif'><b><font color=#3fb8f8>$row[avtor]</font></b><br />
 <b><font color=black>$row[date]</font></b><br />
 <font color=white><font size='2'>$text</font><br /><br />
        </td></tr></table>


		
		";
}
echo "<br />";



?>


   <center>Общо съобщения <br> (<?php
include("conf.php");
$our = mysql_query("SELECT count(id) as total FROM shoutbox"); 
while($raw=mysql_fetch_array($our)){ 
$total=$raw['total'];
echo ' '.$total.' '; 
}
?>)

Снимка: http://prikachi.tk/images/a32dc4b1.png
Та въпроса ми е как да го направя текста да отива надолу а не на дясно ?
 
Сложи му малко CSS направи си една кутия, в която да ти стой чата. Например :
[css]
.chatbox{
width: 400px;
height: auto;
overflow: auto;
}
[/css]
 
ivo_pi4a каза:
Сложи му малко CSS направи си една кутия, в която да ти стой чата. Например :
[css]
.chatbox{
width: 400px;
height: auto;
overflow: auto;
}
[/css]

Пробвах ето така, но пак нестава...

Код:
.chatbox{
background: url('../images/in/cap2.png') no-repeat;
width: 200px;
height: auto;
overflow: auto;
}

Ето си css-а на кутията

Код:
.cap {
color:#f4f4f4;
font-size:9pt;
font-family: Arial;
line-height:45px;
background: url('../images/in/cap2.png') no-repeat;
width:217px;
height:46px;
float:left;
padding:0 0 0 20px;
}
 
Предполагам си сложил
HTML:
<div class="cap">
Тук чата
</div>
И също така си инклуднал css файла
HTML:
<link rel="stylesheet" type="text/css" href="style.css" />
 
Имаш предвид, че когато се пише и е дълъг надписа се разтяга. Е това няма как да се оправи. Освен ако не направиш един wordwrap или strlen. :)
Иначе с CSS ме съмнява да остигнеш желаният ефект.
 
Ev0luti0N каза:
Имаш предвид, че когато се пише и е дълъг надписа се разтяга. Е това няма как да се оправи. Освен ако не направиш един wordwrap или strlen. :)
Иначе с CSS ме съмнява да остигнеш желаният ефект.
Ще се достигне ;)

EDIT. А съобщението ти в кутия ли е или ?
 
Ev0luti0N каза:
Имаш предвид, че когато се пише и е дълъг надписа се разтяга. Е това няма как да се оправи. Освен ако не направиш един wordwrap или strlen. :)
Иначе с CSS ме съмнява да остигнеш желаният ефект.

#ivo_pi4a да така е..

#Ev0luti0N тези нищо не ми говорят.. ?
Няма ли начин да се ограничат думите в чата ?
Примерно да има Остават: 15 думи..
 
winers каза:
Ev0luti0N каза:
Имаш предвид, че когато се пише и е дълъг надписа се разтяга. Е това няма как да се оправи. Освен ако не направиш един wordwrap или strlen. :)
Иначе с CSS ме съмнява да остигнеш желаният ефект.

#ivo_pi4a да така е..

#Ev0luti0N тези нищо не ми говорят.. ?
Няма ли начин да се ограничат думите в чата ?
Примерно да има Остават: 15 думи..
За това ти говорех на 15 символа да пада на долният ред. :)
PHP:
<?php
$text = "Не знам колко символа има тук, но трябва да стигнат";
$newtext = wordwrap($text, 15, "<br />");
echo $newtext;
?>
 
Ev0luti0N каза:
winers каза:
Ev0luti0N каза:
Имаш предвид, че когато се пише и е дълъг надписа се разтяга. Е това няма как да се оправи. Освен ако не направиш един wordwrap или strlen. :)
Иначе с CSS ме съмнява да остигнеш желаният ефект.

#ivo_pi4a да така е..

#Ev0luti0N тези нищо не ми говорят.. ?
Няма ли начин да се ограничат думите в чата ?
Примерно да има Остават: 15 думи..
За това ти говорех на 15 символа да пада на долният ред. :)
PHP:
<?php
$text = "Не знам колко символа има тук, но трябва да стигнат";
$newtext = wordwrap($text, 15, "<br />");
echo $newtext;
?>
Слагам го под чата но нищо нестава..
Един приятел ми даде кода
if(strlen($text > 15)) { echo "мнг символи е"; }
но и с него не работи... ?
 
Защо го слагаш под чата :shock:
Замести променливите както на теб ти трябват:
PHP:
<?php
$text = "Не знам колко символа има тук, но трябва да стигнат"; // Тук замести с твоята променлива която съдържа текста написан от потребителят. Примерно: $row['text'] или др. Зависи как я изкарваш.
$newtext = wordwrap($text, 15, "<br />");
echo $newtext; // След което вместо да изкарваш $row['text'] пишеш на нейното място $newtext.
?>
 
Ev0luti0N каза:
Защо го слагаш под чата :shock:
Замести променливите както на теб ти трябват:

Не работи.. виж горе кода за чата..
Казаха ми, че с този код нямало как да проработи..
 
lam3r4370 каза:
Слагаш едно nl2br преди да вкараш текста в БД и е готово :)
Не му върви работа.. Тей като nl2br ще изкара текста на 2 реда ако при писането в текста арената потребителят е натиснал SHIFT + ENTER. :)
 
Ev0luti0N каза:
lam3r4370 каза:
Слагаш едно nl2br преди да вкараш текста в БД и е готово :)
Не му върви работа.. Тей като nl2br ще изкара текста на 2 реда ако при писането в текста арената потребителят е натиснал SHIFT + ENTER. :)
Добре това като нестава неможе ли да огранича символите в чата ?
Пробвах с това if(strlen($text > 15)) { echo "мнг символи е"; }
Но нестана.. ?
 
winers каза:
Ev0luti0N каза:
lam3r4370 каза:
Слагаш едно nl2br преди да вкараш текста в БД и е готово :)
Не му върви работа.. Тей като nl2br ще изкара текста на 2 реда ако при писането в текста арената потребителят е натиснал SHIFT + ENTER. :)
Добре това като нестава неможе ли да огранича символите в чата ?
Пробвах с това if(strlen($text > 15)) { echo "мнг символи е"; }
Но нестана.. ?
Сложиш ли това не знаеш какво ще стане предполагам. Всичките ти потребителите няма да могат да пишат съобщения по-дълги от 15 символа. Това значи, че едвам ще могат да пишат "Здравейте, как го карате днес"..
Мисля, че това което ти дадох ще ти върши отлична работа.
 
Ev0luti0N каза:
lam3r4370 каза:
Слагаш едно nl2br преди да вкараш текста в БД и е готово :)
Не му върви работа.. Тей като nl2br ще изкара текста на 2 реда ако при писането в текста арената потребителят е натиснал SHIFT + ENTER. :)
Че то shift+enter не е ли същото като само enter в текстареата?
 
lam3r4370 каза:
Ev0luti0N каза:
lam3r4370 каза:
Слагаш едно nl2br преди да вкараш текста в БД и е готово :)
Не му върви работа.. Тей като nl2br ще изкара текста на 2 реда ако при писането в текста арената потребителят е натиснал SHIFT + ENTER. :)
Че то shift+enter не е ли същото като само enter в текстареата?
Може да е така, не съм пробвал свикнал съм си още в скайп с SHIFT + ENTER затова давам този пример. :)
Но и да е само ENTER пак не му помага. Wordwrap му прави самият текст след 15-тия символ да му слага <br /> което му ще му свърши 99% работа.
 
Ev0luti0N каза:
Може да е така, не съм пробвал свикнал съм си още в скайп с SHIFT + ENTER затова давам този пример. :)
Но и да е само ENTER пак не му помага. Wordwrap му прави самият текст след 15-тия символ да му слага <br /> което му ще му свърши 99% работа.

PHP:
<?php
$text = "Не знам колко символа има тук, но трябва да стигнат";
$newtext = wordwrap($text, 15, "<br />");
echo $newtext;
?>
Този код го пробвах, но нищо нестава... абсолютно същото си е..
 
winers каза:
Ev0luti0N каза:
Може да е така, не съм пробвал свикнал съм си още в скайп с SHIFT + ENTER затова давам този пример. :)
Но и да е само ENTER пак не му помага. Wordwrap му прави самият текст след 15-тия символ да му слага <br /> което му ще му свърши 99% работа.

PHP:
<?php
$text = "Не знам колко символа има тук, но трябва да стигнат";
$newtext = wordwrap($text, 15, "<br />");
echo $newtext;
?>
Този код го пробвах, но нищо нестава... абсолютно същото си е..
Пробва ли го в отделен файл, за да видиш какъв е резултата?
 
Не съм го пробвал..
Освен да го ограничим символите.. какъв ще е кода ?
След примерно 15-тия символ да не се показва текста
 

Back
Горе