Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Как сократить вес скрипта?
На страницу 1, 2, 3  След.
 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Сб Авг 20, 2011 9:41 am    Заголовок сообщения: Как сократить вес скрипта?
Ответить с цитатой

Дело в том, что сейчас, чтобы добавить, отредактировать, или удалить новость, используются 5 файлов, а хотелось бы организовать в 1. Через Else не получается, тоесть
if ..

else
...
if..
else
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Авг 20, 2011 12:34 pm    Заголовок сообщения:
Ответить с цитатой

почему не получается? Анализируешь GET/POST-переменные и выполняешь определенные действия.
Плюс ко всему даже если все не собирать в одном сценарии (лично я не люблю такой подход, потому что сценарий потом получается мега огромный) нужно вынести общую часть (подключение к БД и т.д.) в один файл и подключать его с помощью include_once.
Также нужно использовать шаблонизаторы, чтобы вынести HTML-код за пределы PHP-кода
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Сб Авг 20, 2011 2:36 pm    Заголовок сообщения:
Ответить с цитатой

den, я из УГ скрипта Попова сделал конфетку, почти. Так вот там, у меня получилось около 15 файлов, чтобы добавлять новости и т.д. Подключение я вынес, подключил шаблонизатор из книги + старый оставил. В общем, 7мб получается. Мне это немного не нравится.
Сегодня весь день маюсь со скриптом. Устал жутко, а так и не получилось сделать что-то вроде такого:
/admin/index.php?do=articles?do=addnews с выводом отправлена новость, или нет Bayan Arrow
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Авг 20, 2011 3:06 pm    Заголовок сообщения:
Ответить с цитатой

нужно так

/admin/index.php?do=articles&do=addnews
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Сб Авг 20, 2011 4:34 pm    Заголовок сообщения:
Ответить с цитатой

Моего мозга на это не хватает!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Авг 20, 2011 4:35 pm    Заголовок сообщения:
Ответить с цитатой

Ты сделал ошибку в URL, вместо символа & ты используешь ?, поэтому и не работает! Посмотри на свой URL

/admin/index.php?do=articles?do=addnews

и на мой

/admin/index.php?do=articles&do=addnews
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Сб Авг 20, 2011 4:50 pm    Заголовок сообщения:
Ответить с цитатой

den, я не допираю, как сделать поэтапные действия в файле.
Методом do-while - там столько проверок нужно делать .....
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Авг 21, 2011 6:57 am    Заголовок сообщения:
Ответить с цитатой

Да какой там do-while. Смотри как делается

Тебе нужно установить реакцию на do=articles и do=addnews. Но получается, что скрипту передаются две переменным с одним именем, следовательно первое значение (articles) потеряется:

admin/index.php?do=articles&do=addnews

Нужно сделать URL так:

admin/index.php?do=articles&action=addnews

Следовательно мы вторую переменную называем action. Далее сам код

Код:

// проверяем, передана ли сценарию переменная do
if (isset($_REQUEST['do']) {

// Да, переменная передана
$do = $_REQUEST['do'];

if ($do==="articles") {
    // нужно что-то сделать со статьями
    // чтобы понять, что нужно анализировать переменную action

   // если переменная action не установлена, умираем
   if (!isset($_REQUEST['action']) die('No action specified');

   $action = $_REQUEST['action'];

   // Анализируем действие
   if ($action==="addnews") { // добавляем статью }
   if ($action==="delnews") { // удаляем статью }
   if ($action==="deleteall") { // удаляем все }
   // и т.д.

    }

}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Вс Авг 21, 2011 11:40 am    Заголовок сообщения:
Ответить с цитатой

Спасибо, буду разбираться.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 5:32 pm    Заголовок сообщения:
Ответить с цитатой

я вот так сделал:
Код:

$do = $_GET['do'];

if($do==''){
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'",$db);
$myrow = mysql_fetch_array($result);
}
if($do=='contacts'){
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='contacts'",$db);
$myrow = mysql_fetch_array($result);
}


Как правильно вставить проверку $_GET['do'] а то мне пишет синтаксическую ошибку "{"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 5:36 pm    Заголовок сообщения:
Ответить с цитатой

проблему решил так: if (isset($_GET['do'])) {$do = $_GET['do'];}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Авг 24, 2011 5:36 pm    Заголовок сообщения:
Ответить с цитатой

Правильнее так

if (!isset($_GET[do])) {
// переменная не передавалась, делаем что-то
}
elseif ($_GET[do]==="contacts") {
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Ср Авг 24, 2011 5:36 pm    Заголовок сообщения:
Ответить с цитатой

А я как раз в это время писал тебе ответ! Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 5:45 pm    Заголовок сообщения:
Ответить с цитатой

но if($do==''){
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'",$db);
$myrow = mysql_fetch_array($result);
}
if($do=='contacts'){
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='contacts'",$db);
$myrow = mysql_fetch_array($result);
}

выводит только первые два, а остальные нет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Светозар

Участник тусовки


Зарегистрирован: 20.02.2010
Сообщения: 354
Откуда: Москва

СообщениеДобавлено: Ср Авг 24, 2011 5:48 pm    Заголовок сообщения:
Ответить с цитатой

if (!isset($_GET[do])) {
// переменная не передавалась, делаем что-то
}
elseif ($_GET[do]==="contacts") {
}


а потом через elseif всё? А чем мой вариант плох?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
На страницу 1, 2, 3  След.
Страница 1 из 3
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис