преработка на чат

lqlqlq

Registered
Код:
<form action="" method="post"> 
<font color="#00b2ee">Nick:</font> 
<br /><input type="text" name="nick"  /> 
<br /> 
<font color="#00b2ee">Съобщение:</font> 
<br /><input type="text" name="message"  /> 
<br />
<font color="#00b2ee">Въведете кода:</font> <a href="#" onclick="document.getElementById('captcha').src = 'chat/img.php?' + Math.random(); return false" style="vertical-align: top"><img id="captcha" src="chat/img.php" alt="" border="0" /></a>
<br /><input type="text" name="kod" /><br /><br />
<input type="submit" name="submit" value="Добави"  /> 
</form><br /> 

<?php 
if (isset($_POST["submit"])) { 
define('IN_VALID', true); 
include('config.php'); 
mysql_query("SET NAMES utf8"); 
if (!empty($_POST["nick"])) $nick = htmlspecialchars($_POST["nick"]); 
else $errMsg = "<font color=\"#00b2ee\">Моля въведете линк!</font><br />"; 
if (!empty($_POST["message"])) $message = htmlspecialchars($_POST["message"]); 
else $errMsg = "<font color=\"#00b2ee\">Моля въведете съобщение!</font><br>";
$kod = htmlspecialchars($_POST[kod]);//взимаме текста 
if($kod!=$_COOKIE[imgcodepage])
$errMsg = "<font color=\"#00b2ee\">Не сте въвели правилно кода!</font><br>";
if (empty($errMsg)) 
{ 
$insert = mysql_query("INSERT INTO chatbox(nick, message) VALUES('$nick', '$message')")or die(mysql_error()); 
echo 'Съобщението е добавено!'; 
} else echo $errMsg; 
mysql_close(); 
} 
?>



<div style="color:#00b2ee">
<?php
define('IN_VALID', true);
include('config.php');
mysql_query("SET NAMES utf8");
$query="SELECT id,nick,message FROM chatbox ORDER BY id DESC limit 10";
$result=mysql_query($query);
echo '<table>';
while ($row=@mysql_fetch_row($result)) {
if (strlen($row['1'])>49)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
echo"<tr><td><b><img src=\"chat/chat.png\" alt=\"\" /> $row[1]$points:</b> $row[2] <div class=\"hr\"></div></td></tr>";
}
echo "</table>";
?>
</div>
[ <font color="#ff4c00"><a href="allmessages.php">Всички съобщения</a></font> ]


1.Това е чата, някой може ли да го направи така, че ако потребител не е регистриран във форума (phpbb3) да не може да пише в чата (сайта е интегриран с форума)
-

if ($user->data['user_id'] == ANONYMOUS) - това е проверката и съответно ако не е регистриран да му изписва, че трябва да се регистрира.
- if($user->data['is_registered']) - това е проверката за регистрирани.

2.Другото нещо е когато е регистриран човек, за Nick да е ника му във форума, примерно има input поле и там да се изписва nicka му, но да не може да го трие само да седи ника му и съответно той да излиза при пост.
проверката е - $user->data['username']

3.Когато натисне submit бутона съобщението да се показва без рефреш, примерно с някакъв javascript за презареждане, защото е доста досадно да те препраща най-отгоре на страницата и да местиш надолу за да видиш какво си написал.

Благодаря на всички които ще помогнат и естествено +1 за този който е оказал най-голяма помощ.
 
Код:
if($user->data['is_registered']) {
echo 'Моля първо се регистрирайте след това ще може да си чатите';
} else { <form action="" method="post">
<font color="#00b2ee">Nick:</font>
<br /><input type="text" name="nick"  />
<br />
<font color="#00b2ee">Съобщение:</font>
<br /><input type="text" name="message"  />
<br />
<font color="#00b2ee">Въведете кода:</font> <a href="#" onclick="document.getElementById('captcha').src = 'chat/img.php?' + Math.random(); return false" style="vertical-align: top"><img id="captcha" src="chat/img.php" alt="" border="0" /></a>
<br /><input type="text" name="kod" /><br /><br />
<input type="submit" name="submit" value="Добави"  />
</form><br />

<?php
if (isset($_POST["submit"])) {
define('IN_VALID', true);
include('config.php');
mysql_query("SET NAMES utf8");
if (!empty($_POST["nick"])) $nick = htmlspecialchars($_POST["nick"]);
else $errMsg = "<font color=\"#00b2ee\">Моля въведете линк!</font><br />";
if (!empty($_POST["message"])) $message = htmlspecialchars($_POST["message"]);
else $errMsg = "<font color=\"#00b2ee\">Моля въведете съобщение!</font><br>";
$kod = htmlspecialchars($_POST[kod]);//взимаме текста
if($kod!=$_COOKIE[imgcodepage])
$errMsg = "<font color=\"#00b2ee\">Не сте въвели правилно кода!</font><br>";
if (empty($errMsg))
{
$insert = mysql_query("INSERT INTO chatbox(nick, message) VALUES('$nick', '$message')")or die(mysql_error());
echo 'Съобщението е добавено!';
} else echo $errMsg;
mysql_close();
}
?>
}


