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
Форумы портала PHP.SU :: Версия для печати :: Изменение контента сайта
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Изменение контента сайта

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

1. mik - 21 Мая, 2011 - 01:02:00 - перейти к сообщению
Извините, может поднимали этот вопрос.
но как поменять часть сайта если я перехожу методом GET.
например у меня есть главная страница, на ней есть новости , мне надо перейти в профиль
, как сделать , я пробовал так
if($_GET["location"] == profile){include 'tti/p.php'}
if(!$_GET["location"] ){include 'news.php';}
Но у меня много страниц и все разные ...
Если я тупо задал вопрос .говорите , я расскажу подробнее
2. ugin_root - 21 Мая, 2011 - 01:05:00 - перейти к сообщению
mik
PHP:
скопировать код в буфер обмена
  1. if ( $_GET['location'] == 'profile' )
  2. {
  3.       \\Сдесь делаем всё что угодно
  4. }

в вашем случае:
PHP:
скопировать код в буфер обмена
  1. if ( $_GET['location'] == 'profile' )
  2. {
  3.       require_once('tti/p.php');
  4. }


не
PHP:
скопировать код в буфер обмена
  1. if ($_GET["location"] == profile) { include'tti/p.php' }

а
PHP:
скопировать код в буфер обмена
  1. if ( $_GET["location"] == 'profile' ) { include( 'tti/p.php' ); }
3. mik - 21 Мая, 2011 - 01:15:22 - перейти к сообщению
У меня есть index.php в нем блоки и т.д..
Но у меня еще есть много файлов типо users.php,admin.php,profile.php и т.д.
я не хочу в каждый файл пихать шаблон .
я сделал(как и все думаю делают) в этих файлах (users.php,admin.php,profile.php) контент.

и когда мне надо перейти в users.php я перехожу так ?location=users.
и мне надо что бы вместо новостей, выводило содержимое users.php.

просто у меня много страниц и этим кодом как-то долго писать if ( $_GET["location"] == 'profile' ) { include( 'tti/p.php' ); }
4. DeepVarvar - 21 Мая, 2011 - 01:23:47 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $tpldir = "tpl/"; // папка с шаблонами
  2. // не буду тут писать грозную проверку GET :)
  3. if (isset($_GET['location'])) {
  4.   $location = $_GET['location'];
  5.   // если такой файл есть - подключим его, если нет - подключим шаблон 404
  6.   file_exists($tpldir.$location.".php") ? include($tpldir.$location.".php") : include("404.htm");
  7.   }
  8. else include($tpldir."glavnaya.php");
5. ugin_root - 21 Мая, 2011 - 01:42:19 - перейти к сообщению
mik
так писать нельзя! и так никто не пишет! но если сильно нужно то самый простой способ это JavaScript
CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2.     function go_page(page) {
  3.         document.location.href = page;
  4.     }
  5. </script>
  6. <a href="#" onclick="go_page('users.php');">К юзерам</a>
6. VadiKO - 31 Июля, 2016 - 00:46:23 - перейти к сообщению
Делаю как пишет ugin_root

PHP:
скопировать код в буфер обмена
  1. if ($_GET["action"] == 'news') { include_once( 'mods/news.php' ); }


А мне выдает ошибку на это дело:

CODE (htmlphp):
скопировать код в буфер обмена
  1. Notice: Undefined index ...


Примечательно, что все работает и если отключить отображение ошибок, то работает без проблем, но почему возникает ошибка, как бы все правильно написано??? Не понял
7. Fart - 31 Июля, 2016 - 11:05:21 - перейти к сообщению
mik пишет:
У меня есть index.php в нем блоки и т.д..
Но у меня еще есть много файлов типо users.php,admin.php,profile.php и т.д.
я не хочу в каждый файл пихать шаблон .
я сделал(как и все думаю делают) в этих файлах (users.php,admin.php,profile.php) контент.

и когда мне надо перейти в users.php я перехожу так ?location=users.
и мне надо что бы вместо новостей, выводило содержимое users.php.

просто у меня много страниц и этим кодом как-то долго писать if ( $_GET["location"] == 'profile' ) { include( 'tti/p.php' ); }


рассмотри и такой вариант

