![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Bangladesh |
|
||||||||||||||
![]() AsBest ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1089 Регистрация: 4.9.2004 Где: Калининград Репутация: нет Всего: 17 |
Я делаю админку для сайта, несмотря на то, что еще мало умею, но те люди, которые заказали её у меня не ограничили меня медленными строками, поэтому я взялся, да тем более практика хорошая Столкнулся я с проблемой. Хочу сказать сразу, что тот кто это прочитает и поможет лично от меня получит три плюсика, потому что прочитать все это и ответить на кучу вопросов это большой труд, и от меня, соответственно, большая уважуха. Начну рассказывать все по порядку:
Страница входа в админку это admin.php в корневом каталоге. Там есть такая форма:
Она передает переменные в файл apanel.php который все это дело проверяет, и если пароль правильный, вместе и именем, то выводит админку. Скрипт вот такой:
Если все правильно выводится админка. Пока я сделал только админку для новостей, и выводится она просто:
Этот файл, news.tpl, имеет вот такой код:
Эта форма передает данные в скрипт addnews.php в корневом каталоге. Вот код этого скрипта (он записывает все в БД и считает сколько уже есть новостей:
Теперь со скриптом админки закончено. Переходим к выводу новостей: Файл index.php находится в корневом каталоге. И вот таки вот несложным скриптом вызывает файл news/news.tpl:
А сам файл news.tpl имеет вот такой скрипт для вывода новостей:
Теперь вопросы: - Скрипт который пишет новость в БД не работает и не пишет её, плюс к тому же он не хочет считать сколько новостей уже есть. Как это исправить? - Как можно облегчить эту систему? - Как можно сделать её более безопасней? Только не предлагать отмету регистер_глобалс - Как можно сделать, чтоб можно было удалять новости? -------------------- ок |
||||||||||||||
|
|||||||||||||||
| lovermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 28.12.2004 Где: Прага Репутация: 1 Всего: 8 |
Конечно, у тебя не работает:
$query2 = "INSERT * FROM newosti WHERE choise = 'news'"; Неправильный синтаксис. Смотреть сюда: http://dev.mysql.com/doc/mysql/en/insert.html Слушай, и как ты только не запутываешься в этих .tpl-ах. Я бы всё в сами скрипты вогнал да и всё. Это сообщение отредактировал(а) lovermann - 25.1.2005, 01:25 |
|||
|
||||
| Bangladesh |
|
|||
![]() AsBest ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1089 Регистрация: 4.9.2004 Где: Калининград Репутация: нет Всего: 17 |
а не мог бы ты мне это показать, я просто на таких сайта пожизни теряюсь... не нашел, чего хотел...
-------------------- ок |
|||
|
||||
| lovermann |
|
||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 28.12.2004 Где: Прага Репутация: 1 Всего: 8 |
Давай разберём твой addnews.php.
1)
Зачем ты переменные в кавычки? Ты, наверное, хотел сделать это:
хотя, я думаю, что вот так:
тоже будет работать 2) Вместо
3)
Вместо INSERT ты, наверное, хотел использовать SELECT, раз собираешься что-то считать, да? Что такое choise? Столбец? Если да, тогда в пункте 1) вкладывать значения переменных нужно в определённые столбцы (я не знаю, как они у тебя называютя)
4) $numbers=="0" У тебя эта переменная содержит ЧИСЛО строк в результате SELECTa, а ты его сравниваешь со стринговой переменной 0 (она у тебя в кавычках). Тут кавычки, не нужны. Что странно, в файле news.tpl у тебя этой ошибки уже нет. Это сообщение отредактировал(а) lovermann - 25.1.2005, 03:25 |
||||||||||||||
|
|||||||||||||||
| Bangladesh |
|
||||
![]() AsBest ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1089 Регистрация: 4.9.2004 Где: Калининград Репутация: нет Всего: 17 |
млин
вот в таком случае скрпит пишет, что "новость добавлена" и что "вы добавили 0 новостей", т.е. на самом деле ничгео не добавляется, хотя все переменные есть (GET) вот код который выводит это:
но а если написать так, как приведено ниже, то вообще нифига не выводит либо выводит ошибку. че делать? вот код:
я бы был бы рад, если бы мне бы указали бы на ошибки бы прямо в скрипте. -------------------- ок |
||||
|
|||||
| lovermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 28.12.2004 Где: Прага Репутация: 1 Всего: 8 |
Попробуй POST вместо GET.
Это сообщение отредактировал(а) lovermann - 25.1.2005, 04:05 |
|||
|
||||
| Bangladesh |
|
|||
![]() AsBest ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1089 Регистрация: 4.9.2004 Где: Калининград Репутация: нет Всего: 17 |
все равно, каким методом. дело в другом. почему когда я добавляю OR DIE у мне ничего не работает, а когда без него вроде работает но не добовляется.
p.s. пробывал методом post тоже самое. -------------------- ок |
|||
|
||||
| lovermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 28.12.2004 Где: Прага Репутация: 1 Всего: 8 |
$query = "INSERT INTO newosti (date, ah, news) VALUES ($_POST['date'], $_POST['ah'], $_POST['news'])";
так делал? |
|||
|
||||
| Mont |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 274 Регистрация: 13.11.2004 Где: Altay Репутация: 8 Всего: 12 |
а если так?
- Чем тебе так регистер_глобалс не угодили? ИМХО даже в мануале по ПХП их использование не считается безопасным. - ВСЕГДА не доверяй тому что пришло, даже если это администратор и даже если это только ты - в скрипте addnews.php ты вообще не проверяешь кто тебе новости заносит?
тебе код или только идею? выводи все новости на странице удаления с чекбоксами, отмеченные удаляются из базы, запрос "DELETE FROM .... WHERE ...." если хочешь поподробней не стесняйся -------------------- "Если однажды Вдруг Меня не окажется вовсе в заповедной заветной тарелке Твоего праведного сновидения Знай - Неуловимые мстители настигли меня." © Егор Летов |
||||||
|
|||||||
| IZ@TOP |
|
||||||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Ну кто так делает?
Это как минимум. Понимаешь, т не можешь присвоить ячейке в столбце текст не занесенный в кавычки, MySQL почти все слова из текста примет за поля, а посколько такие поля там врядли присутствуют, он врядли что сделает. Еще бы хотелось посмотреть на структуру таблицы, если это не военая тайна. Добавлено @ 09:59 Удалять новости примерно так: 1) Как сказал монт, выводим в форму заголовки новостей, каждой новости присваивам чекбокс с именем delnews[] и значением (value="") равным $idnowosti, где $idnowosti, уникальный идентификатор новости в таблице. 2) В скрипте перебираем массив delnews и удаляем выбранные новости:
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||||
|
|||||||
| Bangladesh |
|
|||
![]() AsBest ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1089 Регистрация: 4.9.2004 Где: Калининград Репутация: нет Всего: 17 |
знаете... а проблема даже не в том, как я написал. сам по себе скрипт работающий. видели ведь тему, про домашнее задание. вот я там сделал опрос и в нем добавление в базу. раньше все работал и считало таким способом, которым я выше считал. сейчас у меня ничего не работает. MySQL вообще молчит. поставил, для проверки, IPB - он тоже отказывается с базой коннектится... наверное все дело в MySQL ... да не наверное а точно. что делать? он вроде работае (зелёный) а вот принимать ничего не хочет...
-------------------- ок |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
I, GyoZ, если у тебя на локалке стоит, хоттелось бы узнать параметры которые ты прописываешь для доступа.
А отказываться он может по разным причинам. Чтобы их узнать напиши в самом начале своего скрипта error_reporting(E_ALL), и запости сюда что он напишет. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Bangladesh |
|
|||
![]() AsBest ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1089 Регистрация: 4.9.2004 Где: Калининград Репутация: нет Всего: 17 |
IZATOP, спасибо, что помогаешь. но помоги сначала разобраться с проблемой. почему когда я пишу or die в не зависимости со своей ошибкой или стандартной, скрипт вообще не работает - белезна. если без него, то вроде как работает, а ничего не делает... скрипты я выше опубликовал.
-------------------- ок |
|||
|
||||
| Mont |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 274 Регистрация: 13.11.2004 Где: Altay Репутация: 8 Всего: 12 |
переведи с английского or die поймешь or die - означает, что в случае ошибки выполнение скрипта прекращается, а в случае когда без него он продолжает работу, но запрос не выполнен и соответственно переменные которые должны содержать результат запроса просто пусты... Вот так... И сделай как посоветовал IZ@TOP - включи error_reporting и в die напиши отдельный текст для каждой ошибки + код ошибки. Так тебе понятнее будет где и что у тебя происходит. -------------------- "Если однажды Вдруг Меня не окажется вовсе в заповедной заветной тарелке Твоего праведного сновидения Знай - Неуловимые мстители настигли меня." © Егор Летов |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 24 Всего: 55 |
а дату проверять не надо?) |
|||
|
||||
![]()
|
| Правила форума "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. |