<div style="color:#00b2ee">
<?php
define('IN_VALID', true);
include('config.php');
mysql_query("SET NAMES utf8");
$query="SELECT id,nick,message FROM chatbox ORDER BY id DESC limit 10";
$result=mysql_query($query);
echo '<table>';
while ($row=@mysql_fetch_row($result)) {
if (strlen($row['1'])>49)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
echo"<tr><td><b><img src=\"chat/chat.png\" alt=\"\" /> $row[1]$points:</b> $row[2] <div class=\"hr\"></div></td></tr>";
}
echo "</table>";
?>
</div>
[ <font color="#ff4c00"><a href="allmessages.php">Всички съобщения</a></font> ]
 
не нестава така, преди проверката трябва да има <?php таг доколкото знам и накрая на формата трябва да има затварящ се таг.
 
Извинявай не бях видял:

Код:
<?php 
 if($user->data['is_registered']) {
echo 'Моля първо се регистрирайте след това ще може да си чатите';
} else { ?> <form action="" method="post">
<font color="#00b2ee">Nick:</font>
<br /><input type="text" name="nick"  />
<br />
<font color="#00b2ee">Съобщение:</font>
<br /><input type="text" name="message"  />
<br />
<font color="#00b2ee">Въведете кода:</font> <a href="#" onclick="document.getElementById('captcha').src = 'chat/img.php?' + Math.random(); return false" style="vertical-align: top"><img id="captcha" src="chat/img.php" alt="" border="0" /></a>
<br /><input type="text" name="kod" /><br /><br />
<input type="submit" name="submit" value="Добави"  />
</form><br />

<?php
if (isset($_POST["submit"])) {
define('IN_VALID', true);
include('config.php');
mysql_query("SET NAMES utf8");
if (!empty($_POST["nick"])) $nick = htmlspecialchars($_POST["nick"]);
else $errMsg = "<font color=\"#00b2ee\">Моля въведете линк!</font><br />";
if (!empty($_POST["message"])) $message = htmlspecialchars($_POST["message"]);
else $errMsg = "<font color=\"#00b2ee\">Моля въведете съобщение!</font><br>";
$kod = htmlspecialchars($_POST[kod]);//взимаме текста
if($kod!=$_COOKIE[imgcodepage])
$errMsg = "<font color=\"#00b2ee\">Не сте въвели правилно кода!</font><br>";
if (empty($errMsg))
{
$insert = mysql_query("INSERT INTO chatbox(nick, message) VALUES('$nick', '$message')")or die(mysql_error());
echo 'Съобщението е добавено!';
} else echo $errMsg;
mysql_close();
}
}
?>


<div style="color:#00b2ee">
<?php
define('IN_VALID', true);
include('config.php');
mysql_query("SET NAMES utf8");
$query="SELECT id,nick,message FROM chatbox ORDER BY id DESC limit 10";
$result=mysql_query($query);
echo '<table>';
while ($row=@mysql_fetch_row($result)) {
if (strlen($row['1'])>49)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
echo"<tr><td><b><img src=\"chat/chat.png\" alt=\"\" /> $row[1]$points:</b> $row[2] <div class=\"hr\"></div></td></tr>";
}
echo "</table>";
?>
</div>
[ <font color="#ff4c00"><a href="allmessages.php">Всички съобщения</a></font> ]
 
Благодаря ти, че се пробваш да помогнеш, но аз си я бях направил преди проверката работеше и сега мога да си я направя, но проблема е такъв, че в сайта остава само чата и се разтегля и изписва, че трябва да си регнат, проверката трябва да започва така:

if user annonymous (демек ако не е регистриран) да му изписва, че трябва и другата проверка if user registered - да му показва формата, а при теб е само if user registered демек ако е регистиран да не му го показва (тоест обратното).

Благодаря, ти че помагаш явно си начиещ виждам, че имаш малко мнения, може и да греша, но ще почакам да излезе някой по-разбиращ.
 
За преместването най-долу - http://web-tourist.net/forum/viewtopic.php?t=101381
За изпращането без рефреш - http://web-tourist.net/login/login/view.php?st=2942

Кода:
Код:
<?php
define('IN_VALID', true);
include('config.php');
if($user->data['user_id'] == ANONYMUS){
$chatusername = "";
$submitbutton = "Трябва да си регистриран, за да пишеш в чата.";
}
else {
$chatusername = $user->data['username'];
$submitbutton = '<input type="submit" name="submit" value="Добави" />';
}
?>
<form action="" method="post">
<font color="#00b2ee">Nick:</font>
<br /><input type="text" name="nick" value="<?php echo $chatusername; ?>" readonly="readonly" />
<br />
<font color="#00b2ee">Съобщение:</font>
<br /><input type="text" name="message"  />
<br />
<font color="#00b2ee">Въведете кода:</font> <a href="#" onclick="document.getElementById('captcha').src = 'chat/img.php?' + Math.random(); return false" style="vertical-align: top"><img id="captcha" src="chat/img.php" alt="" border="0" /></a>
<br /><input type="text" name="kod" /><br /><br />
<?php
echo $submitbutton;
?>
</form><br />

<?php
if (isset($_POST["submit"])) {
mysql_query("SET NAMES utf8");
if (!empty($_POST["nick"])) $nick = htmlspecialchars($_POST["nick"]);
else $errMsg = "<font color=\"#00b2ee\">Моля въведете линк!</font><br />";
if (!empty($_POST["message"])) $message = htmlspecialchars($_POST["message"]);
else $errMsg = "<font color=\"#00b2ee\">Моля въведете съобщение!</font><br>";
$kod = htmlspecialchars($_POST[kod]);//взимаме текста
if($kod!=$_COOKIE[imgcodepage])
$errMsg = "<font color=\"#00b2ee\">Не сте въвели правилно кода!</font><br>";
if (empty($errMsg))
{
$insert = mysql_query("INSERT INTO chatbox(nick, message) VALUES('$nick', '$message')")or die(mysql_error());
echo 'Съобщението е добавено!';
} else echo $errMsg;
mysql_close();
}
?>



<div style="color:#00b2ee">
<?php
mysql_query("SET NAMES utf8");
$query="SELECT id,nick,message FROM chatbox ORDER BY id DESC limit 10";
$result=mysql_query($query);
echo '<table>';
while ($row=@mysql_fetch_row($result)) {
if (strlen($row['1'])>49)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
echo"<tr><td><b><img src=\"chat/chat.png\" alt=\"\" /> $row[1]$points:</b> $row[2] <div class=\"hr\"></div></td></tr>";
}
echo "</table>";
?>
</div>
[ <font color="#ff4c00"><a href="allmessages.php">Всички съобщения</a></font> ]
И те съветвам да премахнеш <font>-</font> таговете, защото вече не се поддържат (HTML5). Използвай <span style="">-</span>.
 
добре, но пак не работи както трябва, това с ника се получи перфектно, но не изписва никъде отначало, че трябва да си регистриран.
Отначало седи ника annonymous (по-подразбиране phpbb3 така задава гостите в датабазата с този ник) и като напишеш съобщение и анти-бот кода директно се изпраща съобщение с ника annonymous, но иначе като влезеш в системата се показва твоя ник и всичко си работи ок. Само да се направи проверката както трябва.

Отностно урока без рефреш знам го, но надали ще се справя, ако можеш ще те помоля да го направиш. Благодаря!
 
Пробвай да направиш проверката така:
if($user->data['username'] == "annonymus"){
$chatusername = "";
$submitbutton = "Трябва да си регистриран, за да пишеш в чата.";
}
else {
$chatusername = $user->data['username'];
$submitbutton = '<input type="submit" name="submit" value="Добави" />';
}
Виж дали точно съм написал името...
 
Е там вече не мога да ти помогна...
Нека някой, който разбира повече в тази сфера да ти помогне...
 

Back
Горе