Имам проблем със системка за стени в профилите..?

streleca_stz

Registered
Хеей! Реших да си напиша система за стени в профилите на сайта ми, обаче се запънах на един проблем... Когато някой иска да отговори на даден пост страницата само се рефрешва и нищо не става.. И не мога да открия от къде идва проблема.. Ето как извършвам проверките и т.н. за добавянето на отговора:
PHP:
			if($_POST['addAnswer']==1)
			{
				$err_array = array();
				$wall_id = $_POST['wall_id'];
				$author = $_SESSION['user_info']['user_id'];
				$answer = addslashes(htmlspecialchars($_POST['wall_answer']));
				if($answer == 0)
				{
					$err_array['short_answer'] = '<center><b class="nothing">Отговора ви е твърде кратък!</b></center>';
				}
				if($answer > 6000)
				{
					$err_array['long_answer'] = '<center><b class="nothing">Отговора ви е твърде дълъг!</b></center>';
				}
				if(count($err_array)==0)
				{
					mysql_query('INSERT INTO `users_wall_answers` (wall_id,user_id,answer,date) VALUES ("'.$wall_id.'","'.$author.'","'.$answer.'","'.time().'")') or die (mysql_error());
				}
			}
Ето и как извеждам постовете + отговорите:
PHP:
			$rs = mysql_query('SELECT users_wall.wall_id, users_wall.user_id, users_wall.message, users_wall.date, users.username, users.avatar, users.rank FROM `users_wall` INNER JOIN `users` ON users_wall.user_id = users.user_id WHERE users_wall.user_wall_id='.$user_id.' ORDER BY wall_id DESC') or die (mysql_error());
				while($wall = mysql_fetch_assoc($rs))
				{
					echo '
				<div class="wall">
					<div class="left">
						<div class="wall_avatar">
							<a href="userID.php?id='.$wall['user_id'].'" title="Профила на '.$wall['username'].'"><img src="'.$wall['avatar'].'" style="border: 1px solid #000;" width="60px" height="60px" alt="avatar" /></a>
						</div>
					</div>
					<div class="right">
						<div class="wall_post">
							<b><a href="userID.php?id='.$wall['user_id'].'" title="Профила на '.$wall['username'].'">'.$wall['username'].'</a></b>';
							if($_SESSION['user_info']['user_id']==$user['user_id'])
							{
								echo '<span class="right" style="margin: 0 5px 0 0;"><a href="deleteWall.php?id='.$wall['wall_id'].'">Изтрий</a></span><span style="clear: right;"></span>';
							}
							echo'
								<p>'.bbcode($wall['message']).'</p>
							<span>'.date("d M Y, H:i", $wall['date']); 
							if($error_array['short_answer']) {echo $error_array['short_answer'];} if($error_array['long_answer']) {echo $error_array['long_answer'];}
					if($_SESSION['is_logged']===true)
					{
						echo ' -
						<script type="text/javascript">
							function comment'.$wall['wall_id'].'() {
							$("#com'.$wall['wall_id'].'").slideToggle("slow");
							}
						</script>
							<a href="javascript: void(0);" onClick="comment'.$wall['wall_id'].'()">Коментар</a>
							</span>
							<div id="com'.$wall['wall_id'].'" style="display: none; border-top: none; text-align: left;">
							<center>	
								<form method="post" action="">
									<textarea type="text" cols="50" rows="2" name="wall_answer"></textarea><br />
									<input type="submit" class="button_reg" value=" ДОБАВИ КОМЕНТАРА " />
									<input type="hidden" name="wall_id" value="'.$wall['wall_id'].'" />
									<input type="hidden" name="addAnswer" value="1" />
								</form>
							</center>
							</div>';
					}
						$q = mysql_query('SELECT users_wall_answers.wall_id, users_wall_answers.user_id, users_wall_answers.answer, users_wall_answers.date, users.username, users.avatar, users.rank FROM `users_wall_answers` INNER JOIN `users` ON users_wall_answers.user_id = users.user_id WHERE users_wall_answers.wall_id='.$wall['wall_id'].' ORDER BY wall_answer_id DESC') or die (mysql_error());
						while($answer = mysql_fetch_assoc($q))
						{
							echo '
							<div class="answer">
								<div class="left" style="margin-right: 5px;">
									<img src="'.$answer['avatar'].'" width="32px" style="border: 1px solid #000;" height="32px" alt="avatar" />
								</div>
								<div class="left"><a href="userID.php?id='.$answer['user_id'].'"><b>'.$answer['username'].'</b></a>: '.bbcode($answer['answer']).'<br /><span>'.date('d M Y, H:i',$answer['date']).'</span></div>
								<div style="clear: left;"></div>
							</div>';
						}
				echo'	</div>
					</div>
					<div style="clear: both;"></div>
				</div>
					';
				}
Ако някой може да ми помогне (от няколко дена много ми помагате) да пише (:
 
Още в началото на кода като тръгнах да го чета намерих грешчици :)

PHP:
 $answer = addslashes(htmlspecialchars($_POST['wall_answer']));
                                if($answer == 0)
Това в момента означава, че когато $answer e равно на 0 тогава да изведе грешка, ако искаш да провериш за броя символи се използва strlen(), и ще стане strlen($answer) == 0, същото важи и за долния if.

Също така не е нужно да правиш
PHP:
 <input type="hidden" name="addAnswer" value="1" />
а може просто на бутона да си сложиш един name, тоест да стане така
PHP:
<input type="submit" name="submit" class="button_reg" value=" ДОБАВИ КОМЕНТАРА " />

и вместо
PHP:
if($_POST['addAnswer']==1)

пишеш
PHP:
if(isset($_POST['submit'])
 
oveRLuckEd каза:
Още в началото на кода като тръгнах да го чета намерих грешчици :)

PHP:
 $answer = addslashes(htmlspecialchars($_POST['wall_answer']));
                                if($answer == 0)
Това в момента означава, че когато $answer e равно на 0 тогава да изведе грешка, ако искаш да провериш за броя символи се използва strlen(), и ще стане strlen($answer) == 0, същото важи и за долния if.

Също така не е нужно да правиш
PHP:
 <input type="hidden" name="addAnswer" value="1" />
а може просто на бутона да си сложиш един name, тоест да стане така
PHP:
<input type="submit" name="submit" class="button_reg" value=" ДОБАВИ КОМЕНТАРА " />

и вместо
PHP:
if($_POST['addAnswer']==1)

пишеш
PHP:
if(isset($_POST['submit'])

Ух, че съм проост.. от бързане да си довърша сайта и какви глупави грешки отново и отново допускам :) Мерси все пак!

А относно невидимия input - знам, че може и така, но просто съм свикнал да го правя така.. А и са ми казвали, че по моя начин било по-добре.. (:
 

Back
Горе