Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема (Добавление новости)
 
 автор: maDMo3r   (30.11.2004 в 20:22)   письмо автору
 
 

Помогите плиз разобратся почему не работает вот этот код ? :(

<?
$dblocation 
"127.0.0.1";
$dbname "local";
$dbuser "root";
$dbpasswd "";

session_start();

if (isset(
$HTTP_POST_VARS['nes']))
{
$nes $HTTP_POST_VARS['nes'];
$db_connect mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db('news',$db_connect);
$query "select * from news where nes='".$nes;
$result mysql_query($query,$db_connect);
if (
$result)
{
    
$HTTP_SESSION_VARS['valid_user'] = $nes;
    }
}
?>
<html>
<style type="text/css">
<!--
.style1 {color: #99CCFF}
-->
</style>
<body>
<h1 class="style1"> Добавить Новость </h1>
<?
if (isset($HTTP_SESSION_VARS['valid_user']))
{
    echo 
' Ваша носовть добавлена в базу данных '.$HTTP_SESSION_VARS['valid_user'].
    
'<br />';
}
else
{
    if(isset(
$nes))
    {
        echo(
"Добавить новость невозможно");
        }
    
?>
<form method="post" action="admin.php">
<table>
<tr><td>Новость: </td>
<td><input type="text" name="nes"></td></tr>
<tr><td colspan="2"><input type="submit" value="Добавить Новость"></td></tr>
</table>
</form>
<?
}
?>
<br>
</body>
</html>


Когда ввожу Новость то оно пишет что новость не добавлена :(

--------------------------------

и Вот еще проблема не знаю из-за чего она :(



<?
                        session_start
();
                        if (isset(
$HTTP_SESSION_VARS['valid_user']))
                        {
                            echo 
'Новость : '.$HTTP_SESSION_VARS['valid_user'];
                        }
                        else
                        {
                            echo(
"Новостей нету");
                            }
                        
?>


Пишет вот что :(
---------------------------------------

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at d:\Apach\www\protect.php:13) in d:\Apach\www\index.php on line 176

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at d:\Apach\www\protect.php:13) in d:\Apach\www\index.php on line 176
Новостей нету

--------------------------------------

Этот скрипт находится на index.php :(
[поправлено модератором]

   
 
 автор: cheops   (30.11.2004 в 20:55)   письмо автору
 
   для: maDMo3r   (30.11.2004 в 20:22)
 

1) Попробуйте перписать код
<?php
if ($result

    
$HTTP_SESSION_VARS['valid_user'] = $nes

?>

следующим образом
<?php
if ($result

    
$HTTP_SESSION_VARS['valid_user'] = $nes

else
{
  echo 
$query."<br>";
  echo 
"Ошибка - ".mysql_query();
  exit();
}
?>

2) Это значит, что до вызова session_start() имеется вывод в окно браузера, которое заставляет отослать заголовки до того, как интерпретатор доберётся до session_start(). Так как заголовки уже отосланы сессии не инициализируются. Функция session_start() должна быть расположена до любого вывода в окно браузера операторами echo, print и просто HTML-тэгов или следует использовать функции управления выводом для задержки вывода в браузер.

PS Если вам не сложно, пожалуйста, заводите под разные проблемы разные темы (желательно с осмысленным названием :), по которому остальные посетители форума смогли бы сориентироваться о чём речь и стоит ли им читать эту тему).

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=53

   
 
 автор: maDMo3r   (02.12.2004 в 20:28)   письмо автору
 
   для: cheops   (30.11.2004 в 20:55)
 

Не могу понять что на что заминять :( заминяю и кажется не получается может я не то заменя? обьясни плиз еще раз!

   
 
 автор: cheops   (02.12.2004 в 21:07)   письмо автору
 
   для: maDMo3r   (02.12.2004 в 20:28)
 

Смысл в том, что функция mysql_query возвращает либо дискриптор запроса, либо FALSE, если всё удачно у вас идёт обработка запроса, а если нет то скрипт никак не реагирует на это. Так как SQL - это подязык и исполняется он в чужой среде - сообщения об ошибках в SQL-запросах не высвечиваются компилятором - их следует выводить самостоятельно. Поэтому после каждого вызова оператора mysql_query следует проверять правильность выполнения запроса:
<?php
  $result 
mysql_query($query,$db_connect);
  if(!
$result) exit(mysql_erorr());
?>


http://www.softtime.ru/dic/id_dic=125&id_group=2

   
 
 автор: maDMo3r   (02.12.2004 в 21:17)   письмо автору
 
   для: cheops   (02.12.2004 в 21:07)
 

Шото я не могу вдуплить :( Можешь исправить этот скрипт ? и прикрепить на форум ?:)

У меня оно записывает в базу данных и выводит на страницу но пишет еще вот это (


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at d:\Apach\www\protect.php:13) in d:\Apach\www\index.php on line 176

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at d:\Apach\www\protect.php:13) in d:\Apach\www\index.php on line 176

   
 
 автор: cheops   (02.12.2004 в 21:35)   письмо автору
 
   для: maDMo3r   (02.12.2004 в 21:17)
 

Это не исправление, так как мы не знаем чего ещё править - это праверка - нет ли ошибки при обращении к серверу MySQL - следует запустить и посмотреть не появилось ли каких дополнительных записей в браузере?

Предупреждения вызваны следующим. Идентификаторы сессии и кукисов сообщаются сервером через заголовки, а они отправляются до тела документа, т.е. до всякого вывода в окно браузера операторами echo, print или непосредственно вывода HTML-кода, поэтому вызывать функцию session_start() следует до начала вывода в окно браузера http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=731
или использовать функции управления буффером для задержки вывода http://www.softtime.ru/group/id_group=12

   
 
 автор: maDMo3r   (02.12.2004 в 21:38)   письмо автору
 
   для: cheops   (02.12.2004 в 21:35)
 

Все спасибо разобрался ;) :) сэнкс :) работае :)

   
 
 автор: maDMo3r   (02.12.2004 в 21:48)   письмо автору
 
   для: maDMo3r   (02.12.2004 в 21:38)
 

а нужно ли Вводить конект к Базе данных на странице на которой будет размещена новость ? :) или просто написать include "admin.php";

<?
include "admin.php";
?>

   
 
 автор: cheops   (02.12.2004 в 23:47)   письмо автору
 
   для: maDMo3r   (02.12.2004 в 21:48)
 

Если в admin.php имеется соединение с базой данных, то больше его устанавливать не нужно.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования