За последние 24 часа нас посетили 38243 программиста и 1722 робота. Сейчас ищут 610 программистов ...

почему на денвере нет ошибок, а на хостинге Resource id #8

Тема в разделе "PHP для новичков", создана пользователем iracwet, 20 авг 2014.

  1. iracwet

    iracwet Новичок

    С нами с:
    21 янв 2014
    Сообщения:
    24
    Симпатии:
    0
    На сранице вывода статей хотелось добавить комментарии. Комментарии выводятся, а сообщения из строк
    Код (Text):
    1. if(empty($name)) $error .= '<p>Вы не представились!</p>';
    2.     if(empty($text)) $error .= '<p>Вы не прокомментировали!</p>';
    3.     if($_POST['aspam'] == 'on') $error .= '<p>Вы робот!</p>';
    и
    Код (Text):
    1. if(mysql_affected_rows() > 0){
    2.             $_SESSION['res'] = '<p><strong>Спасибо!</strong></p>';
    3.             header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res");
    4.             exit();
    5.         }else{
    6.             $_SESSION['res'] = '<p><strong>Ошибка! Попробуйте позже</strong></p>';
    7.             header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res");
    8.             exit();
    9.         }
    10.     }else{
    11.         $_SESSION['res'] = '<p><strong>Ошибка заполнения формы: </strong></p>'.$error;
    12.         $_SESSION['name'] = $name;
    13.         $_SESSION['text'] = $text;
    14.         header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res");
    15.         exit();
    16.     }
    не выводятся, и под формой добавления комментов Resorse id#8 / На денвере все выводилось и работало, на хостинге нет. Вот сам файл
    Код (Text):
    1. <?php
    2. header("Content-Type:text/html;charset=UTF-8");
    3. session_start();
    4. include "config.php";
    5. include "functions.php";
    6.  
    7. db(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
    8.  
    9. $staty_id = (int)$_GET['staty_id'];
    10. $res_staty = mysql_query("SELECT `title`,`keywords`,`description`,`content` FROM `staty` WHERE `staty_id` = ".$staty_id." LIMIT 1") or die( mysql_error() );
    11.  
    12. $row_staty = mysql_fetch_assoc($res_staty);
    13.  
    14. if($_POST['submit']){
    15.     $name = trim(mysql_real_escape_string(mb_substr($_POST['name'],0,20,'UTF-8')));
    16.     $text = trim(mysql_real_escape_string(mb_substr($_POST['text'],0,1000,'UTF-8')));
    17.     $date_comment = date("Y-m-d");
    18.     $error = '';
    19.    
    20.     if(empty($name)) $error .= '<p>Вы не представились!</p>';
    21.     if(empty($text)) $error .= '<p>Вы не прокомментировали!</p>';
    22.     if($_POST['aspam'] == 'on') $error .= '<p>Вы робот!</p>';
    23.    
    24.  
    25. if(empty($error)){
    26.         $res = mysql_query("INSERT INTO `coments` SET
    27.                             `name`='{$name}',
    28.                             `text`='{$text}',
    29.                             `date_comment`='{$date_comment}',
    30.                             `staty_id`=".$staty_id) or die(mysql_error());
    31.                
    32.         if(mysql_affected_rows() > 0){
    33.             $_SESSION['res'] = '<p><strong>Спасибо!</strong></p>';
    34.             header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res");
    35.             exit();
    36.         }else{
    37.             $_SESSION['res'] = '<p><strong>Ошибка! Попробуйте позже</strong></p>';
    38.             header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res");
    39.             exit();
    40.         }
    41.     }else{
    42.         $_SESSION['res'] = '<p><strong>Ошибка заполнения формы: </strong></p>'.$error;
    43.         $_SESSION['name'] = $name;
    44.         $_SESSION['text'] = $text;
    45.         header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res");
    46.         exit();
    47.     }
    48. }
    49. <div id="contents">
    50.  
    51. <?php
    52. if(mysql_num_rows($res_staty) > 0){
    53.     $views = $row_staty['views'] + 1;
    54.     $res = mysql_query("UPDATE `staty` SET `views`='{$views}' WHERE `staty_id`='{$staty_id}'");
    55.     echo "<span class='view_staty'><h1>{$row_staty['title']}</h1></span>";
    56.     echo $row_staty['content'];
    57.  
    58.    
    59. }else echo "<script>alert(\'Такой статьи нет!\");</script>";
    60.  
    61. ?> 
    62.    
    63. </div> <!-- #content -->
    64.     </td>
    65.     <td valign="top">
    66.     <div id="side_bar_right">
    67.         <?php include_once "side_bar_right.php";?>
    68.         </div>
    69.         </td>
    70.    
    71.    
    72.     </tr>
    73.    
    74.     <tr>
    75. <td colspan="3">
    76. <div id="comments">
    77.     <?php
    78.  
    79.        
    80.             $res = mysql_query("SELECT `name`, `text`, `date_comment` FROM `coments` WHERE `staty_id`=".$staty_id." AND `visible`='1' ORDER BY `comment_id` ") or die(mysql_error());
    81.        
    82.        
    83.     ?>
    84.    
    85.     <h2><a name="comments"></a>Комментарии (<?php echo mysql_num_rows($res); ?>) </h2>
    86.    
    87.     <?php
    88.    
    89.         if(mysql_num_rows($res) > 0){
    90.             while($row = mysql_fetch_assoc($res)){ ?>
    91.                
    92.                 <div class="comment">
    93.                     <p class="comment_meta"><?php echo $row['date_comment']; ?> <?php echo htmlspecialchars($row['name']); ?></p>
    94.                     <p><?php echo nl2br(htmlspecialchars($row['text'])); ?></p>
    95.                 </div>
    96.                
    97.             <?php }
    98.         }else echo 'Комментариев к этой статье нет. Вы можете быть первым!';
    99.    
    100.     ?>
    101.    
    102.    
    103.  
    104.     <div class="form_comm">
    105.         <form method="post">
    106.             <table>
    107.                 <tr>
    108.                     <td>Имя: </td>
    109.                     <td><input type="text" name="name" maxlength="30" value="<?php echo htmlspecialchars($_SESSION['name']); ?>" /></td>
    110.                 </tr>
    111.                 <tr>
    112.                     <td>Комментарий: </td>
    113.                     <td><textarea name="text" cols="50" rows="5" /><?php echo htmlspecialchars($_SESSION['text']); ?></textarea></td>
    114.                 </tr>
    115.                 <tr>
    116.                     <td>Я робот: </td>
    117.                     <td><input type="checkbox" name="aspam" checked="checked" /></td>
    118.                 </tr>
    119.                 <tr>
    120.                     <td colspan="2"><input type="submit" id="but_log" name="submit" value="Добавить комментарий" /></td>
    121.                 </tr>
    122.             </table>
    123.         </form>
    124.         <a name="res"></a>
    125.         <?php
    126.         echo $_SESSION['res'];
    127.         unset($_SESSION['res']);
    128.         unset($_SESSION['name']);
    129.         unset($_SESSION['text']);
    130.         ?>
    131.     </div>
    132.    
    133. </div>
    134. <?php include_once "footer.php";?>
    135. </td>
    136. </tr>  
    137. </table>
    как исправить?
     
  2. alexforce2

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

    С нами с:
    25 дек 2013
    Сообщения:
    71
    Симпатии:
    12
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    Полностью текст ошибки скопируйте сюда, и строку кода, номер которой указан в тексте ошибки.
     
  3. iracwet

    iracwet Новичок

    С нами с:
    21 янв 2014
    Сообщения:
    24
    Симпатии:
    0
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    Так выводится просто: Resourse id#8 под формой комментариев и всё, больше никаких строк
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    отлаживай код: http://phpfaq.ru/debug
     
  5. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Код (PHP):
    1. db(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME); 
    это чего? ссылка на конект к БД чтоль? а в mysql_query где он?
     
  6. iracwet

    iracwet Новичок

    С нами с:
    21 янв 2014
    Сообщения:
    24
    Симпатии:
    0
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    включила вывод ошибок
    ini_set('display_errors',1);
    error_reporting(E_ALL ^E_NOTICE);
    на денвере выводит: Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\mysite.ru\view_article.php:2) in Z:\home\localhost\www\mysite.ru\view_article.php on line 3

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\localhost\www\mysite.ru\view_article.php:2) in Z:\home\localhost\www\mysite.ru\view_article.php on line 4

    Добавлено спустя 2 минуты 28 секунд:
    Re: почему на денвере нет ошибок, а на хостинге Resource id #8
    Код (Text):
    1. function db($host,$user,$pass,$db_name) {
    2.         $db = mysql_connect($host,$user,$pass);
    3.         if(!$db) {
    4.             exit(mysql_error());
    5.         }
    6.        
    7.         if(!mysql_select_db($db_name,$db)) {
    8.             exit(mysql_error());
    9.         }
    10.        
    11.         mysql_query("SET NAMES UTF8");
    12.     }
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    "headers already sent" говорит о том, что у тебя случился какой-то (непреднамеренный?) вывод ДО вывода заголовка/старта сессии.
    Непреднамеренным выводом могут быть сообщение об ошибке, BOM, перевод строки после последнего ?> в файле.

    Добавлено спустя 2 минуты 31 секунду:
    Re: почему на денвере нет ошибок, а на хостинге Resource id #8
    если это
    Код (PHP):
    1. <?php
    2. header("Content-Type:text/html;charset=UTF-8");
    начало того самого файла, из которого ошибка, то наверняка дело в BOM :)
    остальное всё вторично — сессия обосралась, нужных данных нет, выводится чушь.

    Добавлено спустя 2 минуты 18 секунд:
    Re: почему на денвере нет ошибок, а на хостинге Resource id #8
    3-я строка это твой header()
    а первая строка это BOM ))) ну или тупо перевод строки перед <?php — один куй
     
  8. iracwet

    iracwet Новичок

    С нами с:
    21 янв 2014
    Сообщения:
    24
    Симпатии:
    0
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    поставила кодировку без BOM все равно не помогает , эти же ошибки
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    не верю ©

    вставь вот эти строчки сразу за <?php
    Код (PHP):
    1. $self = substr(file_get_contents(__FILE__), 0, 5);
    2. foreach (str_split($self) as $c) printf('%1s (%2x) ', $c, ord($c));
    3. die();
    что выведет?
     
  10. iracwet

    iracwet Новичок

    С нами с:
    21 янв 2014
    Сообщения:
    24
    Симпатии:
    0
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    вывело < (3c) ? (3f) p (70) h (68) p (70)
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    значит нет BOM :) или BOM не здесь, а в другом файле. удали мои строки.

    есть ошибка — значит есть высер до вывода заголовка. это факт. все PHP-файлы должны быть без BOM и без ?> в последней строке
     
  12. iracwet

    iracwet Новичок

    С нами с:
    21 янв 2014
    Сообщения:
    24
    Симпатии:
    0
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    может какие-то настройки хостинга?
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    Нет.
     
  14. iracwet

    iracwet Новичок

    С нами с:
    21 янв 2014
    Сообщения:
    24
    Симпатии:
    0
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    ну а как найти в чем проблема
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    Он же пишет, где начался вывод: и файл и строку. Вы ошибку-то прочтите целиком.
     
  16. iracwet

    iracwet Новичок

    С нами с:
    21 янв 2014
    Сообщения:
    24
    Симпатии:
    0
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    Код (Text):
    1. <?php
    2. header("Content-Type:text/html;charset=UTF-8");
    3. session_start();
    не пойму, что не так
     
  17. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: почему на денвере нет ошибок, а на хостинге Resource id

    Z:\home\localhost\www\mysite.ru\view_article.php on line 4