Помощ за чат

DobriMcConnor

Registered
Здравейте, !

Имам сайт интегриран към форум (phpBB3), но също имам и чат на който се опитвам да забраня да пишат гости, но при мен не става. Ето кода на чата:

Код:
<?php
include "config.php";
if ($user->data['user_id'] == ANONYMOUS)
if ($_POST['submit-chat']) {
$avtor = $_POST['avtor'];
$date = date('d/m/Y');
$text = $_POST['text'];
$sql = "INSERT INTO chatbox (avtor, date, text) VALUES ('$avtor', '$date', '$text')";
if ((empty($text))){
echo "<b>Моля, полълни всички полета!<META HTTP-EQUIV='Refresh' Content='1;URL='></b>";
exit;
}
mysql_query($sql) or die (mysql_error());
echo "Съобщението е пуснато успешно!<META HTTP-EQUIV='Refresh' Content='2;URL='>";
}
else
{
echo "<center>
<form method='post' action=''>
Автор:<br /><input type='text' readonly='readonly' name='avtor' value='".$userdata['username']."' class='style-focus' style='width:150px;'/><br />
<textarea name='text' class='style-focus' style='width:150px;'></textarea>
<br />
<input type='submit' name='submit-chat' value='Пусни' class='style-focus' title='Пусни съобщението' />
 <input type='reset' class='style-focus' name='reset' title='Изтрий написаното до сега' value=' Изтрий '>
</center>
</form>";
}else{
echo '<center>Трябва да сте логнат, за да пишете!</center>';
}
?>
<div style="padding-left: 10px; padding-right: 10px;">
<?php
include "config.php";
$result = mysql_query("SELECT * FROM chatbox ORDER BY id DESC  LIMIT 5") or die (mysql_error());
while($data = mysql_fetch_assoc($result)) {
echo "<table align='center' style='border: 1px solid #333; background: #333;' width='100%'>
<tr style='border: 1px solid #000; background: #222;'>
<td align='left' style='border: 1px solid #000; background: #222; font-size:10px;'>
 <img src='images/chatbox.gif' align='left' /><b><span style='font-size:10px; color: white'>$data[avtor]</span></b><br 

/>
<b style='color:#ccc;'><span style='font-size:10px;'>$data[date]</span></b><br />
 <span style='font-size:10px; color: white'>$data[text]</span><br />
</td></tr></table>
";
}
?>
</div>
<div style="padding-top:10px;"></div>

И на интеграцията..:
Код:
<?php

        if ($user->data['user_id'] == ANONYMOUS)
                {
                echo"
                <form action=\"". append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login', true, $user->session_id) . "\" method=\"post\">
                <input type=\"hidden\" name=\"mode\" value=\"login\" />
  
                   <input type=\"text\" class=\"etc2\" name=\"username\" />
                <input type=\"password\" class=\"etc\" name=\"password\" />
                Запомни ме <input type=\"checkbox\" class=\"radio\" name=\"autologin\" />
                <input type=\"hidden\" name=\"autologin\" value=\"1\" />
           <input type=\"submit\" value=\"Влез\" class=\"etc3\" name=\"login\" />
           <input type=\"hidden\" name=\"redirect\" value=\"http://fragzone-bg.erhost.org/csa\" />
           <a href=\"forum/ucp.$phpEx?mode=register'\">Регистрирай се!</a>
           <a href=\"forum/ucp.php?mode=sendpassword\"> Забравена парола?</a>
                </form>
                ";
                }
                else
                {

include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
echo get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']);

echo "<div style=\"border: 1px solid #000;\">";
echo "  <b>Потребител:</b><a href=\"{$phpbb_root_path}memberlist.$phpEx?mode=viewprofile&u=". $user->data['user_id']."\">". $user->data['username'];
echo "</a> ";
echo " <b>Ранк:</b>";
if($user->data['user_rank'] == "1") { echo "Админ "; } else { echo "Потребител "; }
echo " <b>Мнения:</b><a href=\"csa/forum/search.php?author_id=". $user->data['user_id'] ."&sr=posts\">". $user->data['user_posts'] ."</a> ";
echo "<img src=\"http://dobrich-cs.info/images/message_icon.gif\"/>:<a href=\"{$phpbb_root_path}ucp.$phpEx?i=pm&folder=inbox\" ";
if($user->data['user_new_privmsg'] != 0) { echo "title=\"Имате ново съобщение\""; }
echo ">". $user->data['user_new_privmsg'] ." </a> ";



echo" <button onclick=\"window.location.href='".append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout', true, $user->session_id)."'\">Излез</button>";

//echo "<div style=\"asd\">
//<form action=\"". append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout', true, $user->session_id) . "\" method=\"post\">
//<input type=\"hidden\" name=\"mode\" value=\"logout\" />
//<input type=\"submit\" value=\"Излез\" name=\"logout\" />
//</form>
//</div>";

echo "</div>";
                }
