![]() |
Отцы php, нужна ваша помощь!
есть файл config.php код <?php if (!isset($tp)) {$tp=$def_title;} if (isset($page)) { $df = $id."/".$page.".tpl"; $fp = fopen($df, "r"); $in = fread($fp, filesize($df)); fclose($fp); $data = explode("~", $in); $tp=$data[0];} ?> и естествено index.php код <?php include ("tems/config.php"); include ($site_tems); if (isset($id)) { $df = $id."/".$page.".tpl"; $fp = fopen($df, "r"); $in = fread($fp, filesize($df)); fclose($fp); $data = explode("~", $in); $i=0; while ($data[$i]!="") { echo "<h5>$data[$i]</h5>"; $i++; echo "$data[$i]"; $i++; } } else { include ("main/main.tpl"); } include($site_niz); ?> в этом случае ссылки выглядят так index.php?id=main&page=index main - имя папки, где лежит сам файл - index.tpl так вот нужно укаротить ссылки к примеру так index.php?main=index только неменяя структуру скрипта!!! Заранее Спасибо! |
Предлагаю использовать $_SERVER["QUERY_STRING"], возвращающую строку запроса, то есть в твоем случае (в смысле в том к какому ты стремишься) будет - "main=index". Если структура строки запроса жесткая, то не составит труда разобрать ее функцией explode и взять все, что тебе необходимо по индексам массива. Однако стоит отметить, что это не безопасно с точки зрения защащенности скрипта - при подделке данных он потенциально может выполнить совсем не ту работу какую хотел разработчик :).
|
Prisoner
а можно в примере код!? я попробую. |
Имеем пример... на вашем я не стал ничего базировать и создал просто отрывок кода, думаю вы с легкостью все поймете.
Код:
<?php |
Prisoner
Спасибо, так понятно :up: |
и еще вопрос,
если так делать мета теги Цитата:
Цитата:
|
Мне лично второй метод больше по душе - порядку больше.
|
Prisoner
понял, спасибо. есть такая штука файл индекс.пхп внем код Цитата:
index.tpl - был поумолчанию и когда я вызываю ссылку index.php?id=config чтобы index.tpl небыло видно. зарание спасибо |
Цитата:
|
Prisoner
если я делаю так код файла index.php Цитата:
когда набираю index.php?id=config - вижу index.tpl и config.tpl а должен видить только config.tpl :) Поможите |
Код:
<? tradeukraine, просьба использовать для приведения участков кода не тег цитаты "q", а тег кода "code" |
Prisoner
Спасибо огромное, все понял :up: :) и еще вопрос , помогите понять этот Код:
RemoveHandler .html .htm да и еще этот Код:
RewriteRule home/([0-9]+)?$ home.php?id=$1 несмыслю, Огромное спасибо! |
По первому участку кода смотрите в файл конфигурации сервера Apache - httpd.conf, там много комментариев, нет правда комментария по RemoveHandler, но есть по AddHandler, что дает возможность догадаться о назначении RemoveHandler :). По поводу второго читайте тут. Желаю удачи.
|
Prisoner
Спасибо огромное, Да статья интерестная и полезная, а вот впервом коде Цитата:
я четам бы понял то неспрашивал :) пояснить можно что он дает ? |
Хм... язык конференции - русский, но что есть
Цитата:
Цитата:
|
Prisoner
Спасибо огромное :up: |
Prisoner
из пару вопросов, перерасло в том :) есть такая проблема, это title, Подскажите, как можно задать определенному файлу скажем - index.php для переменных $site_title="Заголовок" $site_key="слова" а для page.php $site_title="Заголовок - 1" $site_key="слова - 1" те вывести эти данные в файл fic.php и внем указать для определенного файла, так можно сделать? Огромное спасибо! |
tradeukraine, к сожалению, я ничего не понял. Что означает
Цитата:
Цитата:
|
Prisoner
опять вы меня спасаеше :) Код:
<?php в header.php - <title>$site_title</title> вот значит и слова тоже, да вот такая проблема. |
Подскажите пожалуйста, я кинул чат на сайт и при входе в чат он выдает вот это
Warning: fopen("./data/online.dat", "w") - Permission denied in /home/dem/n/o/v/domen/public_html/chat/chat.php on line 69 и ничего больше, и этого не только с чатом но и с другими скриптами (гостевая, доска объявлений и т.п.). Сайт находится на хостинге webservis.ru. Что я сделал неправильно, что выдает сервер мне эти строчки? |
не кажется надо писать вот так:
fopen("../data/online.dat", "w") - именно с двумя точками, если возвращаешься в материнскую папку У тебя же ошибка, ты написал с одной точкой |
Возникла проблема,
использую такой код index.php Код:
<? те на сайте страница - ошибка работает, так вот когда набираю index/?id=page естествено вижу текст файла 'page.tpl' но когда набрал index/?id=pa или еще чего, вижу только шаблон, так можно прописать чтобы срабатывал error404. Помогите, пожалуйста |
error404 будет срабатывать если нет документа index
Для error404 всё равно какие переменные и их значения ты прописываешь в адрессной строке - он смотрит только, есть ли такой файл, а уж что там, ему всё равно И ещё, если ты прописываешь значения переменной в адрессной строке, то не обязательно писать $id=$_GET["id"]; можно просто: if (!isset($id)){include ("main.tpl");} if ($id==page){include ("page.tpl");} если не то ответил-пиши, честно говоря я вопрос не сразу понял |
Если хочешь отправить броузеру сообщение, что страницы не найдена (в каком угодно случае, скажем передан не тот параметр скрипту какой подразумевался), то это делается через header:
Код:
<?php |
Prisoner
<?php header("HTTP/1.0 404 Not Found"); ?> А разве этот код не будет всё время выводить, что НЕТ СТРАНИЦЫ, ему вроде всё равно , какое значение переменной введено через адрессную строку или ты имеешь ввиду так: if ($mod!="main"){header("HTTP/1.0 404 Not Found");} ?????? |
Вы правы, что-то проверили и если не так, тут же наказали пользователя :).
Прошу прощения за неявность. В общем-то своими словами Цитата:
|
Спасибо всем,
но у меня не как неработает, те работает :) но ошибка на этой странице несабатывает. Спасибо всем |
tradeukraine
Приведите кусочек кода который вы используйте. |
Prisoner
вот код Код:
<? |
tradeukraine
В твоем посте с кодом, единственное, что понял, так это использование FastTemplate :). Мне непонятно как это сочетается с вопросом о выдаче ошибки в броузер. Ну да это мелочи, не обращай внимания. У меня тоже не получилось на счет header и думается мне, что надо копать в сторону сервера. Почему? А вот почему: 1) вызывается header("HTTP/1.0 404 Not Found"); 2) в логах Апач видно, что страничка вернула статус 404 - то есть то, что нам необходимо. А вот самой странички с ошибкой не показывается :(. Есть такая директива как ErrorDocument. Думаю, надо копать в эту степь. Но вот с другой стороны броузер получает сообщение об ошибке (скажем та самая вожделенная 404) когда мы пытаемся получить доступ к несуществующему файлу - тут все работает. В общем странно, я еще покопаюсь. |
Prisoner
Спасибо огромное за заботу, а что FastTemplate - это плохо? |
tradeukraine
нет, что ты... |
Prisoner
это всеже не FastTemplate, а другой я его нашел тут http://www.webscript.ru/stories.php3.../01/28/2360970 и пробовал искать - остальные или очень громозкие или бред. |
Народ пользуюсь случаем
поздравляю всех с Новым годом! Счастья здоровья и конечно успехов! новый год - это хорошо, а работа есть работа :) есть код Код:
ob_start(); так вот можно ли сделать еще такую функцию скажем $cont, чтоб работало на одной странице или как подругому? те пробовал так неработает :( Код:
ob_start(); |
а что за функции переменными названиями ob_get_что-то-там???
|
tradeukraine
Зачем имя ф-ии то сменил? так и пиши $cont=ob_get_contents(); всё прекрасно будет работать. mar http://ru.php.net/manual/en/ref.outcontrol.php |
ivank
Вот спасибо:up: а я блин тыкаю тыкаю :( Спасибо за ссылку! |
Народ!
может кто подкажет: счас юзаю class.Template 1. http://www.webscript.ru/stories.php3.../01/28/2360970 и 2. http://yapter.sourceforge.net/ если в первом функций мало то в другом хоть отбавляй :) просто понять хочу - ну возврасла загрузка страницы, а засчет чего они загружаются быстрей? и самое интересное что каждый разрабочик пишит что его класс быстрей чем скажем FastTemplate в 6 раз :) да еще кучу нашел http://freshmeat.net/search/?q=class...p;x=11&y=7 все перепробовал и все это бред. может свой написать кто знает помогите плиз! [s]Исправлено: tradeukraine, 14:04 4-01-2004[/s] |
Кстати... за 3 года использования php залез в fast template только два раза... и то долго мучился мыслью "а не усложняю ли я?". Мне например такие штуки не сильно нужны, конечно может быть я не просекаю их мощи и все такое, но... обхожусь без них. А писать свой... не советую :) потраченное время... зря потраченное время :).
|
to X
сервер тебе говорит, что нет доступа на запись к таким-то файлам (только чтение). :( надо права на папки проставить (можно "777"). А как енто лучше сделать - лучше обратись к админу. ... а вообще - лучше использовать для подобных целец дазу банных - и порядку больше, и использовать удобнее. :up: Цитата:
|
Prisoner
в fast template я вообще понять нечего несмог:) а эти хоть более менее понятны. ну всеже скорость загрузки! |
Хм... а если не использовать fast template и его аналоги скорость еще выше :). Зачем усложнять простые задачи которые можно решить без всяких наворотов?
|
Prisoner
может я и ошибаюсь но классы делают для людей которые типа меня - не бумбум в PHP :) вот в моем мой лично взгляд на template: test.php Код:
а вот тут и началось :biggrin: class.template.php Код:
но если не вы то кто? Поможет! Добавлено: template.tpl Код:
<html> |
tradeukraine
немного ошибаешься =) классы, конечно, делают для облегчения и упрощения написания кода, но э-э-э знать язык при этом надо не меньше, чем при необъектно-ориентированном программировании А в чем вопросы? Нельзя ли процитировать код, чтоб не шарить по сетям в поисках =) (я, например, PHPlib-овские шаблоны и надстройки над ними использую, там другие вопросы будут =)) |
mar
я всетаки остановился на yapter http://yapter.sourceforge.net/ посмотри исходник, пока сам непойму эти function. а PHPlib я вообще понять несмог :) мне вообщето нравится как форум phpbb *- *сделан шаблон верх и низ. [s]Исправлено: tradeukraine, 18:24 6-01-2004[/s] |
ну, у них тут http://yapter.sourceforge.net/?action=functions написано, какая функция за что отвечает, так что разберешься =)
А вот тут http://www.dev.vitgroup.com/index.ph...amp;pageid=249, если интересно, не исходники, а идеи, причем достаточно плодотворные =) |
mar
Спасибо. |
Народ,
я тут думал - а...... можно в переменую скажем так Код:
$txt="$page=$_GET["page"]; там этот код работал? заранее спасибо! |
Право не сильно понял из вопроса чего надобно, но вот код был бы красивее таким:
Код:
$txt=$page=$_GET["page"]; |
Prisoner
Спасибо, счас пробовать буду. просто в class.template применить надо $txt, а потом вывести. мудрю :) Добавлено: т.е. переменая $txt="тут код": Добавлено: Prisoner Все сработало :up: Спасибо огромное:oszone: |
Пожалуйста, но как я понял, понял я все совсем по другому... в общем рад, что все работает %).
|
Prisoner
работает в php а вот в class.template - нет, просто class несчитает за переменую и естествено немогу вывести там где мне надо! может есть другой вариант? |
Переменный объекта с точки зрения ООП - это свойства. Так добавьте необходимое свойство, пусть при инициализации объекта оно означивается нужным вам значением. Не хотите так, сделайте метод (функцию объекта) который будет записывать в нужное свойство нужное значение. Все необходимые примеры реализации всего сказанного есть в самом шаблонизаторе который вы используете... я вас правильно понял? :)
|
Prisoner
правельно в принцепе работает и такой код :up: я тут еще вопросик приготовил :) был значит раньше у меня сайт просто на php, поставил класс - теперь просмотр в автономной работе невозможен:( с чего бы это? |
Цитата:
|
Prisoner
да прав, только вот непойму хорошо это или плохо:( |
есть положение: зачем кэшировать страницы которые имеет переменное содержимое? Незачем.
есть предложение: отключить вывод запрещающих кэширование фенечек в самом шаблонизаторе, тут правда поискать придется где он это делает... |
Prisoner
да задача, а может так все оставить :( |
tradeukraine
Тебе решать :). Если... впрочем никаких "если" - решать программисту :). |
Prisoner
так я сам все делал, я получается и программист :) |
Делай выводы :)
|
Вопрос по PHP.
Подскажите пожалуйста: Можно ли в строке $t[$i]=$HTTP_POST_VARS['v2']; вместо v2 использовать какую нибудь переменную или массив? Если да, то как правильно это сделать? Очень нужно для инициализации, заранее неизвестного количества, переменных. Например: $t1=$HTTP_POST_VARS['v1']; $t2=$HTTP_POST_VARS['v2']; $t3=$HTTP_POST_VARS['v3']; Если написать $t[$i]=$HTTP_POST_VARS['$v[$i]']; это не проходит... |
Все параметры скрипта переданные методом POST в массив $MyVars:
Код:
foreach ($_POST as $ScriptVar) |
Извините.... Затупил....
Можно было написать просто: $t[$i]=$HTTP_POST_VARS[$v[$i]]; без кавычек... За совет большое спасибо, не знал. |
Prisoner
если я тут опишу че сделано и поставлю ссылки, я получу еще одно замечание?:( или можно? [s]Исправлено: Prisoner, 21:20 1-02-2004[/s] |
Если сайт на этапе создания и еще не эксплуатировался, то никто не сможет обвинить в его рекламе. Кроме того есть раздел зацените.
|
Prisoner
я имею ввиду шаблоны, тоесть примеры сайта на php и html и форум переделаный под сайт. а свой сайт мне заценивать ненадо:) [s]Исправлено: Prisoner, 20:15 2-02-2004[/s] |
Подобные вопросы на асю, пожалуйста. А то так мы весь топик заоффтопим...
|
Prisoner
это опять я:) есть вопрос! есть значит файл - lang_home.php в нем код Код:
$lang['txt1'] = 'txt1'; используя вместо файлов эту структуру Код:
$id=$_GET["id"]; $lang['txt1'] = 'txt1'; - поумолчанию, а ссылка home?id=1 - это $lang['txt2'] = 'txt2'; ну и так далее. спасибо заранее:oszone: |
Если я все верно понял (на счет чего не уверен :)), то можно так:
Код:
if (isset($_GET['id'])) |
Prisoner
спасибо, буду тыкать:) |
Атак хоть понял?
|
Prisoner
не получилось:( просто в phpbb - хитро сделан:) но цель прежняя; lang_home.php Код:
$txt1 = 'Текст текст'; Код:
$id=$_GET["id"]; if (!IsSet($id)) |
Извиняюсь если этот вопрос уже задавали т.к. спешу, мне нужна статья перехода с сайт из .html в .php.
|
tradeukraine
Да так можно. Только include $Txt1 придется в {} вписывать. так в мануалах грят. Добавлено: Цитата:
|
Всем здрасти.
Народ, если кто может, подскажите пожалуйста такую тему. Имеется база данных на базе Access с фамилиями людей и их днями рождения. Как на PHP написать скрипт который выводил бы этих людей и их дни рождения, начиная от текущей даты + 7 дней, на внутренний сайт предприятия. Я в РНР чайник, поэтому очень прошу, если есть возможность, напишите какая команда и переменная, что обозначает, т.к. очень хотелось бы узнать как оно действует, а не тупо установить на сайт. Заранее благодарен. |
А на какой платформе запущен web-сервер?
Имеется ввиду под какой операционной системой. [s]Исправлено: Prisoner, 22:30 24-02-2004[/s] |
Вэб сервер запускается на платформе 2000. Как консольное приложение.
|
Для начала почитайте статью по работе с Access из PHP. Если возникнут вопросы, то обращайтесь. По выполнению
Цитата:
|
да, учится и еще много раз учится,
счас проблема такова есть файл config.php в нем запись $txt="тут текст"; так вот мне очень необходимо открыть этот файл с помощью формы но! только часть "тут текст" ну типа чтобы открыть и сохранить можно было! очень прошу подсказать только учитывая мой возвраст все расказать на пальцах - чтобы я понял, спасибо |
Читаю синтаксис операторов SQL. Пока нечего дельного не нахожу. Основная проблемма в том как "вычленить" из даты месяц и число, для последующего запроса по ним и произвести сравнение с текущей датой. На словах то понимаю, а вот как сделать, так чтобы железо поняло - не знаю.
|
А дата из которой нужно вытащить месяц и число в каком формате и откуда берется?
|
Формат дата/время, тип данных по моему FLOAT. Берется все это из таблицы где 4 столбца, в которые заносятся фамилия имя отчество и дата рождения.
|
Цитата:
|
Точно float
|
Xoxa, есть date, time, datetime, year, timestamp. Который из? Не timestamp ли?
|
В Access по моему нет такого формата даных как timestamp (не предусмотренно или я не нашел). У меня формат Date
|
вначале пропиши инклуд на индекс тпл - или я что-то недогоняю??!!
|
Прошу прощения, Xoxa, я запутался и воспринял все совсем не в том ключе (почему-то подумал, что ты работаешь не с Access, а с MySql. Это в MySql такие типы связанные с датой и временем).
Таким образом делаем следующее (из учета, что в первом моем посте по вашему вопросу имеющуюся статью вы прочли): 1) Регистрируем источник данных и указываем всю неоходимую информацию (см. статью). 2) Пишем что-то подобное (я создал тестовую табличку users с полями id (counter) - уникальное число каждого пользователя, fio - строковое поле, bd - дата дня рождения в коротком формате dd.mm.yyyy) Код:
<? PS если где-то наглючил (это бывает со всеми), то просьба указать. |
Подскажите пожалуйста в такой проблеме: Имеется счётчик написанный на PHP, он хранится в отдельном файле, надо вывести колич. посещений в странице с расширением HTML. Как это сделать? (если я не ошибаюсь, то это называется внедрение)
|
Огромное спасибо всем кто откликнулся. Prisoner, с меня пиво.
:oszone: :) |
Время: 08:51. |
Время: 08:51.
© OSzone.net 2001-