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 :: Связать файлы админки с помощью include [2]

 PHP.SU

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


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

> Без описания
KingStar
Отправлено: 05 Августа, 2012 - 14:28:50
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




easy63 пишет:
$value это значение из массива?


да

easy63 пишет:
(in_array($value, $component)) Это проверка существует ли такое значение в массиве по сравнению с введенным урл? но как она работает там же нету оператора сравнения?


вот - in_array

easy63 пишет:
И теперь адресе надо писать ?index=listpage (глобальная переменная и её значение)
Можно ли сделать что бы сравнивались сами глобальные переменные? Что бы адрес выглядил так
?listpage
?addpage
и т.д.?



PHP:
скопировать код в буфер обмена
  1. //Компоненты
  2. $component = array(addpage, listpage);
  3.  
  4. //Перебираем значения и выводим нужную страницу
  5. foreach($_GET as $key => $value) {
  6.    if(in_array($key, $component)) {
  7.    echo "и тут уже инклуд в общем";
  8.    }
  9. }


-----
То что программа работает, не означает что она написана правильно!
 
 Top
easy63
Отправлено: 05 Августа, 2012 - 14:30:55
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Июль 2012  


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




easy63 пишет:
И теперь адресе надо писать ?index=listpage (глобальная переменная и её значение)

И глобальная переменная может быть любая будь адрес ?page=listpage или ?qweqweq=listpage все продолжает работать.

И как вывести файл который будет находиться в другой директории?
PHP:
скопировать код в буфер обмена
  1. include("../admin/page/$value.php");

тут берется именно из папки page, но есть ещё post, settings и т.д.

Как подставить в общем в
PHP:
скопировать код в буфер обмена
  1. include("../admin/page/$value.php");

переменную с директорией типа
PHP:
скопировать код в буфер обмена
  1. include("../admin/$path/$value.php");
 
 Top
KingStar
Отправлено: 05 Августа, 2012 - 14:33:16
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




для ссылок вида ?listpage

PHP:
скопировать код в буфер обмена
  1. //Компоненты
  2. $component = array(addpage, listpage);
  3.  
  4. //Перебираем значения и выводим нужную страницу
  5. foreach($_GET as $key => $value) {
  6.    if(in_array($key, $component)) {
  7.       include("../admin/page/$key.php");
  8.    }
  9. }



$path можешь передать в ссылке

напрмер ?listpage=patch

и тогда вот так

PHP:
скопировать код в буфер обмена
  1. //Компоненты
  2. $component = array(addpage, listpage);
  3.  
  4. //Перебираем значения и выводим нужную страницу
  5. foreach($_GET as $key => $value) {
  6.    if(in_array($key, $component)) {
  7.       include("../admin/$value/$key.php");
  8.    }
  9. }

(Отредактировано автором: 05 Августа, 2012 - 14:36:29)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
easy63
Отправлено: 05 Августа, 2012 - 14:45:33
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Июль 2012  


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




PHP:
скопировать код в буфер обмена
  1. //Компоненты
  2. $component = array(addpage, listpage);
  3.  
  4. //Перебираем значения и выводим нужную страницу
  5. foreach($_GET as $key => $value) {
  6.    if(in_array($key, $component)) {
  7.       include("../admin/page/$key.php");
  8.    }
  9. }


В GET передается имя переменной
В $value перебирается значения из массива
Для чего $_GET as $key => $value нужна переменная $key и => для чего?
 
 Top
KingStar
Отправлено: 05 Августа, 2012 - 14:49:46
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




тебе что здесь, школа программирования??? твою задачу по моему решили

вот http://www.php.su/learnphp/cs/?cycles
или вот http://php.net/manual/ru/control...ures.foreach.php

(Отредактировано автором: 05 Августа, 2012 - 14:51:33)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
easy63
Отправлено: 05 Августа, 2012 - 14:56:19
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Июль 2012  


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




KingStar пишет:
тебе что здесь, школа программирования??? твою задачу по моему решили

Тут форум и часто видел темы где разжевывают всё, я конечно могу бездумно вставить код и забыть о нем, но просто хочу знать как оно работает.
Я никого не принуждал помогать мне, но благодарен за предоставленную помощь, спасибо.
 
 Top
KingStar
Отправлено: 05 Августа, 2012 - 15:05:18
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




массив имеет пару

ключ => значение

вот и в цикле, перебирая переменным

$key = > $value

присваивается эти значния

(Отредактировано автором: 05 Августа, 2012 - 15:13:54)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
maragon
Отправлено: 05 Августа, 2012 - 15:43:17
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1. $page = mysql_real_escape_string($_GET['page']); //Дергаем
  2. $dir = "pages/"; //Директория где лежать все php страницы
  3. $open = $dir.$page.".php";
  4. if(file_exists($open)){ include($open); } else { echo "<b>Запрашиваемый модуль не найден</b>"; }
Радость
Безопасно ли - не знаю) Вроде работать должно.

(Отредактировано автором: 05 Августа, 2012 - 16:00:24)



-----
https://vk[dot]com/tvoycase_ru - Твой чехол со своим дизайном
 
 Top
easy63
Отправлено: 05 Августа, 2012 - 15:52:10
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Июль 2012  


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




KingStar, спасибо ещё раз
maragon, тоже нравиться как вариант, попробую и то и это реализовать и посмотреть как будет лучше
 
 Top
LIME
Отправлено: 05 Августа, 2012 - 15:55:16
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




maragon easy63 всегда!!! обрабатывайте то пришло от юзера
PHP:
скопировать код в буфер обмена
  1. $page = $_GET['page']; // $_GET['page']='../../../../../etc/passwd'  ??

(Отредактировано автором: 05 Августа, 2012 - 15:55:46)

 
 Top
easy63
Отправлено: 05 Августа, 2012 - 18:35:36
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Июль 2012  


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




maragon пишет:
Безопасно ли - не знаю) Вроде работать должно.

Сделал так, очень простой вариант Улыбка
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB