За последние 24 часа нас посетили 22877 программистов и 1314 роботов. Сейчас ищут 540 программистов ...

Не срабатывает форма комментариев.

Тема в разделе "PHP для новичков", создана пользователем Максим коробкин, 16 дек 2010.

  1. Максим коробкин

    Максим коробкин Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    20
    Симпатии:
    0
    Здравствуйте. Создаю свой первый "пхп"-сайт. Как основным вспомогательным материалом пользуюсь видеокурсом. К своему стыду, уточню - "пиратским". По этой причине не могу воспользоваться службой технической поддержки этого курса. Вынужден искать помощи на стороне.
    Так вот. Сайт почти готов. Осталось разместить на нем форум и комментарии на некоторых страницах. На комментах я и застрял. Подскажите, если я не ошибаюсь, с помощью Notepad++ можно выложить на вашем форуме ПРОНУМЕРОВАННЫЙ код? Если да, то что изменить в настройках? У меня что-то не получается. А без номеров строк, наверно, нет смысла его выкладывать.
    Очень надеюсь на вашу помощь. Заранее благодарю.
     
  2. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    1.Копируй свой код откуда угодно хоть с блакнота и вставляй на форум.
    2. Далее выделенный код берешь и обрамляешь ( т.е. тыкаешь на кнопку php). Принцип как с цитатами.
    PHP:
    1.  
    3. Нажимешь отправить.
    4. Получишь готовый пронумерованный код.


    PHP:
    1. <?php
    2. ini_set('display_errors',1);
    3.  
    4. $d=file('http://wwwwwwwww');
    5.  
    6.  
    7. foreach ($d as $key =>$value)
    8. {
    9. echo "$key $value";
    10. }
    11.  
    12. ?>
     
  3. shurastik

    shurastik Активный пользователь

    С нами с:
    22 фев 2008
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Латвия
    мммм... Попова?

    BB-код "PHP" сам пронумерует
     
  4. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    надо немного по другому:
    )))))))))))))))

    каким образом ты достаёшь учебный материал, по большому счёту тут никого не волнует.
    лишь бы материал был хороший и грамотный, тогда задаваемые вопросы будут нормальными,
    на которые интересно ответить, а не тупыми, какие зачастую бывают после видеокурсов Попова.
     
  5. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Давно уже надо было свои курсы выпустить, спросить только у Psih'a в каком порядке надо преподавать, открыть ветку и выкладывать туда текст и листинги, озвучивать позовем кого нибудь из секса по телефону :D
     
  6. Максим коробкин

    Максим коробкин Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    20
    Симпатии:
    0
    Не важно чей курс))) Проблема в следующем. (кстати спасибо за подсказки!)
    Страница создана. Форма комментариев тоже. В браузере все выглядит не плохо. Начинаю для формы создавать экшн. Прописываю первое условие - если не заполнено какое либо поле - необходимо вернуться назад и повторить ввод имени и самого коммента. Делаю все, вроде, по инструкции. Проверяю - жму кнопку - никакой реакции.
    Все проверил-перепроверил - ошибку ни как не найду! Я ж не чайник, даже, а кипятильник!))) Так что ничего удивительного. А потому очень нуждаюсь в помощи.
    Вот код страницы:

    PHP:
    1.  <?php
    2. include ("blocks/db.php");/*соединение с базой данных*/
    3. if (isset($_GET['id'])) {$id = $_GET['id'];}
    4.  
    5. $result = mysql_query ("SELECT * FROM lessons WHERE id='$id'",$db);
    6. $myrow = mysql_fetch_array ($result);
    7. $new_view = $myrow["view"] + 1;
    8. $update = mysql_query ("UPDATE lessons SET view='$new_view' WHERE id='$id'",$db);
    9.  
    10. ?>
    11.  
    12.  
    13.  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    14. <html>
    15. <head>
    16. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    17.  
    18. <meta name="description" content="<?php echo $myrow['meta_d']; ?>" />
    19. <meta name="keywords" content="<?php echo $myrow['meta_k']; ?>" />
    20.  
    21. <title><?php echo $myrow['title']; ?></title>
    22. <link href="style.css" rel="stylesheet" type="text/css" />
    23. <!--скрипт дайтбокс-->
    24. <script type="text/javascript" src="js/prototype.js"></script>
    25. <script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
    26. <script type="text/javascript" src="js/lightbox.js"></script>
    27. <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
    28.  
    29. </head>
    30.  
    31. <body>
    32. <table width="1000" border="0" align="center" cellpadding="0" cellspacing="0" class="big_table">
    33.   <!--шапка-->
    34.   <?php include ("blocks/header.php"); ?>
    35.   <!--середина-->
    36.   <tr>
    37.   <!--левая колонка-->
    38.    <?php include ("blocks/left.php");?>
    39.     <!--контент-->
    40.     <td valign="top"><table width="700" border="0" cellspacing="0" cellpadding="0">
    41.    
    42.   <!--текст урока-->
    43.   <tr><td>
    44.     <?php echo $myrow['text'];?>
    45.   </td></tr>
    46.   <!--комментарии к уроку-->
    47.   <tr>
    48.     <td colspan="2">
    49.      
    50.       <?php
    51.           echo "<p class='comments'>Комментарии к этому уроку:</p><br/>";
    52.           $result3 = mysql_query ("SELECT* FROM comments WHERE post ='$id'",$db);
    53.           if (mysql_num_rows($result3) > 0)
    54.           { $myrow3 = mysql_fetch_array ($result3);
    55.          
    56.           do {
    57.                printf("<div class='comments_div'><p class='comments_add'>Комментарий добавил(а): <strong>%s</strong>
    58.                <p class='comments_add'>Дата: <strong>%s</strong></p></p>
    59.                <p class='comments_text'>%s</p></div>",$myrow3["author"],$myrow3["date"],$myrow3["text"]);
    60.               }
    61.           while ($myrow3 = mysql_fetch_array ($result3));
    62.          }
    63.          $result4 = mysql_query ("SELECT img FROM comments_setting",$db);
    64.          $myrow4 = mysql_fetch_array ($result4);
    65.      ?>
    66.      
    67.      <p class='comments'>Добавить ваш комментарий:</p>
    68.    
    69.      <form action="comment.php" method="post" name="form_com">
    70.      <p><label>Ваше имя: </label><input name="author" type="text" size="40" maxlength="30"></p>
    71.      <p><label>Текст комментария:<br/><textarea name="text" cols="39" rows="4" class="text_area"></textarea></label></p>
    72.      <p>Введите сумму чисел с картинки</p>
    73. <table width="90%">
    74.   <tr>
    75.     <td width="19%"><img src=<?php echo $myrow4["img"] ?> width="80" height="40" align="right" ></td>
    76.     <td width="81%"><input  style="margin-left:1px;" name="pr" type="text" value="" size="2"></td>
    77.   </tr>
    78. </table>
    79.      <input name="id" type="hidden" value="<?php echo $id; ?>">
    80.      <p><input name="sub_com" type="button" value="Комментировать"></p>
    81.      </form>
    82.      
    83.      
    84.      </td></tr>        
    85.  
    86.    <tr>
    87.    <td colspan="2"><hr color="#a18435" width="400px" /></td>  
    88.    </tr>
    89.    
    90.      <tr>
    91.      <td colspan="2"><a href="uroky.php"><img src="img/na_glavnuu.jpg" width="100" height="40" border="0" class="na_glavnuu" ></a></td>
    92.      </tr>
    93.    
    94.  
    95. </table>
    96. </td>
    97.     <!--правая колонка-->
    98.    <?php include("blocks/right.php");?>
    99.   </tr>
    100.   <!--подвал-->
    101.   <?php include("blocks/footer.php");?>
    102. </table>
    103. </body>
    104. </html>
    А вот экшн:

    PHP:
    1. <?php
    2. include ("blocks/db.php");/*соединение с базой данных*/
    3. if (isset ($_POST['author']))
    4. { $author = $_POST['author'];}
    5.  
    6. if (isset ($_POST['text']))
    7. { $text = $_POST['text'];}
    8.  
    9. if (isset ($_POST['pr']))
    10. { $pr = $_POST['pr'];}
    11.  
    12. if (isset ($_POST['cub_com']))
    13. { $cub_com = $_POST['cub_com'];}
    14.  
    15. if (isset ($_POST['id']))
    16. { $id = $_POST['id'];}
    17.  
    18.  
    19. if (isset($sub_com))
    20. {
    21.   if (isset($author)) {trim($author);}
    22.   else {$author = "";}
    23.  
    24.   if (isset($text)) {trim($text);}
    25.   else {$text = "";}
    26.  
    27.   if (empty($author) or empty($text))
    28.   {
    29.       exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля.<br/><input name='back' type='button' value='Вернуться назад'>onclick='javascript:self.back();'</p>");
    30.    }
    31.  
    32.   }
    33.  
    34. ?>
    Очень хочется надеяться, что кто-нибудь в этом разберется!)))))) Спасибо!
     
  7. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    "мама роди меня обратно" (c) :DD
    по коду видно чей курс
    http://phpfaq.ru/debug
     
  8. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    do...while придает поповским курсам специфический вкус)))
     
  9. Максим коробкин

    Максим коробкин Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    20
    Симпатии:
    0
    спасибо за комментарии(((...Использую что имею... По-крайней мере "с нуля" начал и есть прогресс. А высокомерные ехидности я и сам выдавать умею. На сколько я помню, речь идет о помощи, а не Попове.
     
  10. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    А что - кто то из утробы матери вылазит с php-manual в голове?
    Все начали с нуля.

    Максим коробкин

    Без обид, ты ими (курсами) только голову засираешь. Выкинь диск в окно, купи книгу. На форуме есть целый раздел, посвященный литературе.

    По поводу поиска ошибки - Padaboo тебе верную ссылку дал. Хотя бы прочитал!

    Еще подскажу - для начала, в самой верхней строке своего экшна, после <?php напиши echo('hello');die();

    Таким образом удостоверишься, что при выполнении скрипта ты хотя бы попадаешь в этот файл. Потом вырезаешь echo('hello');die(); и переносишь - ставишь после следующей команды. Таким образом ты найдешь на какой строке выполнение прервется(там где на экран не выведется hello)

    Удачи.
     
  11. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1) У кнопки должен быть type="submit"
    В строке 80:
    HTML:
    1.  
    2. <input name="sub_com" type="submit" value="Комментировать">
    3.  
    2) раз ты только начинаешь программировать, то научись сначала работать с простыми формами, т.е. минимум кода безо всяких javaScript, include,hidden, captcha( Введите сумму чисел с картинки) и поменьше HTML кода.
    Сделай просто форму добавления комментариев - должны быть только поля из твоей таблицы+ кнопка типа submit
    Сделай все это в одном файле - подсоединение в базе данных, вывод и обработку формы
     
  12. Максим коробкин

    Максим коробкин Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    20
    Симпатии:
    0
    Дело в том, что по книгам учиться у меня не очень получается(( Когда вижу незнакомые значки-переменные-формулы, меня дрожь нервная бить начинает)))) Гуманитарий я... Точные науки всегда для меня проблемой были. А видеокурсы просто визуально воспринимаются лучше. Хоть что-то понимаю. Повторюсь. Но определенных результатов я все-таки добился. В глазах жены, так я вообще - гений компьютерный)))))))
    Ссылку я сейчас изучаю. Не совсем понял куда вставлять
    ini_set('display_errors',1);
    error_reporting(E_ALL);
    Попробую сначала твоим советом воспользоваться. Тут хотя бы понимаю о чем идет речь. Спасибо.
     
  13. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    А вот эта ситуация хорошо описана в книге Р.Трахтенберга (rip) "Путь самца". Когда талантливому парню (артисту) похвала жены мешала развиваться. Т.е. даже после неудачных выступлений - она говорила, что он самый лучший, что критики ничего не понимают и т.п. В результате он себя чувствовал лучшим и не видел смысла в развитии.
    Так что аккуратнее))))

    А зачем тогда вообще пытаешься этому научиться? Цель? (если не секрет, просто интересно:))

    Это так, но в курсах Попова
    1)множество ошибок
    2)неправильный подход к программированию в целом.

    Они тебя скорее испортят, чем обучат.
     
  14. Максим коробкин

    Максим коробкин Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    20
    Симпатии:
    0
    Кстати! Подскажите пожалуйста, что означает такой вот значок
    п»ї
    в верхнем левом углу экрана?


    Исправил. Теперь меня хотя бы на страницу экшена перекидывает.
    Воспользовался методом "hello" который подсказал tommyangelo. На строке 18 надпись еще появляется, а ниже уже нет.
    Сижу, тупо на код пялюсь. Вроде все условия, идущие ниже, даже мне понятны.
    Получается, что он (сервер?комп?) переменную $sub_com не видит? Или всю эту функцию, идущую ниже?
     
  15. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    это BOM.

    Если пишешь в Notepad++ сохраняй в кодировке UTF-8 без BOM

    if (isset($sub_com)) - проверяется, установлена ли переменная $sub_com

    В свою очередь
    if (isset ($_POST['cub_com'])) - она устанавливается если установлена переменная $_POST['cub_com']

    Получается если $_POST['cub_com'] (т.е. поле на форме не заполнено), то все что идет за проверкой if (isset($sub_com)) не выполняется.
     
  16. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    Максим коробкин

    Раз ты сюда попадаешь-Убери этот код
     
  17. Максим коробкин

    Максим коробкин Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    20
    Симпатии:
    0

    Да я же наоборот над ситуацией прикалываюсь. Тут гордыней и не пахнет.

    Уже год как на инвалидности дома сижу.(мне 39) Копался в и-нете в поисках домашнего приработка. Среди прочего, наткнулся на тему всевозможных заработков с помощью сайтов. Верится с трудом, если честно. Просто увлекся, состряпал простой сайт в "хтмл". Понравилось. Выложил в сети. Знакомые одобрили. Но полноценным сайт все-равно без "пхп" не получится. Вот и взрываю себе мозг потихоньку. Хочу доделать до конца. В конце-концов просто мне нравится этим заниматься!
     
  18. Максим коробкин

    Максим коробкин Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    20
    Симпатии:
    0

    Пишу в "дримвивере" Там ВОМ отключен. А кодировка у меня windows кириллица стоит.
     
  19. Максим коробкин

    Максим коробкин Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    20
    Симпатии:
    0
    Это я примерно понимаю.
    Я вот думаю. Может убрать проверку кнопки. Оставить только проверку заполнения полей?
     
  20. Максим коробкин

    Максим коробкин Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    20
    Симпатии:
    0
    То есть оставить строчку 27 и все что ниже, а 19-25 вырезать?
     
  21. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Вот то что ты написал
    - это BOM)))

    Желаю удачи в освоении. Просто мне кажется, что работа должна приносить удовольствие, а не только деньги. Если дается с трудом - может имеет смысл изменить её?

    В твоей ситуации - если гуманитарий и есть склонность к языкам можно например выучить китайский :) Достаточно востребованная вещь, учитывая китайскую экономическую экспансию. Можно будет потом переводить документацию на дому.

    И вообще, если писать нравится - можно заниматься копирайтом или рерайтом статей.

    В общем - выход есть всегда :)

    Удачи.
     
  22. Максим коробкин

    Максим коробкин Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    20
    Симпатии:
    0
    После Нового Года займусь этой темой плотнее. Тут тоже надо знать с чего начинать. А сайт не для денег. Нравится мне просто это дело)))))))
     
  23. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    нет.
    PHP:
    1. <?
    2. include ("blocks/db.php");
    3. if (isset($_POST['cub_com']))
    4. {
    5.   if (isset ($_POST['author']))
    6.  { $author = mysql_real_escape_string(trim($_POST['author']));}
    7. if (isset ($_POST['text']))
    8.  { $text= mysql_real_escape_string(trim($_POST['text']));}
    9. if (isset ($_POST['id']))
    10.  { $id = (int)($_POST['id']);}
    11. if (isset ($_POST['pr']))
    12.  { $pr= mysql_real_escape_string(trim($_POST['pr']));}
    13.  if (empty($author) or empty($text))
    14.    {
    15.         exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля.<br/><input name='back' type='button' value='Вернуться назад'>onclick='javascript:self.back();'</p>");
    16.    }
    17. }
    18. else
    19. {
    20.     die('Напрямую этот файл недоступен');
    21. }
    И как уже сказал runner вместо <input name="sub_com" type="button" value="Комментировать"> должно быть <input name="sub_com" type="submit" value="Комментировать">
     
  24. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Не так давно я консультировал по скайпу человека (не по вопросам РНР). Он программист, знает прекрасно С++, ASM, C (without classes), сейчас учит РНР. У парня замечательная работа, девушки.
    Но восхищаться я стал тогда, когда узнал, что он от рождения слепой!
    Ещё раз убедился, что главное - ХОТЕТЬ. Гуманитарий ты или нет, есть у тебя возможности или нет - ты идешь к тому, чего ты хочешь. Курсы Попова - это не то, что следует считать точкой отсчета. Максимум на что они тянуть - похвастаться перед женой. Всё.
     
  25. Максим коробкин

    Максим коробкин Активный пользователь

    С нами с:
    16 дек 2010
    Сообщения:
    20
    Симпатии:
    0
    Если честно - не совсем вкурил))) Подсоединение, вывод и обработка у меня разве не в отдельном файле?(экшн)