PHP:
скопировать код в буфер обмена
  1.  
  2. $loc = ['users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php'];
  3. if(isset($_GET['location']))
  4. {
  5.     if(!empty($_GET['location']) AND array_key_exists($_GET['location'], $loc))
  6.     {
  7.          include_once('tti/'.$loc[$_GET['location']]);
  8.     }
  9. }
  10.  


что касается дублирования шаблона для каждой страницы:
не обязательно делать. создавай функции классы формирующие ту часть страницы, которая тебе необходима. можешь вообще создать 1 файл например content.php вне корневой папки сайта и там делать варианты шаблонов для этих страниц.
8. VadiKO - 31 Июля, 2016 - 12:03:32 - перейти к сообщению
Фигня какая то написана:

PHP:
скопировать код в буфер обмена
  1. $loc = ['users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php'];


Сервер не знает как это понимать. Не понял
9. Fart - 31 Июля, 2016 - 12:26:34 - перейти к сообщению
VadiKO пишет:

Фигня какая то написана:
Сервер не знает как это понимать.


ты не знаешь, что тебе отвечает сервер??? или ты не понимаешь, что тебе отвечают???
10. VadiKO - 31 Июля, 2016 - 12:31:26 - перейти к сообщению
Fart пишет:
ты не знаешь, что тебе отвечает сервер??? или ты не понимаешь, что тебе отвечают???


Ну если тебе от этого станет легче, то вот тебе ответ сервера:

CODE (htmlphp):
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected
11. Fart - 31 Июля, 2016 - 12:33:07 - перейти к сообщению
1. какая версия пхп?
2. при ссылке ?location=admin сервер отвечает
tti/admin.php
3. весь код выложи что ты там собрал
4. проблема не в сервере, а в твоих знаниях, которых увы не хватает!!!
12. VadiKO - 31 Июля, 2016 - 12:53:27 - перейти к сообщению
1. PHP Version 5.3.3
2. оно то должно, но из-за того, что здесь написано ересь:

PHP:
скопировать код в буфер обмена
  1.    $loc = ['users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php'];


оно вообще ничего не выдает, кроме ошибки:

CODE (htmlphp):
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected


3. дело не в коде, но вновь таки если тебе станет легче, то будет достаточно банально простого кода файл index.php и его постое содержимое:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.  
  4. echo 'test';
  5.  
  6. $loc = ['users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php'];
  7. if(isset($_GET['location']))
  8. {
  9.     if(!empty($_GET['location']) AND array_key_exists($_GET['location'], $loc))
  10.     {
  11.          include_once('tti/'.$loc[$_GET['location']]);
  12.     }
  13. }
  14.        
  15. ?>
  16.  


4. я не говорил, то у меня мега знанию, я лишь сетую на то, что серверу строчка:

PHP:
скопировать код в буфер обмена
  1.    $loc = ['users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php'];


непонятна. Однако
13. Fart - 31 Июля, 2016 - 12:55:21 - перейти к сообщению
$loc = ['users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php'];

это массив не помню с какой версии пхп работает с таким массивом:

замени на

$loc = Array('users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php');
пора переходить на новые версии пхп советую уже на пхп 7
14. VadiKO - 31 Июля, 2016 - 13:04:23 - перейти к сообщению
Замена на

PHP:
скопировать код в буфер обмена
  1. $loc = Array('users'=>'users.php','admin'=>'admin.php','profile'=>'profile.php');


прошла на УРА, все работает как надо. Улыбка

Относительно обновления версии пхп полностью согласен, но к этому необходимо подготовится ) ибо не уверен, что код который как бы работал на ранних версиях пхп может начать некорректно работать на версии 7.

СПАСИБО за помощь!!! Язычок
15. Fart - 31 Июля, 2016 - 13:08:54 - перейти к сообщению
я на форуме ради помощи. чем могу как говорится.

по поводу пхп 7.0.х, ты прав:

+

1. скорость работы новой версии почти в 2 раза перед 5.6.х
2. новые возможности

-

1. переход может быть болезненным для старых версий, но не критично... почитав документацию можно подогнать код
2. мало хостов для пхп 7
3. пхп 7 еще только набирает обороты

 

Powered by ExBB FM 1.0 RC1