?>

Благодаря предварително ! :)
 
Надявам се използваш сесии.
Код:
<?php
session_start();
include "config.php";
if (($_SESSION['logged']) === true) {



    if ($user->data['user_id'] == ANONYMOUS)
        if ($_POST['submit-chat']) {
            $avtor = $_POST['avtor'];
            $date = date('d/m/Y');
            $text = $_POST['text'];
            $sql = "INSERT INTO chatbox (avtor, date, text) VALUES ('$avtor', '$date', '$text')";
            if ((empty($text))) {
                echo "<b>Моля, полълни всички полета!<META HTTP-EQUIV='Refresh' Content='1;URL='></b>";
                exit;
            }
            mysql_query($sql) or die(mysql_error());
            echo "Съобщението е пуснато успешно!<META HTTP-EQUIV='Refresh' Content='2;URL='>";
        } else {
            echo "<center>
<form method='post' action=''>
Автор:<br /><input type='text' readonly='readonly' name='avtor' value='" . $userdata['username'] . "' class='style-focus' style='width:150px;'/><br />
<textarea name='text' class='style-focus' style='width:150px;'></textarea>
<br />
<input type='submit' name='submit-chat' value='Пусни' class='style-focus' title='Пусни съобщението' />
 <input type='reset' class='style-focus' name='reset' title='Изтрий написаното до сега' value=' Изтрий '>
</center>
</form>";
        } else {
        echo '<center>Трябва да сте логнат, за да пишете!</center>';
    }
?>
    <div style="padding-left: 10px; padding-right: 10px;">                
    <?php
    include "config.php";
    $result = mysql_query("SELECT * FROM chatbox ORDER BY id DESC  LIMIT 5") or die(mysql_error());
    while ($data = mysql_fetch_assoc($result)) {
        echo "<table align='center' style='border: 1px solid #333; background: #333;' width='100%'>
<tr style='border: 1px solid #000; background: #222;'>
<td align='left' style='border: 1px solid #000; background: #222; font-size:10px;'>
 <img src='images/chatbox.gif' align='left' /><b><span style='font-size:10px; color: white'>$data[avtor]</span></b><br

/>
<b style='color:#ccc;'><span style='font-size:10px;'>$data[date]</span></b><br />
 <span style='font-size:10px; color: white'>$data[text]</span><br />
</td></tr></table>
";
    }
    ?>
</div>
<div style="padding-top:10px;"></div>
<?php
} else {
    echo 'Вие не сте логнат';
    exit;
}
?>
 
