На сранице вывода статей хотелось добавить комментарии. Комментарии выводятся, а сообщения из строк Код (Text): if(empty($name)) $error .= '<p>Вы не представились!</p>'; if(empty($text)) $error .= '<p>Вы не прокомментировали!</p>'; if($_POST['aspam'] == 'on') $error .= '<p>Вы робот!</p>'; и Код (Text): if(mysql_affected_rows() > 0){ $_SESSION['res'] = '<p><strong>Спасибо!</strong></p>'; header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res"); exit(); }else{ $_SESSION['res'] = '<p><strong>Ошибка! Попробуйте позже</strong></p>'; header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res"); exit(); } }else{ $_SESSION['res'] = '<p><strong>Ошибка заполнения формы: </strong></p>'.$error; $_SESSION['name'] = $name; $_SESSION['text'] = $text; header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res"); exit(); } не выводятся, и под формой добавления комментов Resorse id#8 / На денвере все выводилось и работало, на хостинге нет. Вот сам файл Код (Text): <?php header("Content-Type:text/html;charset=UTF-8"); session_start(); include "config.php"; include "functions.php"; db(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME); $staty_id = (int)$_GET['staty_id']; $res_staty = mysql_query("SELECT `title`,`keywords`,`description`,`content` FROM `staty` WHERE `staty_id` = ".$staty_id." LIMIT 1") or die( mysql_error() ); $row_staty = mysql_fetch_assoc($res_staty); if($_POST['submit']){ $name = trim(mysql_real_escape_string(mb_substr($_POST['name'],0,20,'UTF-8'))); $text = trim(mysql_real_escape_string(mb_substr($_POST['text'],0,1000,'UTF-8'))); $date_comment = date("Y-m-d"); $error = ''; if(empty($name)) $error .= '<p>Вы не представились!</p>'; if(empty($text)) $error .= '<p>Вы не прокомментировали!</p>'; if($_POST['aspam'] == 'on') $error .= '<p>Вы робот!</p>'; if(empty($error)){ $res = mysql_query("INSERT INTO `coments` SET `name`='{$name}', `text`='{$text}', `date_comment`='{$date_comment}', `staty_id`=".$staty_id) or die(mysql_error()); if(mysql_affected_rows() > 0){ $_SESSION['res'] = '<p><strong>Спасибо!</strong></p>'; header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res"); exit(); }else{ $_SESSION['res'] = '<p><strong>Ошибка! Попробуйте позже</strong></p>'; header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res"); exit(); } }else{ $_SESSION['res'] = '<p><strong>Ошибка заполнения формы: </strong></p>'.$error; $_SESSION['name'] = $name; $_SESSION['text'] = $text; header("Location: {$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}#res"); exit(); } } <div id="contents"> <?php if(mysql_num_rows($res_staty) > 0){ $views = $row_staty['views'] + 1; $res = mysql_query("UPDATE `staty` SET `views`='{$views}' WHERE `staty_id`='{$staty_id}'"); echo "<span class='view_staty'><h1>{$row_staty['title']}</h1></span>"; echo $row_staty['content']; }else echo "<script>alert(\'Такой статьи нет!\");</script>"; ?> </div> <!-- #content --> </td> <td valign="top"> <div id="side_bar_right"> <?php include_once "side_bar_right.php";?> </div> </td> </tr> <tr> <td colspan="3"> <div id="comments"> <?php $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()); ?> <h2><a name="comments"></a>Комментарии (<?php echo mysql_num_rows($res); ?>) </h2> <?php if(mysql_num_rows($res) > 0){ while($row = mysql_fetch_assoc($res)){ ?> <div class="comment"> <p class="comment_meta"><?php echo $row['date_comment']; ?> <?php echo htmlspecialchars($row['name']); ?></p> <p><?php echo nl2br(htmlspecialchars($row['text'])); ?></p> </div> <?php } }else echo 'Комментариев к этой статье нет. Вы можете быть первым!'; ?> <div class="form_comm"> <form method="post"> <table> <tr> <td>Имя: </td> <td><input type="text" name="name" maxlength="30" value="<?php echo htmlspecialchars($_SESSION['name']); ?>" /></td> </tr> <tr> <td>Комментарий: </td> <td><textarea name="text" cols="50" rows="5" /><?php echo htmlspecialchars($_SESSION['text']); ?></textarea></td> </tr> <tr> <td>Я робот: </td> <td><input type="checkbox" name="aspam" checked="checked" /></td> </tr> <tr> <td colspan="2"><input type="submit" id="but_log" name="submit" value="Добавить комментарий" /></td> </tr> </table> </form> <a name="res"></a> <?php echo $_SESSION['res']; unset($_SESSION['res']); unset($_SESSION['name']); unset($_SESSION['text']); ?> </div> </div> <?php include_once "footer.php";?> </td> </tr> </table> как исправить?
Re: почему на денвере нет ошибок, а на хостинге Resource id Полностью текст ошибки скопируйте сюда, и строку кода, номер которой указан в тексте ошибки.
Re: почему на денвере нет ошибок, а на хостинге Resource id Так выводится просто: Resourse id#8 под формой комментариев и всё, больше никаких строк
Код (PHP): db(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME); это чего? ссылка на конект к БД чтоль? а в mysql_query где он?
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): function db($host,$user,$pass,$db_name) { $db = mysql_connect($host,$user,$pass); if(!$db) { exit(mysql_error()); } if(!mysql_select_db($db_name,$db)) { exit(mysql_error()); } mysql_query("SET NAMES UTF8"); }
"headers already sent" говорит о том, что у тебя случился какой-то (непреднамеренный?) вывод ДО вывода заголовка/старта сессии. Непреднамеренным выводом могут быть сообщение об ошибке, BOM, перевод строки после последнего ?> в файле. Добавлено спустя 2 минуты 31 секунду: Re: почему на денвере нет ошибок, а на хостинге Resource id #8 если это Код (PHP): <?php header("Content-Type:text/html;charset=UTF-8"); session_start(); … начало того самого файла, из которого ошибка, то наверняка дело в BOM остальное всё вторично — сессия обосралась, нужных данных нет, выводится чушь. Добавлено спустя 2 минуты 18 секунд: Re: почему на денвере нет ошибок, а на хостинге Resource id #8 3-я строка это твой header() а первая строка это BOM ))) ну или тупо перевод строки перед <?php — один куй
Re: почему на денвере нет ошибок, а на хостинге Resource id поставила кодировку без BOM все равно не помогает , эти же ошибки
не верю © вставь вот эти строчки сразу за <?php Код (PHP): $self = substr(file_get_contents(__FILE__), 0, 5); foreach (str_split($self) as $c) printf('%1s (%2x) ', $c, ord($c)); die(); что выведет?
Re: почему на денвере нет ошибок, а на хостинге Resource id вывело < (3c) ? (3f) p (70) h (68) p (70)
Re: почему на денвере нет ошибок, а на хостинге Resource id значит нет BOM или BOM не здесь, а в другом файле. удали мои строки. есть ошибка — значит есть высер до вывода заголовка. это факт. все PHP-файлы должны быть без BOM и без ?> в последней строке
Re: почему на денвере нет ошибок, а на хостинге Resource id Он же пишет, где начался вывод: и файл и строку. Вы ошибку-то прочтите целиком.
Re: почему на денвере нет ошибок, а на хостинге Resource id Код (Text): <?php header("Content-Type:text/html;charset=UTF-8"); session_start(); не пойму, что не так
Re: почему на денвере нет ошибок, а на хостинге Resource id http://cannot-modify-header-information.ru/
Re: почему на денвере нет ошибок, а на хостинге Resource id Z:\home\localhost\www\mysite.ru\view_article.php on line 4