проблем с чат

val4o0o0

Registered
Тук по-долу ще постна код, където някъде в phpbb проверката за регистриран и нерегистриран се бърка, целта е когато не си регистриран на username да не пише нищо, а когато си регнат там да седи името ти (от регистрацията в phpbb) - но, нещо бъркам затова:
Код:
<?php
if ($user->data['username'] == ANONYMOUS){
$chatusername = "";
$submitbutton = "Трябва да си регистриран, за да пишеш в чата.";
}
else {
$chatusername =  $user->data['username'];
$submitbutton = '<input type="submit" name="submit" value="Добави" />';
}
?>
<div align="center">
<form action="" method="post"> 
Име:
<br /><input type="text" name="nick" value="<?php echo $chatusername; ?>" readonly="readonly"  /> 
<br /> 
Съобщение:
<br /><textarea name='message' rows='3' id='styled' cols='18'></textarea><br />
Въведете кода: <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;
?>
<input type="reset" value="Изчисти" />
</form><br /></div>
+1 точка на който се справи, проблема е, че името не се показва..
 
нищо и попринцип не трябва да пише нищо, да си седи празно, но има readonly на полето и тоест неможеш да пишеш ако не си регнат, а като си регнат на value="chatusername" - като това минава през проверката.
Просто някъде се бърка там if $user->data['username'] ..
Иначе сайта е интегриран с форума успешно и няма никъде грешки всичко тече нормално, а всъщност преди беше станало когато 1 друг потребител ми беше направил заявката, сега какво бъркам незнам...

може би трябва да се забоде някъде:
Код:
if($user->data['is_registered'])
?
 
Така:

Код:
<div align="center">
<form action="" method="post"> 
Име:
<br /><input type="text" name="nick" /> 
<br /> 
Съобщение:
<br /><textarea name='message' rows='3' cols='18'></textarea><br />
Въведете кода: <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="Добави" />
<input type="reset" value="Изчисти" />
</form><br /></div>

Това е чистия код, трябва ми следното:
* Когато даден човек не е регистриран във форума (phpbb3) - да не може да пише в чатбокса, тоест полето за ник, да не му се показва.
 
<?php
if ($user->data['user_id'] == ANONYMOUS)
{
echo "Трябва да си регистриран за да пишеш в чата."
}

else
{
$chatusername = $user->data['username'];
$submitbutton = '<input type="submit" name="submit" value="Добави" />';
}

?>
<div align="center">
<form action="" method="post">
Име:
<br /><input type="text" name="nick" value="<?php echo $chatusername; ?>" readonly="readonly" />
<br />
Съобщение:
<br /><textarea name='message' rows='3' id='styled' cols='18'></textarea><br />
Въведете кода: <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;
?>
<input type="reset" value="Изчисти" />
</form><br /></div>
 
PHP:
<?php
if ($user->data['user_id'] == ANONYMOUS)
{
echo "Трябва да си регистриран за да пишеш в чата.";
}

else
{
$chatusername = $user->data['username'];
$submitbutton = '<input type="submit" name="submit" value="Добави" />';
}

?>
<div align="center">
<form action="" method="post">
Име:
<br /><input type="text" name="nick" value="<?php echo $chatusername; ?>" readonly="readonly" />
<br />
Съобщение:
<br /><textarea name='message' rows='3' id='styled' cols='18'></textarea><br />
Въведете кода: <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;
?>
<input type="reset" value="Изчисти" />
</form><br /></div>
 
пак същата работа, нишо не се променя, полето за ник си седи, но не може да се пише заради readonly.
бутона за submit също си седи.
Абсолютно същата работа е и когато си регистриран.
 
Еми направи една проверка ако не е регистриран да не показва формата.Ако е регистриран да излиза полето.
 
Еми как да я направя, не съм специалист в тая област, проверките са следните:

if ($user->data['user_id'] == ANONYMOUS) - ако е гост (нерегистриран)
if($user->data['is_registered']) - ако е регистриран
$user->data['username'] - взима потребителското име от регистрацията
 
Не знам как работи точно phpbb...
PHP:
if($_SESSION['is_registered'])
{
echo 'за регистрираните.';
}
else 
{
echo 'за не регистрираните.';
}
 
Код:
<?php
if($_SESSION['is_registered'])
{
echo '
<div align="center">
<form action="" method="post"> 
Име:
<br /><input type="text" name="nick" />
<br /> 
Съобщение:
<br /><textarea name="message" rows="3" cols="18"></textarea><br />
Въведете кода: <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="Добави" />
<input type="reset" value="Изчисти" />
</form><br /></div>.';
}
else 
{
echo 'Регистрирай се!';
}
?>
Направих го така, когато си нерегистриран (не логнат) не ти я показва, когато си регнат пак не ти я показва...
 
Не ползвай.

if($_SESSION['is_registered'])

Горе на първия код проверка та ти е друга където си дал.

if ($user->data['username'])
 
PHP:
<?php
    if ($user->data['user_id'] == ANONYMOUS)
        {
    
echo ' Здравейте '; 
        }
        else
        {
    echo '
<form action="" method="post"> 
<input type="text" name="nick" /> 
<textarea name="message" rows="3" cols="18"></textarea>
<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> 
<input type="text" name="kod" />
<input type="submit" name="submit" value="Добави" /> 
<input type="reset" value="Изчисти" /> 
</form>';


}

if (isset($_POST['submit'])) {
$avtor = htmlspecialchars(addslashes($_POST['nick']));
$comment = htmlspecialchars(addslashes($_POST['message']))
if ($avtor == NULL || $comment == NULL) { 
echo "Моля попълни полетата!";
} else {

$sql = "INSERT INTO ТАБЛИЦАТА (nick, comment) VALUES ('$avtor','$comment')";
mysql_query("SET NAMES utf8");
mysql_query($sql) or die (mysql_error());

}
$query = "SELECT * FROM ТАБЛИЦА"; 
$result = mysql_query($query) or die('Грешка объркали сте selecta');
while($row = mysql_fetch_array($result)) 
{ 
echo ''.$row['nick'].''.$row['comment'].''; 
} 
?>

Само си попълни таблиците.
 
На мен ми се върти нещо такова в главата:
Код:
<?php
if ($user->data['user_id'] == ANONYMOUS) {
	print "Моля, регистрирай се!";
} elseif($user->data['is_registered']) : ?>
	<div align="center">
		<form action="" method="post"> 
			Име:<br /><input type="text" name="nick" /><br /> 
			Съобщение:<br /><textarea name="message" rows="3" cols="18"></textarea><br />
			Въведете кода: <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="Добави" />
				<input type="reset" value="Изчисти" />
		</form><br />
	</div>
<?php endif; ?>

Опитай! Съществената промяна е, че вместо само else съм направил проверката дали е регистриран... Ако не стане по нито един от посочените варианти, според мен трябва да се търси някаква грешка в сесиите.
Поздрави!
 
А какво има на 5-ти ред? :) Формата ли започва от началото на страницата, или...?
Поздрави!
 

Back
Горе