Ето този ред
Код:
if ((!$_SESSION['logged']) === true) {

го напражи така
Код:
if (($_SESSION['logged']) === true) {

махни ! зад
Код:
$_SESSION
 
Я виж тва

<?php
session_start();
include "config.php";
if (($_SESSION['logged']) === true) {



if ($user->data['user_id'] == ANONYMOUS)
if ($_POST['submit_chat']) {
$avtor = $_POST['avtor'];
$date = date('d/m/Y');
$text = $_POST['text'];
$sql = "INSERT INTO chatbox (avtor, date, text) VALUES ('$avtor', '$date', '$text')";
if ((empty($text))) {
echo "<b>Моля, полълни всички полета!<META HTTP-EQUIV='Refresh' Content='1;URL='></b>";
exit;
}
mysql_query($sql) or die(mysql_error());
echo "Съобщението е пуснато успешно!<META HTTP-EQUIV='Refresh' Content='2;URL='>";
} else {
echo "<center>
<form method='post' action=''>
Автор:<br /><input type='text' readonly='readonly' name='avtor' value='" . $userdata['username'] . "' class='style-focus' style='width:150px;'/><br />
<textarea name='text' class='style-focus' style='width:150px;'></textarea>
<br />
<input type='submit' name='submit_chat' value='Пусни' class='style-focus' title='Пусни съобщението' />
 <input type='reset' class='style-focus' name='reset' title='Изтрий написаното до сега' value=' Изтрий '>
</center>
</form>";
}
?>
<div style="padding-left: 10px; padding-right: 10px;">
<?php
include "config.php";
$result = mysql_query("SELECT * FROM chatbox ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($data = mysql_fetch_assoc($result)) {
echo "<table align='center' style='border: 1px solid #333; background: #333;' width='100%'>
<tr style='border: 1px solid #000; background: #222;'>
<td align='left' style='border: 1px solid #000; background: #222; font-size:10px;'>
 <img src='images/chatbox.gif' align='left' /><b><span style='font-size:10px; color: white'>$data[avtor]</span></b><br

/>
<b style='color:#ccc;'><span style='font-size:10px;'>$data[date]</span></b><br />
 <span style='font-size:10px; color: white'>$data[text]</span><br />
</td></tr></table>
";
}
?>
</div>
<div style="padding-top:10px;"></div>
<?php
} else {
echo 'You are not loged';
exit;
}
?>
Код:
 
Така?
Код:
<?php
if($user->data['is_registered']){
    // ... потребителят е логнат ...
    ?>
<?php
session_start();
include "config.php";
if ($_POST['submit_chat']) {
$avtor = $_POST['avtor'];
$date = date('d/m/Y');
$text = $_POST['text'];
$sql = "INSERT INTO chatbox (avtor, date, text) VALUES ('$avtor', '$date', '$text')";
if ((empty($text))) {
echo "<b>Моля, полълни всички полета!<META HTTP-EQUIV='Refresh' Content='1;URL='></b>";
exit;
}
mysql_query($sql) or die(mysql_error());
echo "Съобщението е пуснато успешно!<META HTTP-EQUIV='Refresh' Content='2;URL='>";
} else {
echo "<center>
<form method='post' action=''>
Автор:<br /><input type='text' readonly='readonly' name='avtor' value='" . $userdata['username'] . "' class='style-focus' style='width:150px;'/><br />
<textarea name='text' class='style-focus' style='width:150px;'></textarea>
<br />
<input type='submit' name='submit_chat' value='Пусни' class='style-focus' title='Пусни съобщението' />
 <input type='reset' class='style-focus' name='reset' title='Изтрий написаното до сега' value=' Изтрий '>
</center>
</form>";
}
?>
<div style="padding-left: 10px; padding-right: 10px;">
<?php
include "config.php";
$result = mysql_query("SELECT * FROM chatbox ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($data = mysql_fetch_assoc($result)) {
echo "<table align='center' style='border: 1px solid #333; background: #333;' width='100%'>
<tr style='border: 1px solid #000; background: #222;'>
<td align='left' style='border: 1px solid #000; background: #222; font-size:10px;'>
 <img src='images/chatbox.gif' align='left' /><b><span style='font-size:10px; color: white'>$data[avtor]</span></b><br

/>
<b style='color:#ccc;'><span style='font-size:10px;'>$data[date]</span></b><br />
 <span style='font-size:10px; color: white'>$data[text]</span><br />
</td></tr></table>
";
}
?>
</div>
<div style="padding-top:10px;"></div>
<?php
} else {
echo 'Ne si lognat !';
exit;
}
?>
 
Така?

Код:
<center>
<form method='post' action=''>
Автор:<br /><input type='text' readonly='readonly' name='avtor' value="<?php $userdata['username'] ?>" class='style-focus' style='width:150px;'/><br />
<textarea name='text' class='style-focus' style='width:150px;'></textarea>
<br />
<input type='submit' name='submit-chat' value='Пусни' class='style-focus' title='Пусни съобщението' />
 <input type='reset' class='style-focus' name='reset' title='Изтрий написаното до сега' value=' Изтрий '>
</form>
</center>
<?php
include "config.php";
if ($user->data['user_id'] == ANONYMOUS)
	echo "Трябва да сте логнат за да пишете!";
} else {
	if ($_POST['submit-chat']) {
	$avtor = $_POST['avtor'];
	$date = date('d/m/Y');
	$text = $_POST['text'];
	$sql = "INSERT INTO chatbox (avtor, date, text) VALUES ('$avtor', '$date', '$text')";
	if ((empty($text))){
	echo "<b>Моля, полълни всички полета!<META HTTP-EQUIV='Refresh' Content='1;URL='></b>";
	exit;
	}
	mysql_query($sql) or die (mysql_error());
	echo "Съобщението е пуснато успешно!<META HTTP-EQUIV='Refresh' Content='2;URL='>";
	}
}
?>
<div style="padding-left: 10px; padding-right: 10px;">
<?php
include "config.php";
$result = mysql_query("SELECT * FROM chatbox ORDER BY id DESC  LIMIT 5") or die (mysql_error());
while($data = mysql_fetch_assoc($result)) {
echo "<table align='center' style='border: 1px solid #333; background: #333;' width='100%'>
<tr style='border: 1px solid #000; background: #222;'>
<td align='left' style='border: 1px solid #000; background: #222; font-size:10px;'>
 <img src='images/chatbox.gif' align='left' /><b><span style='font-size:10px; color: white'>$data[avtor]</span></b><br

/>
<b style='color:#ccc;'><span style='font-size:10px;'>$data[date]</span></b><br />

 <span style='font-size:10px; color: white'>$data[text]</span><br />
</td></tr></table>
";
}
?>
</div>
<div style="padding-top:10px;"></div>

Един съвет филтрирай си малко данните :)
И незнам защо имаш поле за автор във формата. След като можеш като е логнат потебителя и напише не6то просто да взима потребителското му име и да го записва в БД
Оправи си и малко формата да е с 2ни кавички, нече е е грешка но както искаш :)
 
