Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простой PHP сайт 
V
    Опции темы
SergV
Дата 1.7.2008, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



skyboy, мне выдало это - Array ( [_VALID_MOS] => 1 )
у меня сначало идёт присвоение переменных, потом подключается языковой файл, а потом файл в котором функция вызова контента, потом файл шаблона, откуда и вызывается функция.

Цитата

Страниц или скриптов? 
Если страниц, то это вообще от индекса не зависит, их показывают соответствующие скрипты. если скриптов, то откуда их много возьмется? 

Файлов index.php с таким содержимым
Код

<?php
define( '_VALID_MOS', 1 );
$title="Home"; // Переменная заголовка страницы контента
$page="home"; // Переменная имени подключаемого файла страницы контента
if (file_exists($_SERVER['DOCUMENT_ROOT'].'/config.php')) {
require_once( 'config.php' ); // подключаемый файл пхп, где производятся постальные проверки и подключения, как языковой файл, файл функций, и шаблон.
}
?>


Цитата

чем проще? что за странная идея запихнуть все в один файл?
у тебя на диске в компьютере все файлы лежат в одном каталоге? вызываются одной программой? 
объясни - в чем удобство, когда каждый скрипт не вызывается отдельно, а все толкаются в индексе и надо писать отдельный код, который будет их разбирать?

Да не пишу я кучу одинаковых скриптов, наоборот, хочу чтобы в этой индекс странице был один скрипт, который передавал бы информацию о вызове нужного файла с текстом, и всё. Если бы я хотел сделать кучу одинаковых файлов с одинаковыми скриптами, я не стал бы их разбивать, а просто бы индекс файл объединил бы с конфиг файлом, а то и вообще все скрипты в индекс.пхп запихал бы, и наплодил бы их столько, сколько страниц. Я может и плохо знаю пхп, но не стану дублировать скрипты.

Цитата

о господи. наконец-то написал, в чем проблема. _HOME у тебя - КОНСТАНТА. 
Теперь объясни, зачем ты хочешь записывать имя константы в переменную?

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

Мне от куда знать, константа это или что, у меня мозги не резиновые, всё не запомнить.
Константу я помещаю в переменную, так как мне нужно их файла индексюпхп передать в файл с функциями, к какой странице это относится, и вывести нужное название. Функция одна для контента, и вывести заголовок я могу только один, а значить через переменную из индекс.пхп.
Зачем мне язык передовать через адресную строку язык, или делать разные языки на разных субдоменах, для сайта в десяток страниц? Всё прекрасно работает с языком через куки, всё кроме этой переменной.

Ладно с языком и прочим, сделаю через масив в том же переменной контента, и буду вызывать через полученную переменную.
PM   Вверх
skyboy
Дата 1.7.2008, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(SergV @  1.7.2008,  10:44 Найти цитируемый пост)
у меня сначало идёт присвоение переменных, потом подключается языковой файл

т.е. сначала запихиваешь константы по переменным, а потом уже только эти константы объявляешь? да-да, я помню - ты не программист. но, черт побери, элементарная логика где?  smile 
и, в любом случае, 
Цитата(SergV @  1.7.2008,  10:44 Найти цитируемый пост)
$title="Home"; // Переменная заголовка страницы контента

так ты не  записываешь в переменную title значение константы Home. так ты записываешь в переменную строку "Home". не более и не менее. если тебе это и надо - одно дело(только тогда зачем было тема создана?). если же тебе надо было записать в переменную значение константы с именем "Home", то мне непонятно, с чего это ты именно так записал?
Цитата(SergV @  1.7.2008,  10:44 Найти цитируемый пост)
Мне от куда знать, константа это или что, у меня мозги не резиновые, всё не запомнить.

файлы с РНР-кодом у нас или у тебя? или тебе даже посмотреть сложно?

Добавлено через 42 секунды
Цитата(SergV @  1.7.2008,  10:44 Найти цитируемый пост)
Константу я помещаю в переменную

значит, все-таки
Цитата(skyboy @  1.7.2008,  10:53 Найти цитируемый пост)
тебе надо было записать в переменную значение константы с именем "Home"


PM MAIL   Вверх
SergV
Дата 1.7.2008, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



Цитата

впрочем, если присвоение происходит так:
Цитата(SergV @  1.7.2008,  08:37 Найти цитируемый пост)
Код

$title="_HOME";
$title='_HOME';
$title="HOME";


а не как должно быть:
Цитата(SergV @  1.7.2008,  08:37 Найти цитируемый пост)
Код

$title=_HOME;


Блин, а что у мнея в топике этажами выше этого не написано?
Цитата

Передовал так:
Код

$title="_HOME";
$title='_HOME';
$title="HOME";
[$title=_HOME;


Передовал я так тоже, и результат пустая строка.

Цитата

SergV, у тебя один файл с языками, что ли?
как вообще структура реализована? 
не проще сделать для каждого языка свой файл, и в переменную писать только его имя? 

У меня отдельные языковые файлы, и структура простая, написал выше уже, но повторюсь подробней.

1. Первый файл index.php имеет пару переменных и подключает файл конфигурации, отвечающий за остальные действия. Только к этому файлу возможен прямой доступ.
2. Второй файл конфигурации имеет глобальные переменные, присвоение значений некоторым переменным, требующимся в остальных файлах. Потом идёт проверка SSL, потом проверка куков, получение данных или создание если первый вход на сайт. Потом в зависимости от полученных данных из куков, или по дефолту подключаю нужный языковой файл. Потом подключаю файл с функциями и файл шаблона страницы.
3. Файлы языков отдельные, файл функций содержит основные функции, и подключает к себе из функци дополнительные файлы, такие как модули к примеру календаря, файлы текстов и др.

Всё на этом, это основная конструкция, проще не знаю.

Добавлено @ 12:10
skyboy, блин, сколько можно писать, да присваивал я и так
Код

$title=_HOME;

пустая строка выходит.

А тему я создал, потому что, это не единственные задачи, которые мне надо решить, а значить нет смысла плодить кучу отдельных тем. К тому я не создаю тем, на вопросы, на которые нашёл ответ по форуму. Основной смысл темы, это попытаться найти решение вариантов реализации, и устранение ошибок и недоработок. 

Мне конечно хочется самому во всём разобраться, но только это слишком длительное занятие, особенно когда нет времени.

Это сообщение отредактировал(а) SergV - 1.7.2008, 12:13
PM   Вверх
SergV
Дата 1.7.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



Всё, разобрался сам с константами, теперь всё передаётся как надо.
PM   Вверх
Лиходей
Дата 5.7.2008, 09:44 (ссылка)  | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2008

Репутация: нет
Всего: нет



Можно сделать так:

index.php - пусковой
shapka.php - "верхушка" сайта
menu.php - меню
data.php - загружает(показывает) сайт выбранный в меню

index.php
--------------------------
Код


<?php require_once("shapka.php"); ?>
<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr>
  <td width="80%" align="left" valign="top"><?php require_once("data.php"); ?></td>
  <td align="left" valign="top" style="padding-left:30px;"><?php require_once("menu.php"); ?></td>
</tr>

</table>

</div>
</body>
</html>


menu.php
---------------------------
Код

<table width="100%" border="0" cellpadding="2" cellspacing="2">
<tr>
   <td width="100%" bgcolor="#FFFFFF">
   <br> Статьи
   </td>
</tr>
<tr>
   <td width="100%" bgcolor="#FFFFFF">
   <hr>
   </td>
</tr>
<tr>
   <td width="100%" bgcolor="#FFFFFF">
   <a href="index.php?action=one">Статья 1</a>
   </td>
</tr>
<tr>
   <td width="100%" bgcolor="#FFFFFF">
   <a href="index.php?action=two">Статья 2</a>
   </td>
</tr>
<tr>
   <td width="100%" bgcolor="#FFFFFF">
   <hr>
   </td>
</tr>

<tr>
   <td width="100%" bgcolor="#FFFFFF">
   <a href="index.php?action=contacts">Контакты</a>
   </td>
</tr>
</table>


data.php
---------------------------
Код

<?php

switch($_GET['action']) //получаем значение переменной action
{
   case "one" :
      require_once("one.php"); // выводим статью1
    break;
   case "bde" :
      require_once("two.php"); // выводим статью2 
     break;
    case "contacts" :
      require_once("contacts.php"); // выводим данные Контакты
    break;
   default : // если значение переменной action не указано, либо её не существует, либо нет искомого значения
   {
      require_once("one.php");
   }
  break;
}

?>

PM MAIL   Вверх
Feldmarschall
Дата 5.7.2008, 09:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



офигенная система.
если статей будет сто, то скрипт получится большим и красивым. а, главное, очень интеллектуальным =)
PM   Вверх
SergV
Дата 26.8.2008, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



Лиходей, спасибо за идею, как будет время попробую. smile


Feldmarschall, статей 100 не будет, максимум с десяток, и всё будет в норму. Да и к тому же, это всего лишь тест, что получится так сказать. smile
PM   Вверх
lukas
Дата 26.8.2008, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Сделай так...

В своих языковых файлах объяви что то типа массива...
Код

<?
$GLOBALS['LNG_MESS'] = array();
$MESS = &$GLOBALS['LNG_MESS'];
$MESS['X_MESS'] = 'Секретное сообщение';
$MESS['Y_MESS'] = 'Еще один текст...';
?>


и где нибудь сделай функцию, что-то вроде...

Код

function get_mess($name){
     return $GLOBALS['LNG_MESS'][$name];
}


Ну а в коде просто будешь вызывать эту функцию с нужными сообщениям... 

Это сообщение отредактировал(а) lukas - 26.8.2008, 20:44


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1012 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.