| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Не работает гостевая.... |
| Автор: mr.Anderson 6.5.2005, 17:38 | ||||
Я написал код:
Когда я проверял этот код на компьютере с помощью локального хоста, все работало (сообщения записывались в файл gbsms.txt, все шло нормально). Загрузил файлы на свой сайт - не работает... Пишет:
Ну, последняя надпись (про админа) - моя, как видно из скрипта. А вот почему возникла другая? На локальном сервере все работало безо всяких ошибок и проблем. |
| Автор: PARROT 6.5.2005, 17:44 |
| А файл gbsms.txt создан? |
| Автор: mr.Anderson 6.5.2005, 17:47 | ||
Да, создан. Ну, в принципе, я пробовал и так:
|
| Автор: PARROT 6.5.2005, 17:47 | ||
Вот рабочая книга, попробуй сверить.
Только не забудь заранее создать файл, а то впервый раз будут ошибки, второй раз ругаться уже не будет, потому как файл будет создан. |
| Автор: mr.Anderson 6.5.2005, 17:50 |
| Елки... Не могу разобраться в указанном вами коде. Не позволяют знания PHP... |
| Автор: PARROT 6.5.2005, 17:51 | ||
| $textsms="Имя: $nick \tСообщение: $sms\n"; Добавлено @ 17:52
Ты не разбирайся сначала, вставь код, проверь работоспособность, а потом сверь просто со своим! А еще возможно права на запись файла поставь все 777 у хостера, у меня так голосование не работало. А именно чтение, запись, изменение. Чтобы 3 галки стояли! |
| Автор: Illuminaty 6.5.2005, 17:52 | ||
посмотри права доступа, может с этим проблема
Хорошим стилем считается перед записью в файл проверить на его (файла) наличие |
| Автор: PARROT 6.5.2005, 17:56 |
| Illuminatyпосмотри права доступа, может с этим проблема Да, на моем старом хостинге если не выставишь права на файл 777, то работать ничего не будет, а вот у нового, такие права просто запрещены! У них их нет! |
| Автор: Illuminaty 6.5.2005, 18:05 | ||
И очень зря. Лучше сразу начинать с правильного программирования Теперь по теме. Похожая проблема сейчас в http://forum.vingrad.ru/index.php?showtopic=51175. Там как раз про права доступа. sim7 посмотри обязательно |
| Автор: PARROT 6.5.2005, 18:24 | ||
Как учат, в учебных заведениях, так и начинаем писать. |
| Автор: Sscr 7.5.2005, 09:04 | ||||||||
Попробуй так!
|
| Автор: PARROT 7.5.2005, 11:14 | ||||||
При выводе из файла сообщений, нужно считать данные "a", при добавлении скрипт должен записывать в файл "w" Код написан, но не доконца. Что же это за книга, в которой сообщения не будут выводиться для чтения другим пользователям? Добавлено @ 11:16 потом запись данных в файл не может идти через ;
Точка с запятой не пройдет. Это делается \t, а в конце \n |
| Автор: mr.Anderson 7.5.2005, 19:57 |
| Ладно, попробую подредактировать. За совет по хостингу спасибо! Все заработало. А как вывести на экран сообщения, я не знаю... Можете привести пример простенького кода, содержащего мой код + ваше дополнение? |
| Автор: PARROT 7.5.2005, 20:34 | ||
вывод сообщений на экран.
Вывод по количеству сообщений, например по 10, смотри выше в моем коде. |
| Автор: Aliance 7.5.2005, 21:07 |
| sim7 1) chmode поставь writtable 2) используй не a, а a+ |
| Автор: mr.Anderson 8.5.2005, 13:25 |
| Можно вопрос? Что делает функция split в вашем коде, PARROT? |
| Автор: Aliance 8.5.2005, 13:34 |
| http://ru.php.net/split PS: разбивает строку на массив по заданному регу |
| Автор: PARROT 8.5.2005, 13:36 | ||
Разбивает по табуляциям строку |
| Автор: mr.Anderson 8.5.2005, 13:57 |
| PARROT, я вас прям сейчас расцелую! Я в восторге! Все работает! Я ее затолкал на свой сайт. Кстати, можете посмотреть оформление! Для этого зайдите на мой сайт по ссылке: http://guitarist.phost.name Да простят мне ту рекламу уважаемые админы и модераторы! Я просто разваливаюсь на кусочки от счастья. |
| Автор: PARROT 8.5.2005, 14:33 | ||
Теперь сделай вывод сообщений по 10 штук на страницу:
|
| Автор: mr.Anderson 8.5.2005, 14:59 |
| А вас не затруднит объяснить мне построчно, как ваш код работает? Вставить-то я его вставлю, только хочется понять, что вы сделали... |
| Автор: PARROT 8.5.2005, 15:28 |
| см. выше код. |
| Автор: mr.Anderson 8.5.2005, 15:36 |
| Спасибо, но: 1) Что делает функция "ceil"? 2) Зачем вывод ссылок в квадратных скобках. |
| Автор: Illuminaty 8.5.2005, 16:02 | ||||
По видимому, http://ru2.php.net/ceil
По моему, для визуального разделения ЗЫ Надеюсь, PARROT, не против, что ответил за тебя? |
| Автор: PARROT 8.5.2005, 16:43 |
| Не против конечно, Птице иногда есть нужно, а то умрет и ничего написать не сможет. Получилось? Еще, там где split, исправь его на explode, а то меня ругали уже, по этому поводу. Обещали наказать! Почему? Работает explode быстрее. |
| Автор: mr.Anderson 8.5.2005, 19:01 |
| Однако, если скорость загрузки страницы около 2 секунд, то какая разница, работает ли функция 0.02 или 0.2 секунды? |
| Автор: mr.Anderson 8.5.2005, 19:31 | ||
Чтобы добавлялась дата создания сообщения, можно ли переписать код так:
Если что не так, поправьте, пожалуйста. |
| Автор: Aliance 8.5.2005, 20:02 | ||
это, интересно, на каком языке?! :-))) |
| Автор: PARROT 8.5.2005, 22:56 | ||
Ну вот! На десятый раз получилось! Все заработало без багов. Усе! УРА!!!! Победила саму себя.
Можно пользоваться. Зато вспомнила месяцы приятной учебы на курсах! И мучение с текстовыми файлами... бр...... |
| Автор: mr.Anderson 9.5.2005, 07:53 | ||
| Вот это скрипт! С удовольствием угостил бы вас чашечкой чая, мисс PARROT, если бы только был рядом с вами. Огромное вам спасибо! М-м-м... Только один вопрос: что за ссылка?
И что за "quest.php"? |
| Автор: PARROT 9.5.2005, 10:22 | ||||||||||||
Ну смотри: Эта ссылка, она печатает ссылки от [1] [2] [3] .... по содержанию переменных которые мы определили выше
В которых содержатся наши сообщения, тоесть в [1] содержатся сообщения от 1 до 10, так как мы выводим на страницу по 10 сообщений.
Это адрес твоей страницы, в твоем случае это будет
Тоесть нужно изменить эту ссылку, вот так:
|
| Автор: mr.Anderson 9.5.2005, 11:01 |
| Спасибо! Пойду пробовать. |
| Автор: mr.Anderson 12.5.2005, 20:21 | ||||
Простите, PARROT, но ваш код:
Не работает. Уж не знаю, почему. Пишет вот что:
ну, и так далее много-много раз, как я понял, по количеству написанных сообщений. Можете помочь? |
| Автор: Aliance 12.5.2005, 21:02 | ||||
Нужно это:
заменить на это:
|
| Автор: Illuminaty 12.5.2005, 21:07 |
| И почитать http://forum.vingrad.ru/index.php?showtopic=11308 |
| Автор: PARROT 13.5.2005, 06:26 | ||||||
| А у меня этот код работает. Ошибок не выдает никаких. И на хостинг выложила, тоже работает, вот ссылка http://www.admin.traktora.spb.ru/lenta/pt.php Проблема скорее всего в вашей версии апач или денвера, что у вас стоит на машине. Замените версию апач, денвера на новую. Добавлено @ 06:30
|
| Автор: Illuminaty 13.5.2005, 10:07 | ||
| PARROT, если ты передаешь данные через GET, POST и т.д. лучше в коде считывать их через массивы $_GET[], $_POST[] и т.д. А на том хостинге, гды ты выложила скрипт, скорее всего, register_globals=on, а у sim7 наоборот.
Посмотри тоже, PARROT Aliance все верно написал |
| Автор: PARROT 13.5.2005, 13:01 | ||||||
Первая проблема, это необъявленная переменная s, а остальные все что связанное с этой переменной.
Потом те пути, то что дает sim7, никак не пути хостера, а путь локального компа, где установлен Денвер. А можно узнать, какая версия Денвера у Вас sim7? Повторяюсь, что проблема в вашем сервере, который стоит на компе! |
| Автор: PARROT 14.5.2005, 08:27 |
| Illuminaty Cсылки в гостевой, которая выложена на хостинге не работали потому, как там небыли исправлены адреса, использовались те адреса страниц, которые были у sim7 Это так просто, глянуть на перенаправление! Сейчас все исправила на свои. Кроме того, вчера код книги, тут, смотрел мой препод и сказал, что я полностью права, по поводу забытой переменной $s, которая отвечает за постраничный вывод и дело тут не в глобалке. Причем тут глобалка, если скрипт sim7 тестировал на своем компе? |
| Автор: mr.Anderson 14.5.2005, 14:37 |
| Ага! Значит, дело в переменной! А теперь еще вопрос: куда воткнуть эту строчку, которую вы указали (с объявлением переменной)? |
| Автор: mr.Anderson 15.5.2005, 14:08 | ||
Воткнул эту строчку. Но все равно пришлось наставить @ везде, где были ошибки. Версию Денвера только что обновил, теперь она = 2. Это самая новая версия. Но ошибки все равно вылазят.
Плюс ко всему еще такая вещь: при создании каждого нового сообщения количество страниц в квадратных скобках увеличивается на 2. То есть, если создано только одно сообщение, то в квадратных скобках пишется [1-2]. Если два сообщения создано, то [1-4]. Если три, то [1-6] и так далее, хотя на самом деле этих страниц не существует. Что скажете? |
| Автор: PARROT 16.5.2005, 11:25 | ||||||||
| Что я скажу: Ну первое, строку вставил слишком поздно, ей место перед чтением из файла на вывод, попробуй найти сам ей место, в коде этой строки нет!!!
Потом, почему считалось одно сообщение за 2 я не стала разбираться. Убрала вот эти строки:
заменив их на одну строку (не поняла зачем так наворачивать, такой простой код?)
И пожалуйста, прежде чем вставить сюда код, открой его в блокноте, да в банальном блокноте, выдели все и только после этого вставляй сюда! Не совпадение кодировок твоего редактора и форума, скажется на читаемости твоего кода юзерами, а ведь многие тоже учаться. Пускай им будет легче, чем нам! |
| Автор: mr.Anderson 5.6.2005, 16:13 | ||||
При нажатии на кнопку все проверки происходят, но в файл почему-то ничего не пишется, безо всяких предупреждений и ошибок! |
| Автор: PARROT 5.6.2005, 17:20 | ||
Теперь работает.
|
| Автор: o.s.a. 5.6.2005, 17:28 | ||
sim7, правильно, что не пишет, ошибка в алгоритме
в 1 строчке переменной $html_tags_error было присвоено значение, поэтому if(!$html_tags_error) всегда выдает false P.S. Ну вот PARROT уже все исправила |
| Автор: Гость_sim7 12.6.2005, 18:37 |
| Спасибо! |
| Автор: mr.Anderson 13.6.2005, 12:38 |
| А вот фигушки. Прошу вас переписать код без постранички, а только с теми включениями, которые сделал я. А то у меня никак не получается все убрать. |
| Автор: PARROT 13.6.2005, 13:55 | ||
| А знаешь почему постраничка не работает? Ты переменную $s забыл обозначить, а без нее, увы... Говорили, говорили об $s, и благополучно про нее забыли... Добавлено @ 14:04 Попробуй так. Спешу сказать, что у меня данный код работает и без $s. Будь внимателен при втавке кода, не меняй ничего, тогда есть вероятность что работать будет. Просто скопируй и вставь, Пожалуйста!
|
| Автор: mr.Anderson 13.6.2005, 18:53 |
| Нет, к сожалению, не работает. |
| Автор: PARROT 13.6.2005, 20:17 | ||||
| Так: Вот когда я полностью удалила все сообщения из текстового, у меня ничего не печататется. Просто форма, без записей. Когда добавляю 11 сообщение, 1 уходит. http://guitarist.phost.name/myguestbook.php Ты тут меняешь ссылки на свой адрес?
у меня <a href=quest.php? а у тебя должно быть <a href=myguestbook.php? Я убрала все твои блокировки файла, они собственно тебе ни к чему, потому как вероятность одновременной записи в файл, при посещении домашней страницы равно нулю. Не нужно это! Попробуй так: Если не заработает, я сдаюсь. А еще лучше, когда вставишь этот код и он у тебя не заработает, кинь его сюда, только пожалуйста, не исправляй ничего!
Еще попробуй к себе на хостинг занести, а я зайду, гляну. Только не меняй ничего, сейчас это уже не нужно! Все что нужно поменять для тебя, я уже изменила. Просто закачай и все. |
| Автор: mr.Anderson 14.6.2005, 16:25 | ||
| Нет, не работает. Можете зайти сюда: http://guitarist.phost.name/myguestbook.php Более того - даже не добавляются сообщения! Постоянно пишет, что "HTML-теги запрещены", хотя я их вообще не набирал. Кстати, код я немного изменил (только html-код) чтобы там фон был и все такое. Вот что получилось:
А PHP-код такой же, какой вы мне только что дали. Что скажете? |
| Автор: PARROT 14.6.2005, 16:48 |
| Сообщения добавляются. Только что оттуда. Код php выложи сюда, только тот который сейчас на сервере! Мне html ничего не дает! |
| Автор: mr.Anderson 14.6.2005, 17:21 | ||
Странно... Действительно, сообщения стали добавляться, хотя двадцать минут назад не добавлялись... Вот, пожалуйста, такой код у меня сейчас стоит на сервере. Но с увеличением количества сообщений на 1 количество страниц в квадратных скобках все равно увеличивается. Я пришел, было [1-7]. Добавил одно сообщение, стало [1-8]. |
| Автор: PARROT 14.6.2005, 19:04 | ||||||
| Мистика??? sim7, обрати внимание, у тебя нарушена последовательность записи и чтения! А они должны быть одинаковыми. Тоесть если ты пишешь в файл:
То и читать ты должен из него в той же последовательности. Это тоже может вызывать ошибку и переназначать переменные. А чтение у тебя:
Чуешь разницу? Я один раз так попала! А должно быть так:
Исправь или верх или низ, только... осторожно. |
| Автор: PARROT 14.6.2005, 19:24 | ||
| Больше багов нет. Была проблема с регуляркой: при использовании в сообщении точки, регулярка воспринимала точку как html тег, потому что стояла в наборе. Возможно если бы она стояла вне, то проблем бы не было. Когда точка стоит в наборе она может быть как любым символом, так и точкой. Баг в разнобое с записью и чтением в файл тоже исправлен.
Надеюсь все, будет работать как часы? |
| Автор: mr.Anderson 14.6.2005, 19:36 |
| И хотелось бы сказать, что да, но нет. Все равно количество страниц в скобках увеличивается с количеством сообщений. Можете проверить. Много же времени уходит на эту гостевуху, а она все равно не работает... |
| Автор: PARROT 14.6.2005, 19:52 | ||
| Так количество сообщений и должно увеличиваться. Тем более что это не показывает количество страниц, а показывает количество сообщений на странице, на каждой странице должно быть по 10 сообщений. Тоесть будет так: [1-10] 10 сообщений на 1 странице [11-20] тоже 10 сообщений на одной странице!!! Не нравится сделай так:
Так будут печататься твои страницы, а не количество сообщений на странице. Делов то! ТОлько не меняй ничего! |
| Автор: mr.Anderson 15.6.2005, 16:47 | ||
Спасибо! Ваш код я буду пока на локалке тестить, а пока вставил свой. Он почти такой же, только без постранички. Ну, и небольшие изменения я внес в регулярку. Посмотрите:
Вот так. Заодно можете зайти на мой сайт, там проверить, как работает. |