|
|
|
| Всем привет помогите пожалуста.
скачал с вышего сайта книжку
там есть пример в главе 3 (Htmlspecialchars) я его копирую запуская на локалке с помощю денвера (эмулятор хоста)
Закружаю страничку а там ошибки я не думаю что это написано вкниге не правельно может я делаю что-то не так помогите.
Вид странички я приклепил к этому сообщению.
Пожалуста помогите. | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 02:34)
| | вероятнее всего проблемы в денвере, а вообще не плохо былобы написать код и описание ошибок которые денвер выдает... | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 02:34)
| | Notice - предупреждение.
Вас предупреждают о то, что переменная $msg не зарегистрирована. | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 02:34)
| | Notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE
|
Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
?>
|
В качестве параметра, которой передать соответствующий уровень обработки ошибок.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985 | |
|
|
|
|
 101.7 Кб |
|
|
для: cheops
(22.08.2005 в 12:55)
| | Вот текст файла
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
?>
<?
$action = $HTTP_POST_VARS["action"];
if ( empty($action) )
{
?>
<HTML>
<HEAD>
<TITLE>Примерчик</TITLE>
</HEAD>
<BODY>
<center>
<table width=1 border=0>
<form action=test1.php method=post>
<input type=hidden name=action value=post>
<tr><td colspan=2>Сообщение<br><textarea cols=50 rows=8 name=msg>
<? echo $msg; ?>
</textarea></td></tr>
<tr><td colspan=2><input type=submit value='Добавить'></td></tr>
</form>
</table>
</center>
</BODY>
</HTML>
<?
}
?>
|
А вылазят ошибки
1)Notice: Undefined index: action in z:\home\localhost\www\test\php5\test.php on line 2
2)В сообщение где должнобыть пусто написано следующее
<!--error--><br />
<b>Notice</b>: Undefined variable: msg in <b>z:\home\localhost\www\test\php5\test.php</b> on line <b>16</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script>
Также наглядный пример ошибок можно посмотреть в приклепленном файле | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 13:58)
| | У вас не определены переменные $msg и $action. Если лень искать причину, то сделайте так, как советует cheops. Если же неопределннность этих переменных критична, ищите, где они должны быть определены. | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 13:58)
| | сделайте так;)
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
$action = $HTTP_POST_VARS["action"];
if ( empty($action) )
{
?>
|
| |
|
|
|
|
|
|
|
для: P@Sol
(22.08.2005 в 15:55)
| | Спасибо помогло а вот еще помогите плиз.
Ошыбка:
Parse error: parse error, unexpected '/' in z:\home\localhost\www\test\php\index.php on line 64
<HTML>
<HEAD>
<TITLE>Гостевая книга</TITLE>
</HEAD>
<BODY>
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$dir_rec = dir("records");
$i = 0;
while($entry = $dir_rec->read())
{
if (substr($entry,0,3)=="rec")
{
$names[$i]=substr($entry,4);
$i++;
}
}
$dir_rec->close(); // закрываем директорию
@rsort($names); // сортируем файлы
/* определяем очередность сообщений и выводим их */
$count = $i;
$count1 = $count;
if (empty($start))
{
$start = 0;
}
$start = intval($start);
if ($start < 0)
{
$start = 0;
}
print "<center>";
if ($count > $start + 10) $count = $start + 10;
if ($start != 0)
{
print "<A href=index.php?start=".($start - 10).">Предыдущие</A>";
}
print "<a href=addrec.php>Добавить запись</A>";
if ($count1 > $start + 10)
{
print "<A href=index.php?start=".($start + 10).">Следующие</A> \n";
}
print "</center><br>";
/* выводим все сообщения в цикле */
for ($i = $start; $i < $count; $i++)
{
$entry = $names[$i];
$data = file("records/rec.".$entry);
$date = $entry;
$name = trim($data[0]);
$city = trim($data[1]);
$email = trim($data[2]);
$url = trim($data[3]);
$msg = trim($data[4]);
/* поле, в которое администратор может добавить ответ */
$answer = trim($data[5]);
print "<table border=0 cellspacing=0 cellpadding=2 width=100%>
<tr bgcolor=#F0F0F0><td>&nbsр;";
print "<b>$name</b>&nbsр;";
if (!empty($city)) print "$city&nbsр";
if (!empty($email)) print "<a href=mailto:$email><i>$email</i></A>\n";
if (!empty($url)) print "<a href=$url>$url</a>";
print "</td><td align=right>".date("<b>d-m-Y</b> H - i, $date)."
</td>
</tr>\n
<tr>
<td colspan=2>\n";
print "<P>".$msg."</P>\n";
if (!empty($answer)) // если администратор что-то ответил
{
print "<P><font color=#1E90FF>admin:&nbsр$answer</font></P>\n";
}
print "</td></tr></table>\n<br><br>\n";
}
print "<center>";
if ($start != 0)
{
print "<A href=index.php?start=".($start - 10).">Предыдущие</A>";
}
print "<a href=addrec.php>Добавить запись</A>";
if ($count1 > $start + 10)
{
print "<A href=index.php?start=".($start + 10).">Следующие</A> \n";
}
print "</center>";
?>
</BODY>
</HTML>
|
| |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 18:04)
| | Это из-за того, что ты пишешь html-теги внутри тегов <? ?>. Закрой сначала тег напиши html-код и потом опять открой. | |
|
|
|
|
|
|
|
для: Евгений Петров
(22.08.2005 в 18:25)
| | Вот вроде так если не ошибаюсь
<HTML>
<HEAD>
<TITLE>Гостевая книга</TITLE>
</HEAD>
<BODY>
<?
/* открываем директорию и считываем из нее файлы */
$dir_rec = dir("records");
$i = 0;
while($entry = $dir_rec->read())
{
if (substr($entry,0,3)=="rec")
{
$names[$i]=substr($entry,4);
$i++;
}
}
$dir_rec->close(); // закрываем директорию
@rsort($names); // сортируем файлы
/* определяем очередность сообщений и выводим их */
$count = $i;
$count1 = $count;
if (empty($start))
{
$start = 0;
}
$start = intval($start);
if ($start < 0)
{
$start = 0;
}
?>
<center>
<?
if ($count > $start + 10) $count = $start + 10;
if ($start != 0)
{
?>
<A href=index.php?start=".($start - 10).">Предыдущие</A>
<?
}
?>
<a href=addrec.php>Добавить запись</A>
<?
if ($count1 > $start + 10)
{
?>
<A href=index.php?start=".($start + 10).">Следующие</A> \n"
<?
}
?>
</center><br>
<?
/* выводим все сообщения в цикле */
for ($i = $start; $i < $count; $i++)
{
$entry = $names[$i];
$data = file("records/rec.".$entry);
$date = $entry;
$name = trim($data[0]);
$city = trim($data[1]);
$email = trim($data[2]);
$url = trim($data[3]);
$msg = trim($data[4]);
/* поле, в которое администратор может добавить ответ */
$answer = trim($data[5]);
?>
<table border=0 cellspacing=0 cellpadding=2 width=100%>
<tr bgcolor=#F0F0F0><td>&nbsр
<?
<b>$name</b>&nbsр
<?
if (!empty($city)) print "$city&nbsр";
if (!empty($email)) ?>
<a href=mailto:$email><i>$email</i></A>\n
<?
if (!empty($url)) ?>
<a href=$url>$url</a>
</td><td align=right>
<?.date("<b>d-m-Y</b> H - i, $date)."
?>
</td></tr>\n<tr><td colspan=2>\n
<?
print "<P>".$msg."</P>\n";
if (!empty($answer)) // если администратор что-то ответил
{
?>
<P><font color=#1E90FF>admin:&nbsр$answer</font></P>\n
<?
}
?>
</td></tr></table>\n<br><br>\n
<?
}
?>
<center>
<?
if ($start != 0)
{
?> <A href=index.php?start=".($start - 10).">Предыдущие</A>" <?
}
?> <a href=addrec.php>Добавить запись</A> <?
if ($count1 > $start + 10)
{
?> <A href=index.php?start=".($start + 10).">Следующие</A> \n
<?
}
?>
</center>
</BODY>
</HTML>
|
А всеровно ошибка Parse error: parse error, unexpected '<' in z:\home\localhost\www\test\php\index.php on line 71 | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 19:11)
| | В строке 70 тег <? следует заменить на ?>. | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 19:11)
| | А вообще нет вес правильно было. Просто ты кавычку одну пропустил в 64 строке. Вот этот код попробуй:
<HTML>
<HEAD>
<TITLE>Гостевая книга</TITLE>
</HEAD>
<BODY>
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$dir_rec = dir("records");
$i = 0;
while($entry = $dir_rec->read())
{
if (substr($entry,0,3)=="rec")
{
$names[$i]=substr($entry,4);
$i++;
}
}
$dir_rec->close(); // закрываем директорию
@rsort($names); // сортируем файлы
/* определяем очередность сообщений и выводим их */
$count = $i;
$count1 = $count;
if (empty($start))
{
$start = 0;
}
$start = intval($start);
if ($start < 0)
{
$start = 0;
}
print "<center>";
if ($count > $start + 10) $count = $start + 10;
if ($start != 0)
{
print "<A href=index.php?start=".($start - 10).">Предыдущие</A>";
}
print "<a href=addrec.php>Добавить запись</A>";
if ($count1 > $start + 10)
{
print "<A href=index.php?start=".($start + 10).">Следующие</A> \n";
}
print "</center><br>";
/* выводим все сообщения в цикле */
for ($i = $start; $i < $count; $i++)
{
$entry = $names[$i];
$data = file("records/rec.".$entry);
$date = $entry;
$name = trim($data[0]);
$city = trim($data[1]);
$email = trim($data[2]);
$url = trim($data[3]);
$msg = trim($data[4]);
/* поле, в которое администратор может добавить ответ */
$answer = trim($data[5]);
print "<table border=0 cellspacing=0 cellpadding=2 width=100%>
<tr bgcolor=#F0F0F0><td>&nbsр;";
print "<b>$name</b>&nbsр;";
if (!empty($city)) print "$city&nbsр";
if (!empty($email)) print "<a href=mailto:$email><i>$email</i></A>\n";
if (!empty($url)) print "<a href=$url>$url</a>";
print "</td><td align=right>".date("<b>d-m-Y</b> H - i, $date")."
</td>
</tr>n
<tr>
<td colspan=2>n";
print "<P>".$msg."</P>n";
if (!empty($answer)) // если администратор что-то ответил
{
print "<P><font color=#1E90FF>admin:&nbsр$answer</font></P>\n";
}
print "</td></tr></table>\n<br><br>\n";
}
print "<center>";
if ($start != 0)
{
print "<A href=index.php?start=".($start - 10).">Предыдущие</A>";
}
print "<a href=addrec.php>Добавить запись</A>";
if ($count1 > $start + 10)
{
print "<A href=index.php?start=".($start + 10).">Следующие</A> \n";
}
print "</center>";
?>
</BODY>
</HTML>
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(22.08.2005 в 20:47)
| | Евгений Петров
В коде который вы дали две ошибки
1)Warning: dir(records): failed to open dir: Invalid argument in z:\home\localhost\www\test\php\index.php on line 8
2)Fatal error: Call to a member function on a non-object in z:\home\localhost\www\test\php\index.php on line 10
Вот ваш код
<HTML>
<HEAD>
<TITLE>Гостевая книга</TITLE>
</HEAD>
<BODY>
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$dir_rec = dir("records");
$i = 0;
while($entry = $dir_rec->read())
{
if (substr($entry,0,3)=="rec")
{
$names[$i]=substr($entry,4);
$i++;
}
}
$dir_rec->close(); // закрываем директорию
@rsort($names); // сортируем файлы
/* определяем очередность сообщений и выводим их */
$count = $i;
$count1 = $count;
if (empty($start))
{
$start = 0;
}
$start = intval($start);
if ($start < 0)
{
$start = 0;
}
print "<center>";
if ($count > $start + 10) $count = $start + 10;
if ($start != 0)
{
print "<A href=index.php?start=".($start - 10).">Предыдущие</A>";
}
print "<a href=addrec.php>Добавить запись</A>";
if ($count1 > $start + 10)
{
print "<A href=index.php?start=".($start + 10).">Следующие</A> \n";
}
print "</center><br>";
/* выводим все сообщения в цикле */
for ($i = $start; $i < $count; $i++)
{
$entry = $names[$i];
$data = file("records/rec.".$entry);
$date = $entry;
$name = trim($data[0]);
$city = trim($data[1]);
$email = trim($data[2]);
$url = trim($data[3]);
$msg = trim($data[4]);
/* поле, в которое администратор может добавить ответ */
$answer = trim($data[5]);
print "<table border=0 cellspacing=0 cellpadding=2 width=100%>
<tr bgcolor=#F0F0F0><td>&nbsр;";
print "<b>$name</b>&nbsр;";
if (!empty($city)) print "$city&nbsр";
if (!empty($email)) print "<a href=mailto:$email><i>$email</i></A>\n";
if (!empty($url)) print "<a href=$url>$url</a>";
print "</td><td align=right>".date("<b>d-m-Y</b> H - i, $date")."
</td>
</tr>n
<tr>
<td colspan=2>n";
print "<P>".$msg."</P>n";
if (!empty($answer)) // если администратор что-то ответил
{
print "<P><font color=#1E90FF>admin:&nbsр$answer</font></P>\n";
}
print "</td></tr></table>\n<br><br>\n";
}
print "<center>";
if ($start != 0)
{
print "<A href=index.php?start=".($start - 10).">Предыдущие</A>";
}
print "<a href=addrec.php>Добавить запись</A>";
if ($count1 > $start + 10)
{
print "<A href=index.php?start=".($start + 10).">Следующие</A> \n";
}
print "</center>";
?>
</BODY>
</HTML>
|
Помогите исправить | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 19:11)
| | Учи инглиш=) В 71-й строке ни к селу ни к городу стоит знак '<'. Где он, не знаю - строки не нумерованы, считать лениво=) Скорее всего, там кусок хтмл-кода без кавычек. Попробуй поставить кавычки. | |
|
|
|
|
|
|
|
для: Киналь
(22.08.2005 в 20:49)
| | print "<P><font color=#1E90FF>admin:&nbsр$answer</font></P>\n";
Вот 71 строка где здесь лишний знак | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 21:02)
| | Для php html-теги это вооюще куча лишних знаков. Попробуй мой код. | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 02:34)
| | Кстати на будущее касательно Денвера - он недолюбливет тег <?php ?>, лучше использовать <? ?>. Т.е. он выдаст ошибку даже в таком случае:
<?php
echo "Так";
?>
<?
echo "не прокатит";
?>
|
А вообще говоря - меня Денвер фтыкает... очень мощная штука при изучении PHP... | |
|
|
|
|
|
|
|
для: DDK
(22.08.2005 в 21:24)
| | Странный Денвер... Я только <?php ?> и пишу - ни разу проблем не было...
ЗЫ
> недолюбливает
"Не надо очеловечивать компьютеры! Они этого страсть как не любят!" | |
|
|
|
|
|
|
|
для: Киналь
(22.08.2005 в 21:39)
| | Евгений Петров
В коде который вы дали две ошибки
1)Warning: dir(records): failed to open dir: Invalid argument in z:\home\localhost\www\test\php\index.php on line 8
2)Fatal error: Call to a member function on a non-object in z:\home\localhost\www\test\php\index.php on line 10
Вот ваш код
<HTML>
<HEAD>
<TITLE>Гостевая книга</TITLE>
</HEAD>
<BODY>
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$dir_rec = dir("records");
$i = 0;
while($entry = $dir_rec->read())
{
if (substr($entry,0,3)=="rec")
{
$names[$i]=substr($entry,4);
$i++;
}
}
$dir_rec->close(); // закрываем директорию
@rsort($names); // сортируем файлы
/* определяем очередность сообщений и выводим их */
$count = $i;
$count1 = $count;
if (empty($start))
{
$start = 0;
}
$start = intval($start);
if ($start < 0)
{
$start = 0;
}
print "<center>";
if ($count > $start + 10) $count = $start + 10;
if ($start != 0)
{
print "<A href=index.php?start=".($start - 10).">Предыдущие</A>";
}
print "<a href=addrec.php>Добавить запись</A>";
if ($count1 > $start + 10)
{
print "<A href=index.php?start=".($start + 10).">Следующие</A> \n";
}
print "</center><br>";
/* выводим все сообщения в цикле */
for ($i = $start; $i < $count; $i++)
{
$entry = $names[$i];
$data = file("records/rec.".$entry);
$date = $entry;
$name = trim($data[0]);
$city = trim($data[1]);
$email = trim($data[2]);
$url = trim($data[3]);
$msg = trim($data[4]);
/* поле, в которое администратор может добавить ответ */
$answer = trim($data[5]);
print "<table border=0 cellspacing=0 cellpadding=2 width=100%>
<tr bgcolor=#F0F0F0><td>&nbsр;";
print "<b>$name</b>&nbsр;";
if (!empty($city)) print "$city&nbsр";
if (!empty($email)) print "<a href=mailto:$email><i>$email</i></A>\n";
if (!empty($url)) print "<a href=$url>$url</a>";
print "</td><td align=right>".date("<b>d-m-Y</b> H - i, $date")."
</td>
</tr>n
<tr>
<td colspan=2>n";
print "<P>".$msg."</P>n";
if (!empty($answer)) // если администратор что-то ответил
{
print "<P><font color=#1E90FF>admin:&nbsр$answer</font></P>\n";
}
print "</td></tr></table>\n<br><br>\n";
}
print "<center>";
if ($start != 0)
{
print "<A href=index.php?start=".($start - 10).">Предыдущие</A>";
}
print "<a href=addrec.php>Добавить запись</A>";
if ($count1 > $start + 10)
{
print "<A href=index.php?start=".($start + 10).">Следующие</A> \n";
}
print "</center>";
?>
</BODY>
</HTML>
|
Помогите исправить | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 21:45)
| | Первая ошибка в строке: $dir_rec = dir("records"); говорит что не может найти такой каталог. Попробуй написать
$dir_rec = dir("/records");
|
Вторая ошибка в while($entry = $dir_rec->read()) я не особо понял, но попробуй написать так
while($entry = $dir_rec->read($dir_rec))
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(22.08.2005 в 22:03)
| | не непомогло ошибки остались обе. | |
|
|
|
|
|
|
|
для: 70-й_регион
(22.08.2005 в 22:18)
| | А я понял! Создай в том каталоге где лежит этот скрипт папку records и все будет работать. | |
|
|
|
|
|
|
|
для: Евгений Петров
(22.08.2005 в 22:52)
| | Я эту дерикторию уже давно создал.
Это не помогло.
Осталась только вторая ошибка
Warning: read(): supplied argument is not a valid Directory resource in z:\home\localhost\www\test\php\index.php on line 10
Кстати примеры взяты из учебника с этого сайта
http://www.softtime.ru/info/bookphp.php | |
|
|
|