Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 26.10.2007, 22:08   #1
kirill555
Пользователь
 
Регистрация: 22.10.2007
Сообщений: 10
Репутация: 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
Адрес: /dev/random
Сообщений: 2,834
Репутация: 927
По умолчанию

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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 11:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49
На чем пишутся стратегии типа "Казаков" и "Эпохи империи" Tayfun Свободное общение 3 26.06.2007 20:27


04:27.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru