![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
ZuLLeR |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Вот решил сам попробовать написать и у меня возникла проблема:
База данных создана, все нормально, отправляю сообщение и оно уходит в никуда, что то я забыл)) подскажите что, и правильно ли я все написал??? Мне кажеться что просто напросто я не создал еще одного файла, или этот не дописал, помогите плз, и что бы вы сделали по другому? Это типа guestbook.php
Это типа config.php
|
||||
|
|||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
ошибки ищутся не по принципу "правильно ли я все написал", а с помощью отладки.
берешь, разбираешься сам - почему у тебя "уходит в никуда". запрос выполняется? нормально формируется? P.S. С какой книжки списывал? |
|||
|
||||
Djinn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Регистрация: 18.5.2007 Репутация: 1 Всего: 1 |
error_reporting(E_ALL); посомтри что говорит вообще...
|
|||
|
||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
С какой книжки, я смотрел во многих, и видео уроки тоже, вот что выходит пока, ша еще пошаманю
|
|||
|
||||
snake12 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 23.5.2007 Репутация: нет Всего: нет |
||||
|
||||
ZuLLeR |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Итак кто чем может помогайте, я начал писать простенькую гостевуху, пока только написал вот что:
1) Сама База guestbook:
2) И конфиг config.php
Теперь осталось как я понял самое главное)) и для меня самое сложное это файл guestbook.php, но что я хочу сделать у меня есть форма на html:
Как я представляю должно это все выглядить: 1) запускаю форму 2) заполняю ее 3) жму кнопку, добавляется сообщение, и перекидывает на форму уже с введеным мною сообщением. Мне как я понимаю нужно в форму заинклюдить guestbook.php, который я еще не написал и пока не четко представляю как должен он выглядить, у кого есть желание помогите) И правильно ли я мыслю?? Что бы Вы посоветовали? Есть еще вариант, формы на хтмл не будет, а она будет в самом файле guestbook.php, Но у меня страничка сама на хтмле как мне тогда все это организовать? просто в страницу сайта заинклюдить guestbook.php? |
||||||
|
|||||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Если ты используешь базу данных, то "страничка сама на хтмле" у тебя быть не может. она должна выводить сообщения гостевой из базы данных. а хтмл пока с базой работать не научился.
поэтому страничка должна быть на пхп. на этапе обучения языку, удобнее, чтобы каждое действие было в разных файлах. вывод в одном, запись в другом. поэтому тебе надо сделать два файла - guestbook.php, который вывордит сообщения из базы, и guestbook_add.php, который записывает полученные из формы поля в базу. поскольку пока мы ничего не занесли, и выводить нечего, то традиционно сначала пишется добавление. вот и пиши. только в форме поставь экшен на скрипт добавления. и пиши его данные формы лежат в массиве $_POST обработать их надо функцией mysql_real_escape_string и подставить в запрос. Вот и все, в общем-то |
|||
|
||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Так это я все понял, но прикинь если у меня весь сайт на хтмл, и мне нужно гостевуху вставить как мне проще сделать это будет??? Можно ли заинклюдить или т.п.??? или мне всю страницу на пхп ваять придеться???? а дизайн я бы сказал не особо простой). ТО что ты написал я ша сделаю) Спасибо)
|
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
А какая разница, какой дизайн?
что значит "ваять на пхп"? |
|||
|
||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Ваять это писать) Можно же как нить вставить в хтмл сам пхп и что бы работало) типа страница на хтмл в нее вставлен пхп код
|
|||
|
||||
MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 7 Всего: 32 |
Проще будет самомтоятельно немного напрячь собственный мозг, а не орать "сделайте все за меня". Тут не решают чужие проблеиы. Тут только подсказывают пути их решения. /* а не попросить ли мне Вову дать мне в руки плюсомет, что будет и в этом разделе действовать? а то чем дальше в лес, тем больше партизан */ -------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
||||
|
||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Я спросил совета а не просил делать за меня |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
я тебе дал совет. еще вопросы будут?
|
|||
|
||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Пока нет. Вот посмотри написал еще guestbook_add.php
Шас вот напишу файл для просмотра. Я надеюсь не отнимаю у тебя много времени. |
|||
|
||||
Feldmarschall |
|
||||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
В конфиге напиши строчку
и посмотри, что будет тебе выводить. если ничего не будет выводить, то найди в php.ini строчку
и замени на on а сам php.ini положи в каталог виндоус. и перезагрузи после этого апач |
||||
|
|||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Жаль что я еще не могу ставить репутацию
![]() |
|||
|
||||
Dima 2015 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 287 Регистрация: 16.3.2008 Где: SPb Репутация: 2 Всего: 2 |
ZuLLeR, меня вот это немного смущает:
При этом в структуре таблицы у тебя соотв. 1е поле называется 'id'. По идее если отображение ошибок включено оно должно выругаться на них последними словами что поля такого нету. Аналогично и поле date_auto... Воть, эт раз. А вообще вот погляди, несколько дней назад делал эту тему, мож чего поможет... http://razoom.petrovnn.net/PHP_MyProg/guest_book/ http://razoom.petrovnn.net/PHP_MyProg/gues...ok/add_post.php Код конечно кривой, но понять можно вроде чего к чему... |
|||
|
||||
Feldmarschall |
|
||||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
ZuLLeR, погоди ставить репутацию. Доделай сначала.
Странно, что ты поместил форму вместе с обработчиком. Но раз уж так сделал, то делать гостевую на части и вовсе смысла нет. Вывод-то тем более можно в том же файле делать Добавлено через 1 минуту и 6 секунд Dima 2015, у ZuLLeR-а код гораздо лучше. Это тебе надо у него поучиться, а не ему у тебя. Добавлено через 2 минуты и 59 секунд
лучше всего писать
|
||||
|
|||||
Dima 2015 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 287 Регистрация: 16.3.2008 Где: SPb Репутация: 2 Всего: 2 |
Feldmarschall, зато у меня работает :р
|
|||
|
||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Все включил вот что вышло хмм буду разбираться)
Notice: Use of undefined constant action - assumed 'action' in Z:\home\test1.ru\www\guestbook.php on line 21 |
|||
|
||||
Dima 2015 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 287 Регистрация: 16.3.2008 Где: SPb Репутация: 2 Всего: 2 |
ZuLLeR, в скобочки action возьми
![]() У ассоциативных массивов индексы - строки. $_POST[message] -> $_POST['message'], ну и везде аналогично... Это сообщение отредактировал(а) Dima 2015 - 20.7.2008, 15:20 |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Это самая дурацкая фраза, которую только можно сказать. Добавлено через 2 минуты и 46 секунд не у "ассоциативных массивов строки", а message - строка. и неважно, у ассоциативного массива или в каком другом месте кода. массив тут не при чем. Это сообщение отредактировал(а) Feldmarschall - 20.7.2008, 15:24 |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
Dima 2015, будь добр, если не уверен в корректности своего кода, не советуй другим.
в любом случае, "у меня так работает" - не аргумент. обычная машина вполен может ехать на трех колесах, если хитро разместить нагрузку. но ехать так она будет до первого поворота. Feldmarschall, Dima 2015, прошу вынести обсуждение подходов к программированию в отдельную тему. |
|||
|
||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
А ты как предлагал форму отдельно, add отдельно и просмотр отдельно? |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
да но неважно уже.
написал вывод? |
|||
|
||||
ZuLLeR |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Как я понимаю мне теперь нужно в этом же файле сделать вывод сообщения из бд) ша че нить попробую)
Добавлено через 22 секунды пишу) Добавлено через 9 минут и 28 секунд Кстате я решил проблему))
заменил на
Вроде все правильно и ошибки не выдает) |
||||
|
|||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
А подумать что ты тут делаешь? -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
А что бы ты сделал?
|
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
ZuLLeR, он бы прочитал в документации описание функции isset, оператора if, оператора сравнения == и подумал над осмысленностью всей конструкции в целом.
|
|||
|
||||
Nigel |
|
|||
познаю мир ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: 7 Всего: 19 |
эх, жаль, что в php нет строгой типизации переменных
|
|||
|
||||
ZuLLeR |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Вот посмотрите и оцените, все ли с вашей точки зрения правильно, посоветуйте что еще сделать, и правильно ли оформлен код (если нет, то можно с примерами буду только благодарен). Вообщем прошу рецензию)))
БАЗА ДАННЫХ:
ФАЙЛ КОНФИГА:
И САМА ГОСТЕВУХА:
|
||||||
|
|||||||
dimcat |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 15.5.2007 Репутация: нет Всего: нет |
Ну, ещё в таких случаях принято время записывать
![]()
|
|||
|
||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Ок, сделаю время еще)
|
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
наооборот хорошо. (лично мне) -------------------- Amazing ![]() |
|||
|
||||
Feldmarschall |
|
||||||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
ZuLLeR, прекрасно. просто прекрасно.
Сказать по правде, я счастлив видеть такой код. Независимо от того, написан ли он полностью самостоятельно, или заимствован кусками. Главное, что код простой и понятный и в нем нет ничего лишнего. А это очень важно, чтобы не было лишнего. Разными деталями - капчами, антиматами, картинками и прочим можно обрасти потом. Но при первом написании важно, чтобы был понятен и четко виден основной принцип. Чтобы потом можно было легко превратить гостевую в форум, в ленту новостей и почти в любой другой тип приложения. Не хватает буквально пары мелочей. Во-первых, после получения формы методом POST, надо делать редирект методом GET. чтобы не добавляли записи повторно. После mysql_query надо дописать
Во-вторых, надо отдать должное Dima 2015, в его гостевой реализована защита от XSS инъекций. Не сказать, что для гостевой это так уж актуально, но тем не менее, позволять использовать хтмл теги посетителям, все же, не стоит. Это можно сделать двумя путями: либо просто убрать все теги функцией strip_tags(), либо заменять теги на html-эквиваленты. Я предпочитаю второй способ. Соответственно, код вывода изменится на
Вот и все. Теперь можно приступать к написанию админки. Кстати, пока писал код, обнаружил неувязку. id в базе - это совсем не порядковый номер. Ведь ты же можешь удалять некоторые сообщения. Чтобы пронумеровать сообщения, надо завести отдельную переменную, и увеличивать её при выводе на единицу.
|
||||||
|
|||||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Обязательно все поправлю и доведу до ума)))
|
|||
|
||||
Gold Dragon |
|
||||||||||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
ну и я добавлю пару замечаний
![]() после того, как пользователь нажал "Отправить" - для начала вводим переменную ошибки
- проверяем имя (нельзя доверять тому что приходит от пользователя
ну если быть более требовательным и в имени оставить только буквы и цифры, то можно проверить ещё и на это
- не думаю что в сообщении вообще должно быть что-то кроме текста, так что теги там не нужны. и удалять их нужно перед сохранением в базе. За одно не помешает удалить все пробелы до и после сообщения. И заодно поставить ограничение на количество символов в сообщении, а то некоторые попытаются загрузить "Войны и Мир". В итоге должно получиться примерно такое
- не мешало бы проверить и правильность мыла ![]()
Добавлено через 6 минут и 14 секунд - затем обрабатываем всё что у нас получилось
- ещё бы не помещало предусмотреть "фильтр мата" - ну и обязательно добавить проверочный код. Если не сделать, то роботы завалят спамом -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||||||||||
|
|||||||||||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Супер спасибо всем) я и сам мог бы все это написать, но все равно огромное спасиб
![]() |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
и про постраничный вывод не забудь
Добавлено через 3 минуты и 5 секунд кстати, зачем нужна нумерация сообщений? Не достаточно просто использовать ID? При таком условии каждое сообщение будит иметь индивидуальный номер на который можно ссылаться -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
ZuLLeR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 5.6.2008 Репутация: нет Всего: нет |
Про страничный вывод я помню))) и про нумерацию тоже уже сделал, но все равно спасибо за советы) Как все доработаю выложу, пока времени нет нужно логотип, дизайн сайта и наружку сделать, вообщем дел попа) Кстати ты не знаешь смотри есть форма для отправки сообщений с сайта, как сделать что бы помимо самого сообщения отправляемого мне на мыло, отправлялось тому кто пишет стандартное для всех сообщение типа: "спасибо, но на данный момент все заняты" что то в этом роде. Часть кода формы выглядит так:
Извиняюсь что не в тему, если знаете ответ, можно с примером кода))) а после плз удали сообщение из темы, если можешь) Спс ![]() |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
есть готовые классы, но пользуюсь этим (может конечно это и не правильно, пусть тогда подправят)
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |