Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Найдите ошибку у меня коментарий не добовляет(
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Найдите ошибку у меня коментарий не добовляет(

Страниц (1): [1]
 

1. console - 03 Мая, 2011 - 15:06:07 - перейти к сообщению
add_coments.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         include "../includes/functions.php";
  3.         db_connect();
  4.  
  5.         $post_id = $_POST['post_id'];
  6.         $name = $_POST['name'];
  7.         $email = $_POST['email'];
  8.         $site = $_POST['site'];
  9.         $comment = $_POST['comment'];
  10.         $ip = remote_addr();
  11.  
  12.         mysql_query ("INSERT INTO comments VALUES (0, $post_id, '$name', '$email', '$site', '$comment', '$ip', now(), 0);") or die (mysql_error());
  13.  
  14.         $str = mysql_fetch_array (mysql_query ("SELECT * FROM posts WHERE id=$post_id;"));
  15.         header ("location: /".$str['url'].".html");
  16. ?>
  17.  


<?php

functions.php

PHP:
скопировать код в буфер обмена
  1. // Функция коннекта к БД
  2. function db_connect (){
  3.         $host = "localhost";
  4.         $user = "root";
  5.         $password = "root";
  6.         $dbname = "myblog";
  7.  
  8.         mysql_connect ($host, $user, $password) or die (mysql_error());
  9.         mysql_select_db ($dbname) or die (mysql_error());
  10. }
  11.  
  12. function remote_addr(){
  13.   static $param = array ('REMOTE_ADDR', 'X_FORWARDED_FOR', 'X_LOCAL_FORWARDED_FOR');
  14.   $ip = "";
  15.   for ($i = 0; $i < count ($param); $i++)
  16.     if ( isset ($_SERVER[$param[$i]]) && strpos ($ip, $_SERVER[$param[$i]]) === false )
  17.     {
  18.       if ( strlen ($ip . $_SERVER[$param[$i]]) > 253 ) break;
  19.       else $ip .= (( $ip == "" ) ? "" : ", " ) . $_SERVER[$param[$i]];
  20.     }
  21.   return $ip;
  22. }
  23.  
  24. function show_category(){
  25.         $q = mysql_query ("SELECT *, id AS cid, (SELECT COUNT(id) FROM posts WHERE category=cid) AS count FROM category;");
  26.         if (mysql_num_rows ($q) <= 0) echo ("Пусто.");
  27.  
  28.         while ($str = mysql_fetch_array ($q)){
  29.                 echo "<a href=\"/category/".$str['url']."/\">".$str['title']."</a> (".$str['count'].")<br>";
  30.         }
  31. }
  32.  
  33. function show_content(){
  34.         if (empty ($_GET['post']))
  35.                 show_category_post();
  36.         else
  37.                 show_post();
  38. }
  39.  
  40. function show_category_post(){
  41.         if (!empty ($_GET['category'])){
  42.                 $str = mysql_fetch_array (mysql_query ("SELECT * FROM category WHERE url='".$_GET['category']."';"));
  43.                 $where = "WHERE category=".$str['id'];
  44.         }
  45.  
  46.         $q = mysql_query ("SELECT *, DATE_FORMAT(dt, '%H:%i %d.%m.%Y') AS dt2 FROM posts $where ORDER BY dt DESC;") or die (mysql_error());
  47.         if (mysql_num_rows ($q) <= 0) echo ("Пусто.");
  48.  
  49.         while ($str = mysql_fetch_array ($q)){
  50.                 echo "<h2><a href=\"/".$str['url'].".html\">".$str['title']."</a></h2>";
  51.                 echo "<font size=2>Написано: ".$str['dt2']."</font><br><br>";
  52.                 echo nl2br($str['post']);
  53.                 echo "<hr><br>";
  54.         }
  55. }
  56.  
  57. function show_comments($id){
  58.         $q = mysql_query ("SELECT * FROM comments WHERE post_id=$id AND moderation=1;") or die(mysql_error());
  59.         if (mysql_num_rows($q) <= 0) echo "Нет комментариев.<br><br>";
  60.         while ($str = mysql_fetch_array ($q)){
  61.                 $str['site'] = str_replace ("http://", "", $str['site']);
  62.                 $str['site'] = "http://".$str['site'];
  63.                 echo "Добавил: <a href=\"".htmlspecialchars(trim($str['site']))."\">".htmlspecialchars(trim($str['id']))."</a><br>";
  64.                 echo htmlspecialchars(trim($str['comment']))."<hr>";
  65.         }
  66.  
  67.         ?>
  68.         <hr>Добавление комментария:<br>
  69.         <form action="/do/add_comment.php" method="post">
  70.                 Имя: <input type="text" name="name"><br>
  71.                 Почта: <input type="text" name="email"><br>
  72.                 Сайт: <input type="text" name="site"><br>
  73.                 Комментарий:<br> <textarea name="comment" cols="60" rows="6"></textarea><br>
  74.                 <input type="hidden" name="post_id" value="<?PHP echo $id; ?>">
  75.                 <input type="submit" value="Комментировать">
  76.         </form>
  77.         <?PHP
  78. }
  79.  
  80. function show_post(){
  81.         $post = $_GET['post'];
  82.  
  83.         $q = mysql_query ("SELECT *, DATE_FORMAT(dt, '%H:%i %d.%m.%Y') AS dt2 FROM posts WHERE url='$post';") or die (mysql_error());
  84.         if (mysql_num_rows ($q) <= 0) echo ("Пусто.");
  85.         $str = mysql_fetch_array ($q);
  86.  
  87.         echo "<h2>".$str['title']."</h2>";
  88.         echo "<font size=2>Написано: ".$str['dt2']."</font><br><br>";
  89.         echo nl2br($str['post'])."<br><hr><br>";
  90.         echo "<b>Комментарии:</b><br><br>";
  91.  
  92.         show_comments ($str['id']);
  93. }
  94. ?>
2. Mr.KreDo - 03 Мая, 2011 - 15:11:39 - перейти к сообщению
Ошибку пишет ? или вообще не чего не пишет ?
3. vlom - 03 Мая, 2011 - 17:12:31 - перейти к сообщению
напиши какую выдает ошибку это рас
в файле functions.php где <?PHP это 2
и третье в add_coments.php нахрена на 14 строке лишний дапрос к бд, ведь всеровано ни чего не делаешь с полученными данными и вывода не будет, так как сразу после этого стоит переадресация, так что советую удалить эту строку
(Добавление)
стоп немного не доглядел, вижу где используется запрос =)))))
4. console - 03 Мая, 2011 - 17:54:10 - перейти к сообщению
Ошибку не пишет вот я добавил сообщение, и оно не добовляеться
5. vlom - 03 Мая, 2011 - 18:03:58 - перейти к сообщению
попробуй переписать запрос для вставки след образом
INSERT INTO ИмяТаблицы SET ИмяПоля1='зн1', ИмяПоля2= 'зн2 ', . . .
6. console - 03 Мая, 2011 - 18:12:37 - перейти к сообщению
vlom, я в это не огч разбираюсь( у тебя есть ася?
7. molchun201 - 03 Мая, 2011 - 18:31:39 - перейти к сообщению
грязный код, очень Хм

почитайте "Чистый код" Р.Мартина и пр. подобные книги
PS пользуйтесь докой, там код хоть читабельный и пишите как там Подмигивание
а то слишком много грязи в последнее время выливается Огорчение
8. console - 03 Мая, 2011 - 18:37:47 - перейти к сообщению
molchun201, То что ты щас написла ты мне не чем не помог лол Нахмурился
9. molchun201 - 03 Мая, 2011 - 19:08:41 - перейти к сообщению
console пишет:
molchun201, То что ты щас написла ты мне не чем не помог лол

критику нада уметь воспринимать, иначе бан Улыбка Язычок
10. Shtorm_sai - 06 Мая, 2011 - 07:48:03 - перейти к сообщению
Поля напиши какие в бд.

 

Powered by ExBB FM 1.0 RC1