Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как поправить код?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
RastikRus
Отправлено: 20 Марта, 2012 - 11:36:13
Post Id



Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Март 2012  
Откуда: Казахстан.


Помог: 0 раз(а)




Здравствуйте! Вот код:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. define('ROOT', dirname(__FILE__).'/');
  4.  
  5. $do = $_GET['do'];
  6. $commands = $_GET['commands'];
  7. if (isset($do) && preg_match ('/^[a-z0-9_]+$/is', $do) && file_exists(ROOT . "do/{$do}.php"))
  8. {
  9.     include ROOT . "do/{$do}.php";
  10. }
  11. else
  12. {
  13.     include ROOT . "do/index.php";
  14. }
  15.  
  16. if (isset($commands) && preg_match ('/^[a-z0-9_]+$/is', $commands) && file_exists(ROOT . "commands/{$commands}.php"))
  17. {
  18.     include ROOT . "commands/{$commands}.php";
  19. }
  20. else
  21. {
  22.     include ROOT . "commands/index.php";
  23. }
  24. ?>
  25.  

Когда открываю страницу сайта, то отображается 2 раза одна и та же информация. Но нужно так: если человек заходит на сайт, то ему отображается страница из папки do/index.php, если он переходит по ссылке test.ru/?commands=wordedit то ему открывается страница из папки commands/wordedit.php, если он открывает test.ru/?commands, то ему откроется страница из папки commands/index.php
Как это можно реализовать? Elseif я пробовал, но работает чуть не так как хочется.
 
 Top
Crate
Отправлено: 20 Марта, 2012 - 11:47:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




Может использовать include_once?
 
 Top
RastikRus
Отправлено: 20 Марта, 2012 - 11:50:13
Post Id



Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Март 2012  
Откуда: Казахстан.


Помог: 0 раз(а)




Crate
Это тут причем? Вообще в другом дело.

(Отредактировано автором: 20 Марта, 2012 - 11:52:10)

 
 Top
Crate
Отправлено: 20 Марта, 2012 - 13:07:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




RastikRus
у вас 2 условия, оба не выполняются, значит выводится 2 раза индексная страница.
(Добавление)
Как вариант:
PHP:
скопировать код в буфер обмена
  1. <?
  2. define('ROOT', dirname(__FILE__).'/');
  3.  
  4. $do = $_GET['do'];
  5. $commands = $_GET['commands'];
  6. if (isset($do) && preg_match ('/^[a-z0-9_]+$/is', $do) && file_exists(ROOT . "do/{$do}.php"))
  7. {
  8.     include ROOT . "do/{$do}.php";
  9. }
  10.  
  11. else if (isset($commands) && preg_match ('/^[a-z0-9_]+$/is', $commands) && file_exists(ROOT . "commands/{$commands}.php"))
  12. {
  13.     include ROOT . "commands/{$commands}.php";
  14. }
  15. else
  16. {
  17.     include ROOT . "commands/index.php";
  18. }
  19. ?>
 
 Top
RastikRus
Отправлено: 20 Марта, 2012 - 13:11:08
Post Id



Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Март 2012  
Откуда: Казахстан.


Помог: 0 раз(а)




Crate пишет:
RastikRus
у вас 2 условия, оба не выполняются, значит выводится 2 раза индексная страница.

Ну вот как запретить выводиться 2-ой раз, а только в определенный момент? Пробовал через switch тоже не работает, хотя может руки не из того места растут.
(Добавление)
Crate пишет:
RastikRus
у вас 2 условия, оба не выполняются, значит выводится 2 раза индексная страница.
(Добавление)
Как вариант:
PHP:
скопировать код в буфер обмена
  1. <?
  2. define('ROOT', dirname(__FILE__).'/');
  3.  
  4. $do = $_GET['do'];
  5. $commands = $_GET['commands'];
  6. if (isset($do) && preg_match ('/^[a-z0-9_]+$/is', $do) && file_exists(ROOT . "do/{$do}.php"))
  7. {
  8.     include ROOT . "do/{$do}.php";
  9. }
  10.  
  11. else if (isset($commands) && preg_match ('/^[a-z0-9_]+$/is', $commands) && file_exists(ROOT . "commands/{$commands}.php"))
  12. {
  13.     include ROOT . "commands/{$commands}.php";
  14. }
  15. else
  16. {
  17.     include ROOT . "commands/index.php";
  18. }
  19. ?>

А куда же делась do/index.php? Ведь это индексная страница всего сайта, без нее вообще никак нельзя.
 
 Top
Crate
Отправлено: 20 Марта, 2012 - 13:13:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




Посмотрите мой пример, он вроде должен сработать.
 
 Top
RastikRus
Отправлено: 20 Марта, 2012 - 13:15:11
Post Id



Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Март 2012  
Откуда: Казахстан.


Помог: 0 раз(а)




Crate пишет:
Посмотрите мой пример, он вроде должен сработать.

Я посмотрел, do/index.php должна хоть как использоваться.
 
 Top
Crate
Отправлено: 20 Марта, 2012 - 13:17:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?
  2. define('ROOT', dirname(__FILE__).'/');
  3.  
  4. $do = $_GET['do'];
  5. $commands = $_GET['commands'];
  6. if (isset($do) && preg_match ('/^[a-z0-9_]+$/is', $do) && file_exists(ROOT . "do/{$do}.php"))
  7. {
  8.     include ROOT . "do/{$do}.php";
  9.     exit;
  10. }
  11. else
  12. {
  13.     include ROOT . "do/index.php";
  14.     exit;
  15. }
  16.  
  17. if (isset($commands) && preg_match ('/^[a-z0-9_]+$/is', $commands) && file_exists(ROOT . "commands/{$commands}.php"))
  18. {
  19.     include ROOT . "commands/{$commands}.php";
  20.     exit;
  21. }
  22. else
  23. {
  24.     include ROOT . "commands/index.php";
  25.     exit;
  26. }
  27. ?>
 
 Top
RastikRus
Отправлено: 20 Марта, 2012 - 13:20:27
Post Id



Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Март 2012  
Откуда: Казахстан.


Помог: 0 раз(а)




Crate пишет:
PHP:
скопировать код в буфер обмена
  1. <?
  2. define('ROOT', dirname(__FILE__).'/');
  3.  
  4. $do = $_GET['do'];
  5. $commands = $_GET['commands'];
  6. if (isset($do) && preg_match ('/^[a-z0-9_]+$/is', $do) && file_exists(ROOT . "do/{$do}.php"))
  7. {
  8.     include ROOT . "do/{$do}.php";
  9.     exit;
  10. }
  11. else
  12. {
  13.     include ROOT . "do/index.php";
  14.     exit;
  15. }
  16.  
  17. if (isset($commands) && preg_match ('/^[a-z0-9_]+$/is', $commands) && file_exists(ROOT . "commands/{$commands}.php"))
  18. {
  19.     include ROOT . "commands/{$commands}.php";
  20.     exit;
  21. }
  22. else
  23. {
  24.     include ROOT . "commands/index.php";
  25.     exit;
  26. }
  27. ?>

К сожалению не работает. При любом переходе открывается индексная страница. Каков бы запрос не был.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB