| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > мой скрипт, вопросы... |
| Автор: Bangladesh 25.1.2005, 01:01 | ||||||||||||||
| Я делаю админку для сайта, несмотря на то, что еще мало умею, но те люди, которые заказали её у меня не ограничили меня медленными строками, поэтому я взялся, да тем более практика хорошая Столкнулся я с проблемой. Хочу сказать сразу, что тот кто это прочитает и поможет лично от меня получит три плюсика, потому что прочитать все это и ответить на кучу вопросов это большой труд, и от меня, соответственно, большая уважуха. Начну рассказывать все по порядку: Страница входа в админку это admin.php в корневом каталоге. Там есть такая форма:
Она передает переменные в файл apanel.php который все это дело проверяет, и если пароль правильный, вместе и именем, то выводит админку. Скрипт вот такой:
Если все правильно выводится админка. Пока я сделал только админку для новостей, и выводится она просто:
Этот файл, news.tpl, имеет вот такой код:
Эта форма передает данные в скрипт addnews.php в корневом каталоге. Вот код этого скрипта (он записывает все в БД и считает сколько уже есть новостей:
Теперь со скриптом админки закончено. Переходим к выводу новостей: Файл index.php находится в корневом каталоге. И вот таки вот несложным скриптом вызывает файл news/news.tpl:
А сам файл news.tpl имеет вот такой скрипт для вывода новостей:
Теперь вопросы: - Скрипт который пишет новость в БД не работает и не пишет её, плюс к тому же он не хочет считать сколько новостей уже есть. Как это исправить? - Как можно облегчить эту систему? - Как можно сделать её более безопасней? Только не предлагать отмету регистер_глобалс - Как можно сделать, чтоб можно было удалять новости? |
| Автор: lovermann 25.1.2005, 01:24 |
| Конечно, у тебя не работает: $query2 = "INSERT * FROM newosti WHERE choise = 'news'"; Неправильный синтаксис. Смотреть сюда: http://dev.mysql.com/doc/mysql/en/insert.html Слушай, и как ты только не запутываешься в этих .tpl-ах. Я бы всё в сами скрипты вогнал да и всё. |
| Автор: Bangladesh 25.1.2005, 02:34 |
| а не мог бы ты мне это показать, я просто на таких сайта пожизни теряюсь... не нашел, чего хотел... |
| Автор: lovermann 25.1.2005, 03:18 | ||||||||||||||
| Давай разберём твой addnews.php. 1)
Зачем ты переменные в кавычки? Ты, наверное, хотел сделать это:
хотя, я думаю, что вот так:
тоже будет работать 2) Вместо
3)
Вместо INSERT ты, наверное, хотел использовать SELECT, раз собираешься что-то считать, да? Что такое choise? Столбец? Если да, тогда в пункте 1) вкладывать значения переменных нужно в определённые столбцы (я не знаю, как они у тебя называютя)
4) $numbers=="0" У тебя эта переменная содержит ЧИСЛО строк в результате SELECTa, а ты его сравниваешь со стринговой переменной 0 (она у тебя в кавычках). Тут кавычки, не нужны. Что странно, в файле news.tpl у тебя этой ошибки уже нет. |
| Автор: Bangladesh 25.1.2005, 03:55 | ||||
| млин вот в таком случае скрпит пишет, что "новость добавлена" и что "вы добавили 0 новостей", т.е. на самом деле ничгео не добавляется, хотя все переменные есть (GET) вот код который выводит это:
но а если написать так, как приведено ниже, то вообще нифига не выводит либо выводит ошибку. че делать? вот код:
я бы был бы рад, если бы мне бы указали бы на ошибки бы прямо в скрипте. |
| Автор: lovermann 25.1.2005, 04:04 |
| Попробуй POST вместо GET. |
| Автор: Bangladesh 25.1.2005, 04:15 |
| все равно, каким методом. дело в другом. почему когда я добавляю OR DIE у мне ничего не работает, а когда без него вроде работает но не добовляется. p.s. пробывал методом post тоже самое. |
| Автор: lovermann 25.1.2005, 04:20 |
| $query = "INSERT INTO newosti (date, ah, news) VALUES ($_POST['date'], $_POST['ah'], $_POST['news'])"; так делал? |
| Автор: Mont 25.1.2005, 06:01 | ||||||
а если так?
- Чем тебе так регистер_глобалс не угодили? ИМХО даже в мануале по ПХП их использование не считается безопасным. - ВСЕГДА не доверяй тому что пришло, даже если это администратор и даже если это только ты - в скрипте addnews.php ты вообще не проверяешь кто тебе новости заносит?
тебе код или только идею? выводи все новости на странице удаления с чекбоксами, отмеченные удаляются из базы, запрос "DELETE FROM .... WHERE ...." если хочешь поподробней не стесняйся |
| Автор: IZ@TOP 25.1.2005, 09:53 | ||||||
Ну кто так делает?
Это как минимум. Понимаешь, т не можешь присвоить ячейке в столбце текст не занесенный в кавычки, MySQL почти все слова из текста примет за поля, а посколько такие поля там врядли присутствуют, он врядли что сделает. Еще бы хотелось посмотреть на структуру таблицы, если это не военая тайна. Добавлено @ 09:59 Удалять новости примерно так: 1) Как сказал монт, выводим в форму заголовки новостей, каждой новости присваивам чекбокс с именем delnews[] и значением (value="") равным $idnowosti, где $idnowosti, уникальный идентификатор новости в таблице. 2) В скрипте перебираем массив delnews и удаляем выбранные новости:
|
| Автор: Bangladesh 26.1.2005, 01:15 |
| знаете... а проблема даже не в том, как я написал. сам по себе скрипт работающий. видели ведь тему, про домашнее задание. вот я там сделал опрос и в нем добавление в базу. раньше все работал и считало таким способом, которым я выше считал. сейчас у меня ничего не работает. MySQL вообще молчит. поставил, для проверки, IPB - он тоже отказывается с базой коннектится... наверное все дело в MySQL ... да не наверное а точно. что делать? он вроде работае (зелёный) а вот принимать ничего не хочет... |
| Автор: IZ@TOP 26.1.2005, 09:58 |
| I, GyoZ, если у тебя на локалке стоит, хоттелось бы узнать параметры которые ты прописываешь для доступа. А отказываться он может по разным причинам. Чтобы их узнать напиши в самом начале своего скрипта error_reporting(E_ALL), и запости сюда что он напишет. |
| Автор: Bangladesh 27.1.2005, 01:16 |
| IZATOP, спасибо, что помогаешь. но помоги сначала разобраться с проблемой. почему когда я пишу or die в не зависимости со своей ошибкой или стандартной, скрипт вообще не работает - белезна. если без него, то вроде как работает, а ничего не делает... скрипты я выше опубликовал. |
| Автор: Mont 27.1.2005, 05:22 | ||
переведи с английского or die поймешь or die - означает, что в случае ошибки выполнение скрипта прекращается, а в случае когда без него он продолжает работу, но запрос не выполнен и соответственно переменные которые должны содержать результат запроса просто пусты... Вот так... И сделай как посоветовал IZ@TOP - включи error_reporting и в die напиши отдельный текст для каждой ошибки + код ошибки. Так тебе понятнее будет где и что у тебя происходит. |
| Автор: Opik 27.1.2005, 14:42 | ||
а дату проверять не надо?) |
| Автор: IZ@TOP 27.1.2005, 15:25 |
| Opr, это была не проверка |
| Автор: Leksey 28.1.2005, 00:39 | ||
Господа прошу обратить внимание на Листинг apanel.php в нем есть момент
++$gua_min даст сразу значение один, тоесть первая пара логин/пароль проверяться не будут и соответственно зайти под ними будет нельзя. |
| Автор: Bangladesh 28.1.2005, 01:23 | ||
логинизацию я давно уже переделал. просто сдела $qua_min = 0 и все работает. волнуте другое, что я понимаю, что есть такое OR DIE, и вроде английский понимаю... просто когда пишу и свои и не свои скрипт не выполняется - просто белый экран, ну вот смотрите, если найдете ошибку, дайте знать, а так мне кажется что это мускул:
|
| Автор: Leksey 28.1.2005, 01:47 | ||
dody? Это новый тэг |
| Автор: Bangladesh 28.1.2005, 03:52 |
| это не имеет значения. это даже не первый тег, а закрывающий... все равно код то не прописывается. пусть хоть такой бы прописался |
| Автор: Mont 28.1.2005, 05:20 | ||||
I, GyoZ, почитай внимательно что говорил тебе IZ@TOP:
значения полей заключи в кавычки и попробуй.
mysql_escape_string не забывай |
| Автор: IZ@TOP 28.1.2005, 10:21 |
| I, GyoZ, попробуй прописать в начале файла error_reporting(E_ALL) и прочесть чем на тебя РНР руганется? |
| Автор: Bangladesh 29.1.2005, 01:06 |
| знаете, раньше и без ковычек пробывал и с ковычками - работало... а вообще все дело в том, что у меня че-то с мускулом не то было. я сейчас ДЕНВЕР поставил. все работает - новости добавляются. написал лог ip адресов сегодня... а вообще еще много писать. решил все же добавить удаление новостей. IZATOP, помнишь ты мне писал как примерно удалять, если не трудно мог бы ты мне цикл показать как это делать и что для этого надо написать |
| Автор: Bangladesh 1.2.2005, 02:47 |
| люди а как сделать в php my admin уникальный ключ и как его получить??? в переменную? |