Когато пиша на кирилица излиза тази грешка:
Код:
Incorrect string value: '\xF4\xF1\xE0\xF4\xE0' for column 'text' at row 1

ПП: Обикновенно трябва да изкарва автора?
 
И така ако не стане не знам вече
Код:
<center>
<form method="post" action="">
<textarea name="text" class="style-focus" style="width:150px;"></textarea>
<br />
<input type="submit" name="submit" value="Пусни" class="style-focus" title="Пусни съобщението" />
 <input type="reset" class="style-focus" name="reset" title="Изтрий написаното до сега" value=" Изтрий " />
</form>
</center>
<?php
include "config.php";
if ($user->data['user_id'] == ANONYMOUS)
	echo "Трябва да сте логнат за да пишете!";
} else {
	if ($_POST['submit']) {
		$avtor = $userdata['username'];
		$date = date('d/m/Y');
		$text = $_POST['text'];
		if ((empty($text))){
		echo "<b>Моля, полълни всички полета!<META HTTP-EQUIV='Refresh' Content='1;URL='></b>";
		exit;
		} else {	
		$sql = "INSERT INTO chatbox (avtor, date, text) VALUES ('$avtor', '$date', '$text')";
		mysql_query($sql) or die (mysql_error());
		echo "Съобщението е пуснато успешно!<META HTTP-EQUIV='Refresh' Content='2;URL='>";
		}
	}
}
?>



<div style="padding-left: 10px; padding-right: 10px;">
<?php
include "config.php";
$result = mysql_query("SELECT * FROM chatbox ORDER BY id DESC  LIMIT 5") or die (mysql_error());
while($data = mysql_fetch_assoc($result)) {
echo "<table align='center' style='border: 1px solid #333; background: #333;' width='100%'>
<tr style='border: 1px solid #000; background: #222;'>
<td align='left' style='border: 1px solid #000; background: #222; font-size:10px;'>
 <img src='images/chatbox.gif' align='left' /><b><span style='font-size:10px; color: white'>$data[avtor]</span></b><br

/>
<b style='color:#ccc;'><span style='font-size:10px;'>$data[date]</span></b><br />
 <span style='font-size:10px; color: white'>$data[text]</span><br />
</td></tr></table>
";
}
?>
</div>
<div style="padding-top:10px;"></div>
 

Back
Горе