Ошибка:"Неопределённый индекс".

Erick

Новичок
Ошибка:"Неопределённый индекс".

Создал базу данных для блога, в которой одна таблица.
PHP:
CREATE TABLE wfblog (
		  blog_id int(11) NOT NULL auto_increment,
		  title varchar(255) NOT NULL default '',
		  content text NOT NULL,
		  published timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
		  display char(1) default NULL,
		  PRIMARY KEY  (blog_id)
		 )
Внёс соответсвующие изменемия в файл settings.php:
PHP:
// Edit these:
$wfdatabase = "blog";
$wfusername = "Erick";
$wfpassword = "12345";
В разделе управления блогом, когда выбираю Create New, открывается файл edit.php с ошибками:
Notice: Undefined index: blog_id in z:\home\localhost\www\edit.php on line 5
Notice: Undefined index: blog_id in z:\home\localhost\www\edit.php on line 10
Notice: Undefined index: title in z:\home\localhost\www\edit.php on line 10

В поле ввода названия темы:
<!--error--><br /><b>Notice</b>: Undefined variable: feed in <b>z:\home\localhost\www\edit.php</b> on line <b>33</b><br /><script l

В поле ввода сообщения:
<!--error--><br />
<b>Notice</b>: Undefined variable: feed in <b>z:\home\localhost\www\edit.php</b> on line <b>37</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script>
вот файл edit.php:
PHP:
<?
ini_set("display_errors", "On");
require_once("settings.php");

if($_POST['blog_id'] != ''){
	include('update.php');
	header("location: index.php");

}
elseif($_POST['blog_id'] == '' && $_POST['title'] != ''){
	include('insert.php');
	header("location: index.php");
}

if(!empty($_GET['blog_id'])){
	$query = "SELECT title, blog_id, content, date_format(published, '%a, %b %d %Y %T') as published, display FROM `wfblog` WHERE display = '1' and blog_id = '". $_GET['blog_id']."'";
	$feeds = query($query);
	$feed = mysql_fetch_assoc($feeds);
}
//*/
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Create and Edit Blog</title>
</head>
<body>
<a href="edit.php">Create New</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="index.php">Menu</a> <br>

<form name="form1" method="post" action="">
  <p>
    <input name="title" type="text" id="title" value="<?= $feed['title']; ?>" size="80" maxlength="255">
    <input name="blog_id" type="hidden" id="blog_id" value="<?= $feed['blog_id']; ?>">
  </p>
  <p>
    <textarea name="content" cols="60" rows="8" id="content"><?= $feed['content']; ?></textarea>
    <br>
    <br>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
</body>
</html>
blog_id - это первичный ключ таблицы.
В чём причина ошибки?

Заранее благодарен.
 

alpine

Новичок
Erick
[m]error_reporting[/m]
Нет поста нет переменных $_POST['blog_id'], $_POST['title'] и т.п.
 

SiMM

Новичок
Вот ведь спамерюга.
На сколько ещё форумов ты запостил свой пост, чтобы за тебя решили твою проблему?
 

zarus

Хитрожопый макак
Не все же с первого раза догоняют использовать для проверки функции empty и isset
PHP:
if (!empty($value)) {
  echo $value;
}
elseif (isset($value)) {
  echo '$value is set but empty';
}
else {
  echo '$value is not defined';
}
 

white phoenix

Новичок
Erick
не "неопределенный", а "необъявленный".
Для подавления сообщений напиши в начале скрипта:
PHP:
error_reporting(E_ALL ^ E_NOTICE);
Но лучше использовать схему которую предложил zarus
 

zarus

Хитрожопый макак
2 white phoenix
Плохой совет - отключать сообщения E_NOTICE, лучше уж сразу отключать E_ALL ;)
 

SiMM

Новичок
Иногда лучше молчать...

-~{}~ 16.12.05 14:50:

ИМХО, помогать таким типам абсолютно бессмысленно
.
 

zarus

Хитрожопый макак
Может и бессмысленно, но надо. БОМЖам ведь тоже надо помогать, и сиротам, и убогим, и калекам, хотя это бессмысленно, так как шанс, что они станут "нормальными" очень мал.
Ссылка порадовала, особенно последняя часть - 1 в 1 только актеры другие :)
 

white phoenix

Новичок
zarus
Если руки прямые, то E_NOTICE не нужно. Заметь, я сказал что твой вариант ему подходит больше.
 

SiMM

Новичок
> Если руки прямые
А вы уверены, что у тредстартера они прямые? Вот поэтому и не нужно советовать. Кто с прямыми руками - сам разберётся, а не на форум по пустякам побежит.
 

zarus

Хитрожопый макак
Автор оригинала: SiMM
> Если руки прямые
А вы уверены, что у тредстартера они прямые? Вот поэтому и не нужно советовать. Кто с прямыми руками - сам разберётся, а не на форум по пустякам побежит.
2 white_phoenix
А я когда начинал изучать PHP, поставил Denver, а там по умолчанию были E_ALL ^ E_NOTICE. Писал себе сайт, писал. А когда выложил на хостинг, тут и получил щелбан по носу... Просто сокрытие ошибок не научит его ничему хорошему :) Да и я не против - иногда бесят нотисы, когда ты делаешь "ошибку" сознательно - но если такая ситуация возникает, значит я чего-то не так понял.
 

white phoenix

Новичок
SiMM
ну не настолько же кривые, ведь E_NOTICE призваны указывать на опечатки в названии переменных/индексов.
zarus
мне тоже это не нравилось, по-этому я всегда принудительно выключаю E_NOTICE.
 

Сергей123

Новичок
Я бы сказал не только и, главное, не столько для этого. И в любом случае редко есть повод выключать этот уровень.
 

white phoenix

Новичок
Бресь Сергей
> Я бы сказал не только
а я утверждал обратное?
// смех без причины, признак дурачины
 

SiMM

Новичок
> а я утверждал обратное?
Тогда к чему был этот совет (вернее, его первая половина)? Правильно, он был абсолютно бессмысленен. На что вам и указали. Всё, что вам нужно было сделать - это обратить внимание на замечание zarusа и больше никогда не давать таких советов. Только и всего - раздувать из этого полемику было абсолютно необязательно.
 
Сверху