Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2007, 22:08   #1
kirill555
Пользователь
 
Регистрация: 22.10.2007
Сообщений: 10
По умолчанию Помогите убрать "Undefined offset"

Сделал гостевуху, все нормально работает, только каждый раз выдается предупреждение:

Notice: Undefined offset: 35 in p:\home\localhost\www\guest.php

Как бы ее убрать? Подскажите пожалуйста.

PHP код:
<form action=guest.php method=post>
Введите email: <INPUT TYPE=TEXT NAME=email><BR>
Ваше имя: <INPUT TYPE=TEXT NAME=name><BR>
Сообщение: <br><textarea name="msg" rows=10 cols=40></textarea>
<br><input type=submit value="Отправить ">
</form>
<?php
$files 
"guest.txt";

if (
$email == "") { $email "нет"; }
$msg=substr($msg,0,999);
$email=substr($email,0,39);
$name=substr($name,0,39);
if (
$msg!= "" && $name!= ""
{
    
$soo=$time.' '.$name.' '.$msg;

$fp=fopen($files,'a+');
fwrite($fp,$soo);
fclose($fp);
 }

$lines=file($files);
$a count($lines);

for(
$i $a$i >($a-30);$i--)
{print( 
$lines[$i]);}

?>
Научитесь оформлять свой код правильно согласно с правилами форума. Модератор

Последний раз редактировалось SkyM@n; 26.10.2007 в 23:11.
kirill555 вне форума Ответить с цитированием
Старый 26.10.2007, 23:09   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

В данной строке с ошибкой имеется ввиду, что ошибка возникла в строке 35 в файле p:\home\localhost\www\guest.php. Суть ошибки - может быть обращение к массиву, в котором данный эллемент не найден.Так как вы привели неполный код, то конкретнее ответа нет.
советую показать весь файл.
SkyM@n вне форума Ответить с цитированием
Старый 27.10.2007, 14:58   #3
kirill555
Пользователь
 
Регистрация: 22.10.2007
Сообщений: 10
По умолчанию

Да я собственно весь файл и привел, кроме HTML тэгов. Но 35 это по-моему имеется ввиду
количество элементов массива. В любом случае благодарен за помощь.

Цитата:
<HTML>
<HEAD>
<TITLE></TITLE>
<link rel=stylesheet type=text/css href='style.css'>

</HEAD>
<BODY marginwidth="0" marginheight="0" bottommargin="0" leftmargin="0" rightmargin="0" topmargin="0">

<table border="0" align="center" width="790"><tr><td>
<h2>Гостевая книга</h2>
<form action=guest.php method=post>
Введите email: <INPUT TYPE=TEXT NAME=email><BR>
Ваше имя: <INPUT TYPE=TEXT NAME=name><BR>
Сообщение: <br><textarea name="msg" rows=10 cols=40></textarea>
<br><input type=submit value="Отправить "></form>
<br><br>

<?
$files = "guest.txt";

if ($email == "") { $email = "нет"; }
$msg=substr($msg,0,999);
$email=substr($email,0,39);
$name=substr($name,0,39);
if ($msg!= "" && $name!= "")
{

$time = Date("h:i Md");

$soo=$time.' '.$name.' '.$msg;
$soo.="\n";
$fp=fopen($files,'a+');
fwrite($fp,$soo);
fclose($fp);
}

$lines=file($files);
$a = count($lines);

for($i = $a; $i >($a-30);$i--)
{print( $lines[$i]);?><br><hr color=silver>

<?}


?>


</td></tr>
</table>
</BODY>
</HTML>
kirill555 вне форума Ответить с цитированием
Старый 27.10.2007, 15:03   #4
kirill555
Пользователь
 
Регистрация: 22.10.2007
Сообщений: 10
По умолчанию

Скрипт заносит записи в файл guest.txt и 30 последних из него выводит на экран. массив все время растет и наверное с этим и связана ошибка. Может вообще как-то предупреждения можно отключить?
Notice: Undefined offset: 38 in p:\home\localhost\www\guest.php on line 48
kirill555 вне форума Ответить с цитированием
Старый 27.10.2007, 16:51   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Я не знаток РНР, но вот эта конструкция у меня лично вызывает жуткое подозрение:
Цитата:
for($i = $a; $i >($a-30);$i--)
{print( $lines[$i]);?><br><hr color=silver>
<?}?>
</td></tr>
В особенности в сочетании с открывающей фигурной скобкой немного ранее по тексту...
mihali4 вне форума Ответить с цитированием
Старый 31.10.2007, 13:44   #6
Graph
Новичок
Джуниор
 
Регистрация: 31.10.2007
Сообщений: 1
По умолчанию

проблема в том что например ты считаешь из файла в массив 2 строки и количество элементов массива равно 2. но индексы у этих элементов 0 и 1 ... А потом ты пытаешься вызвать элемент массива с индексом 2 вот в этом и ошибка. в начале цикла поставь $i=$а-1
Graph вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Microsoft Office Outlook : Как убрать это: "<неи" ? НеиНеи Софт 0 09.06.2008 17:22
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49
На чем пишутся стратегии типа "Казаков" и "Эпохи империи" Tayfun Свободное общение 3 26.06.2007 20:27