![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Dionysius |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 13.4.2006 Где: Новосибирск Репутация: нет Всего: 1 |
Исходные данные: PHP + MySQL
Задача: написать скрипт гостевой книги, который должен быть юзер-френдли, а именно: запускать инсталлятор, который будет указывать пользователю, что нужно нажать. Этот скрипт должен создать базу данных и запомнить настройки подключения к ней. Скрипт БД должен быть единым файлом. У меня было два варианта, и они оба не прокатили. 1. Инсталлятор предлагает ввести имя хоста, имя СУЩЕСТВУЮЩЕГО пользователя (который имеет права на создание новой БД), его пароль и название создаваемой БД. Создаёт эту БД, а затем генерирует содержимое файла настроек, который пользователь должен будет создать. 2. Скрипт ничего не спрашивает, пользователь читает инструкцию, редактирует переменные прямо в скрипте для подключения к БД и создаёт таблицу в своей БД (или просит администратора). Вопрос: как можно создать БД и сохранить настройки не генерируя при этом побочных файлов? Тем более что, как правило, никакой нормальный админ не позволит Апачу писать в файлы внутри веб-директорий. Или я не прав? И как можно средствами скрипта создать БД, если пользователь непривелигированный? |
|||
|
||||
| Nicholas_S |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Dionysius,
В любом случае, использование визуального юзер-френдли визарда необходимо, ибо это удобнее и понятнее, чем редактирование файла настроек вручную. К тому же, в функции визуального интерфейса входит контроль допущенных при вводе ошибок. Индивидуальные настройки для каждого пользователя можно хранить либо в отдельной БД, либо в файле настроек, третьего не дано. Так же подумай, стоит ли создавать отдельную БД (а скорее всего не стоит), может быть можно обойтись отдельной таблицей/таблицами.
В этом случае нужно проверять имя БД и просить ввести новое в случае, если такая БД уже существует. Лучше этого не делать вовсе (не спрашивать название).
Или ты не прав. Все зависит от политики администрирования на хостинге, но, как правило, такое разрешается.
Если прав нет на создание новой БД, то никак. Обходись отдельными таблицами. -------------------- ...все в мире относительно |
||||||||
|
|||||||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
Тебе не БД надо создавать, в большинстве случаев на это прав не дадут, а таблицы... Это несколько разные понятия.
Первый вариант 100% верен. Только прибавить к этому надо еще и генерацию конфигурационного файла, куда при удачной инсталляции запишутся введенные настройки. |
|||
|
||||
| Dionysius |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 13.4.2006 Где: Новосибирск Репутация: нет Всего: 1 |
Хорошо, нам нужно создать таблицу. Как правило, права на создание таблицы имеются? То есть спрашиваем имя существующей БД, в которой юзер может создавать таблицы, спрашиваем его логин:пароль. А потом записываем эти данные в этот же самый файл скрипта?
Если прав не достаточно для выполнения какой-то из вышеописанных задач, выдаём информативное сообщение об ошибке... типа "свяжитесь с Вашим администратором" и т. д. Так? |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
Грубо говоря да.
|
|||
|
||||
| Dionysius |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 13.4.2006 Где: Новосибирск Репутация: нет Всего: 1 |
Мне ещё посоветовали посмотреть исходники Joomla - у неё подобный установочный скрипт.
|
|||
|
||||
| americanets |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1100 Регистрация: 27.9.2006 Репутация: 2 Всего: 12 |
угу, проверяем правильность паролей переданных для подключения, если не подключился значит неверно, после подключения крейтим таблицы, с дампом сложнее там нажно сначало его распустить и запихать в цыкл, а инсталяторов много нужно разбирать и смотреть как делается, выкидывать лишнее впихивать свое
самообразование на чужом лучше чем на пустом -------------------- Пусть популярную музыку слушают те, среди кого она популярна |
|||
|
||||
| Dionysius |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 13.4.2006 Где: Новосибирск Репутация: нет Всего: 1 |
Потестируйте, пожалуйста, скрипт у кого есть возможность. Требуется PHP5. Небольшая дока находится внутри скрипта.
Как оно с точки зрения юзер-френдли? Присоединённый файл ( Кол-во скачиваний: 11 )
gb.txt 18,52 Kb |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
1. @ в топку.
2. Обработка ошибок где? 3. Запись в файл делается проще, точнее генерация содержимого.. Тебе не надо ее менять, надо перезаписать. 4. Для вывода кусков гипертекста используй HEREDOC конструкции. 5. register_globals в Off. Для начала это исправь, потом буду остальное смотреть. |
|||
|
||||
| Dionysius |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 13.4.2006 Где: Новосибирск Репутация: нет Всего: 1 |
ОК
До сих пор был уверен, что она есть. Давай с этого места поподробнее.
Тоже не понял, о чём речь. Попробуй быть более информативным, если не трудно.
ОК |
||||||||
|
|||||||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
Где? покажи, где у теья проверки, что запросы выполняются?
Как ты создаешь конфигурационный файл? Берешь, читаешь, изменяешь, пишешь... А смысл когда можно сразу записать? HEREDOC - читай в мане <<<EOF EOF; Это сообщение отредактировал(а) Mal Hack - 23.12.2006, 18:43 |
|||
|
||||
| Dionysius |
|
||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 13.4.2006 Где: Новосибирск Репутация: нет Всего: 1 |
А это что?
...
В смысле "сразу"? Ну, знаю я про эту конструкцию:
Код становится компактнее, но принцип записи в файл от этого ведь не меняется... |
||||||||||
|
|||||||||||
| Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
Пользователю должна выводиться ошибка в дизайне, а не голым текстом... Так что if'ами...
На кой черт это??? |
||||
|
|||||
| Dionysius |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 13.4.2006 Где: Новосибирск Репутация: нет Всего: 1 |
Вот, сделал изменения в коде.
Дизайн не трогал, для меня пока на первом плане стоит функциональность. И ещё я не нашёл приемлемого способа (кроме как установления альтернативного php.ini) для задания в скрипте register_globals=off. Да и потом, данные передаются через $_GET и $_POST, не вижу смысла в этой опции, которая по умолчанию всё равно off. Это сообщение отредактировал(а) Dionysius - 26.12.2006, 19:22 Присоединённый файл ( Кол-во скачиваний: 7 )
gb.txt 18,63 Kb |
|||
|
||||
| Mal Hack |
|
||||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
ini_set? .htaccess?
Вместо die... Не услышано. Что касается откаты при не возможности установить chmod... А почему бы не сделать эту проверку раньше, чтобы не делать отката? Проще и лучше.
Лучше все-таки так:
или вообще в одну строчку. И тут надо бы сразу в свойство записать. |
||||||
|
|||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |