Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Сайт на php (http://forum.oszone.net/showthread.php?t=31262)

tradeukraine 31-10-2003 08:13 214325

Отцы 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

только неменяя структуру скрипта!!!

Заранее Спасибо!

Prisoner 03-11-2003 13:48 214326

Предлагаю использовать $_SERVER["QUERY_STRING"], возвращающую строку запроса, то есть в твоем случае (в смысле в том к какому ты стремишься) будет - "main=index". Если структура строки запроса жесткая, то не составит труда разобрать ее функцией explode и взять все, что тебе необходимо по индексам массива. Однако стоит отметить, что это не безопасно с точки зрения защащенности скрипта - при подделке данных он потенциально может выполнить совсем не ту работу какую хотел разработчик :).

tradeukraine 04-11-2003 08:35 214327

Prisoner
а можно в примере код!?
я попробую.

Prisoner 04-11-2003 20:15 214328

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

Код:

<?php
//выдираем данные из строки адреса.

//именно ГЕТ метод при простом лазании по сети
If (Count($_GET)==1)
 {
  $StrAddressData=Explode("=",$_SERVER["QUERY_STRING"]);
 }
//теперь при строке адреса вида index.php?dir=file
// в $StrAddressData[0] - директория (для строки выше = dir)
// в $StrAddressData[0] - файлик без расширения (для строки выше = file)
?>

Только вот что... осторожнее нужно использовать данные полученные при такой организации скрипта - мало ли какую бяку тебе в строке адреса зададут.

tradeukraine 05-11-2003 08:05 214329

Prisoner
Спасибо,
так понятно
:up:

tradeukraine 05-11-2003 19:59 214330

и еще вопрос,
если так делать мета теги
Цитата:

<title><?php print "$name";?> :: <?php print "$tp";?></title>
<meta name="Description" content="<?php print "$op";?>.">
<meta name="KeyWords" content="<?php print "$ks";?>.">
<meta name="Author" content="<?php print "Copyright $au";?>.">
<meta HTTP-EQUIV="Content-Type" Content="text-html; charset=<?php print "$th";?>">
<meta name="robots" content="<?php print "$rs";?>">
<meta name="revisit" content="<?php print "$rt";?>">
<link rel="stylesheet" type="text/css" href="<?php print "$site_css";?>">
<LINK REL="SHORTCUT ICON" HREF="<?php print "$url";?>">
или так лучше
Цитата:

echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//RU\">\n";
echo "<html>\n<head>\n";
echo "<title>$sitename | $tp</title>\n";
echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=windows-1251\">\n";
echo "<META NAME=\"AUTHOR\" CONTENT=\"$sitename\">\n";
echo "<META NAME=\"COPYRIGHT\" CONTENT=\"Copyright (c) 2001 by $sitename\">\n";
echo "<META NAME=\"KEYWORDS\" CONTENT=\"$sitekeys\">\n";
echo "<LINK REL=\"STYLESHEET\" HREF=\"style.css\">";
echo "</head>\n";
echo "<body text=000000 bgcolor=$bgcolor_fon link=000000 alink=000000 vlink=000000>\n";
как будет правильно?

Prisoner 06-11-2003 00:09 214331

Мне лично второй метод больше по душе - порядку больше.

tradeukraine 06-11-2003 08:44 214332

Prisoner
понял, спасибо.
есть такая штука
файл индекс.пхп
внем код
Цитата:

<?php
include ("tems/config.php");
if (!isset($tp)) {$tp=Название;}
include ($site_tems);
if ($id==config){include ("main/config.tpl");}
if ($id==page){include ("main/page.tpl");}
if ($id==header){include ("main/header.tpl");}
if ($id==footer){include ("main/footer.tpl");}
include($site_niz);
?>
так мне нужно сделать чтобы
index.tpl - был поумолчанию и когда я вызываю ссылку
index.php?id=config чтобы index.tpl  небыло видно.
зарание спасибо

Prisoner 06-11-2003 14:37 214333

Цитата:

index.tpl - был поумолчанию и когда я вызываю ссылку
index.php?id=config чтобы index.tpl  небыло видно.
Так... я не совсем понял требуемое. index.tpl и так не видим нигде :), да и что значит быть по умолчанию? Уточните, плиз.

tradeukraine 06-11-2003 19:27 214334

Prisoner
если я делаю так код файла  index.php
Цитата:

<?php
include ("tems/config.php");
if (!isset($tp)) {$tp=Название;}
include ($site_tems);
include ("main/index.tpl");}
if ($id==config){include ("main/config.tpl");}
if ($id==page){include ("main/page.tpl");}
if ($id==header){include ("main/header.tpl");}
if ($id==footer){include ("main/footer.tpl");}
include($site_niz);
?>
когда я захожу на index.php - вижу index.tpl
когда набираю index.php?id=config - вижу index.tpl и config.tpl
а должен видить только config.tpl
:)
Поможите

Prisoner 07-11-2003 00:05 214335

Код:

<?
$id=$_GET["id"];
if (!IsSet($id))
  {include 'index.tpl';}
if ($id==config)
  {include 'config.tpl';}
if ($id==page)
  {include 'page.tpl';
   //and something else if u need
  }
if ($id==header)
  {include 'header.tpl';
   //and something else if u need
  }
if ($id==footer)
  {include 'footer.tpl';
   //and something else if u need
  }
?>

Добавлено:

tradeukraine, просьба использовать для приведения участков кода не тег цитаты "q", а тег кода "code"

tradeukraine 07-11-2003 08:25 214336

Prisoner
Спасибо огромное, все понял :up:  :)

и еще вопрос ,
помогите понять этот
Код:

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

Добавлено:

да и еще этот

Код:

RewriteRule home/([0-9]+)?$ home.php?id=$1
RewriteRule price/(.*)?$ price.php?page=$1

Ибо я в .HTACCESS
несмыслю,
Огромное спасибо!

Prisoner 07-11-2003 15:36 214337

По первому участку кода смотрите в файл конфигурации сервера Apache - httpd.conf, там много комментариев, нет правда комментария по RemoveHandler, но есть по AddHandler, что дает возможность догадаться о назначении RemoveHandler :). По поводу второго читайте тут. Желаю удачи.

tradeukraine 07-11-2003 21:14 214338

Prisoner
Спасибо огромное,
Да статья интерестная и полезная,
а вот впервом коде
Цитата:

смотрите в файл конфигурации сервера Apache - httpd.conf, там много комментариев,
:)
я четам бы понял то неспрашивал :)
пояснить можно что он дает ?

Prisoner 08-11-2003 00:46 214339

Хм... язык конференции - русский, но что есть
Цитата:

я четам бы понял то неспрашивал
я не понял :). Но вернемся к вопросу:

Цитата:

AddHandler allows you to map certain file extensions to "handlers",
actions unrelated to filetype.
В переводе имеем - AddHandler позволяет вам привязать определенные расширения файлов к "обработчикам", действиям не  связанными с типом файла.  То есть эта директива нужна для привязки того или иного типа контента к типу файлов. RemoveHendler решает противоположную задачу. Поглядите в файл конфигурации Апача, там все описано, надо только поглядеть... желаю удачи.

tradeukraine 08-11-2003 10:23 214340

Prisoner
Спасибо огромное :up:

tradeukraine 19-11-2003 10:07 214341

Prisoner
из пару вопросов, перерасло в том :)

есть такая проблема,
это title,

Подскажите,
как можно задать определенному файлу
скажем - index.php
для переменных
$site_title="Заголовок"
$site_key="слова"

а для page.php
$site_title="Заголовок - 1"
$site_key="слова - 1"

те вывести эти данные в файл fic.php
и внем указать для определенного файла,
так можно сделать?
Огромное спасибо!

Prisoner 19-11-2003 17:51 214342

tradeukraine, к сожалению, я ничего не понял. Что означает
Цитата:

задать определенному файлу
для переменных
$site_title="Заголовок"
$site_key="слова"
Вот есть у нас какие-то переменные, пусть именно те которые вы указали, что дальше? Что значит задать их для файла?

Цитата:

те вывести эти данные в файл fic.php
и внем указать для определенного файла,
так можно сделать?
Это я тоже не понял :\. Объясните по-подробнее если не трудно.

tradeukraine 19-11-2003 20:23 214343

Prisoner
опять вы меня спасаеше :)
Код:

<?php
include ("tems/config.php");
include ("tems/header.php");
$id=$_GET["id"];
if (!IsSet($id)){include 'main/index.tpl';}
if ($id==config){include ("main/config.tpl");}
include ("tems/footer.php");
?>

используя етот код хочу решить проблему с title
в header.php - <title>$site_title</title>
вот значит и слова тоже,
да вот такая проблема.

xkspy 30-11-2003 23:21 214344

Подскажите пожалуйста, я кинул чат на сайт и при входе в чат он выдает вот это

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.
Что я сделал неправильно, что выдает сервер мне эти строчки?  

vadimiron 01-12-2003 00:18 214345

не кажется надо писать вот так:
fopen("../data/online.dat", "w")  -  именно с двумя точками, если возвращаешься в материнскую папку

У тебя же ошибка, ты написал с одной точкой

tradeukraine 01-12-2003 15:53 214346

Возникла проблема,
использую такой код
index.php
Код:

<?
$id=$_GET["id"];
if (!IsSet($id)){include 'main.tpl';}
if ($id==page){include 'page.tpl';}
?>

в файле .htaccess прописана ошибка 404,
те на сайте страница - ошибка работает,
так вот когда набираю index/?id=page
естествено вижу текст файла 'page.tpl'
но когда набрал index/?id=pa или еще чего,
вижу только шаблон,
так можно прописать чтобы срабатывал error404.
Помогите, пожалуйста

vadimiron 01-12-2003 16:07 214347

error404 будет срабатывать если нет документа index
Для error404 всё равно какие переменные и их значения ты прописываешь в адрессной строке - он смотрит только, есть ли такой файл, а уж что там, ему всё равно

И ещё, если ты прописываешь значения переменной в адрессной строке, то не обязательно писать $id=$_GET["id"];

можно просто:
if (!isset($id)){include ("main.tpl");}
if ($id==page){include ("page.tpl");}

если не то ответил-пиши, честно говоря я вопрос не сразу понял


Prisoner 01-12-2003 16:47 214348

Если хочешь отправить броузеру сообщение, что страницы не найдена (в каком угодно случае, скажем передан не тот параметр скрипту какой подразумевался), то это делается через header:

Код:

<?php
header("HTTP/1.0 404 Not Found");
?>

Только стоит обратить внимание, что заголовки надо отсылать ДО любого вывода броузеру клиента.

vadimiron 02-12-2003 17:36 214349

Prisoner


<?php header("HTTP/1.0 404 Not Found"); ?>

А разве этот код не будет всё время выводить, что НЕТ СТРАНИЦЫ, ему вроде всё равно , какое значение переменной введено через адрессную строку

или ты имеешь ввиду так:

if ($mod!="main"){header("HTTP/1.0 404 Not Found");}

??????

Prisoner 03-12-2003 06:16 214350

Вы правы, что-то проверили и если не так, тут же наказали пользователя :).
Прошу прощения за неявность. В общем-то своими словами
Цитата:

в каком угодно случае, скажем передан не тот параметр скрипту какой подразумевался
я как раз и подразумевал какую-либо проверку и... выдачу заголовка.




tradeukraine 03-12-2003 16:38 214351

Спасибо всем,
но у меня не как неработает,
те работает :)
но ошибка на этой странице несабатывает.
Спасибо всем

Prisoner 04-12-2003 03:27 214352

tradeukraine
Приведите кусочек кода который вы используйте.

tradeukraine 04-12-2003 09:09 214353

Prisoner
вот код
Код:

<?
require_once "class.Template.php";
 $tpl = new Template("./template");
 $tpl->load("index,header,footer,menu");

 ob_start();
 echo "<div align=\"center\">Предлагаем следующие виды металлопрката    часть
 <a href=\"http://www.tradeukraine.com/metal/\&...gt;1</a>
 <a href=\"http://www.tradeukraine.com/metal/?p...gt;2</a>
<a href=\"http://www.tradeukraine.com/metal/?p...div>";

 $page=$_GET["page"];
 if (!IsSet($page)){include 'prices/metal.tpl';}
 if ($page==two){include 'prices/metal_1.tpl';}
 if ($page==three){include 'prices/metal_2.tpl';}

 $contents = ob_get_contents();
 ob_end_clean();

eval("\$header = \"".$tpl->get("header")."\";");
eval("\$menu = \"".$tpl->get("menu")."\";");
eval("\$footer = \"".$tpl->get("footer")."\";");

eval("print \"".$tpl->get("index")."\";");
?>

[s]Исправлено: tradeukraine, 13:01 4-12-2003[/s]

Prisoner 05-12-2003 08:10 214354

tradeukraine
В твоем посте с кодом, единственное, что понял, так это использование FastTemplate :). Мне непонятно как это сочетается с вопросом о выдаче ошибки в броузер. Ну да это мелочи, не обращай внимания. У меня тоже не получилось на счет header и думается мне, что надо копать в сторону сервера. Почему? А вот почему:
1) вызывается header("HTTP/1.0 404 Not Found");
2) в логах Апач видно, что страничка вернула статус 404 - то есть то, что нам необходимо. А вот самой странички с ошибкой не показывается :(.

Есть такая директива как ErrorDocument.  Думаю, надо копать в эту степь. Но вот с другой стороны броузер получает сообщение об ошибке (скажем та самая вожделенная 404) когда мы пытаемся получить доступ к несуществующему файлу - тут все работает. В общем странно, я еще покопаюсь.

tradeukraine 05-12-2003 12:56 214355

Prisoner
Спасибо огромное за заботу,
а что FastTemplate - это плохо?

Prisoner 06-12-2003 02:51 214356

tradeukraine
нет, что ты...

tradeukraine 08-12-2003 20:37 214357

Prisoner
это всеже не FastTemplate, а другой я его нашел тут
http://www.webscript.ru/stories.php3.../01/28/2360970
и пробовал искать - остальные или очень громозкие или бред.

tradeukraine 30-12-2003 09:35 214358

Народ пользуюсь случаем
поздравляю всех с Новым годом!
Счастья здоровья и конечно успехов!

новый год - это хорошо, а работа есть работа :)

есть код

Код:

ob_start();
include 'txt/1.html';}
$contents = ob_get_contents();
ob_end_clean();

те. в страницу я вставляю как $contents
так вот можно ли сделать еще такую функцию
скажем $cont, чтоб работало на одной странице
или как подругому?

те
пробовал так неработает :(
Код:

ob_start();
include 'txt/2.html';}
$cont = ob_get_cont();
ob_end_clean();


mar 30-12-2003 16:19 214359

а что за функции  переменными названиями ob_get_что-то-там???

ivank 31-12-2003 00:36 214360

tradeukraine
Зачем имя ф-ии то сменил? так и пиши $cont=ob_get_contents(); всё прекрасно будет работать.

mar
http://ru.php.net/manual/en/ref.outcontrol.php

tradeukraine 31-12-2003 08:52 214361

ivank
Вот спасибо:up:
а я блин тыкаю тыкаю :(
Спасибо за ссылку!

tradeukraine 04-01-2004 15:01 214362

Народ!
может кто подкажет:
счас юзаю 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]

Prisoner 05-01-2004 04:39 214363

Кстати... за 3 года использования php залез в fast template только два раза... и то долго мучился мыслью "а не усложняю ли я?". Мне например такие штуки не сильно нужны, конечно может быть я не просекаю их мощи и все такое, но... обхожусь без них. А писать свой... не советую :) потраченное время... зря потраченное время :).

Life is COOL 05-01-2004 10:50 214364

to X

сервер тебе говорит, что нет доступа на запись к таким-то файлам (только чтение). :(

надо права на папки проставить (можно "777").
А как енто лучше сделать - лучше обратись к админу.

... а вообще - лучше использовать для подобных целец дазу банных - и порядку больше, и использовать удобнее. :up:

Цитата:

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

tradeukraine 05-01-2004 12:18 214365

Prisoner
в fast template я вообще понять нечего несмог:)
а эти хоть более менее понятны.
ну всеже скорость загрузки!

Prisoner 06-01-2004 06:22 214366

Хм... а если не использовать fast template и его аналоги скорость еще выше :). Зачем усложнять простые задачи которые можно решить без всяких наворотов?

tradeukraine 06-01-2004 11:33 214367

Prisoner
может я и ошибаюсь но классы делают для людей которые
типа меня - не бумбум в PHP :)
вот в моем мой лично взгляд на template:

test.php
Код:


<?php
// класс подключение
require("class.template.php");
//создаем
 * *$tpl = new Template("template/template.tpl");
//Переменые
 * $test="Проба";
 * *$tpl->skp("title", "Welcome");
 * *$tpl->skp("test", "$test");
// добавить блок
 * *$tpl->addblok("blok", "template/1.tpl");
// добавить файл (как в php - include)
 * *$tpl->addinclude("blok1", "forum/index.php");
//Вывод
 * *$tpl->skript();
?>

четко - ясно и понятно!

а вот тут и началось :biggrin:
class.template.php
Код:


class Template {
        var $start = '{';
        var $end = '}';
        var = ????????
function Template - как ???
function *skp - как ???
function *addblok - как ???
function *addinclude - как ???

как видно одни вопросы :)
но если не вы то кто?
Поможет!

Добавлено:

template.tpl
Код:

<html>
<head>
    <title>{title}</title>
</head>
<body>
<div align="center">{test}</div>
 <div align="center">{blok}</div>
<div align="center">{blok1}</div>
</body>
</html>


mar 06-01-2004 15:59 214368

tradeukraine
немного ошибаешься =)
классы, конечно, делают для облегчения и упрощения написания кода, но э-э-э знать язык при этом надо не меньше, чем при необъектно-ориентированном программировании
А в чем вопросы? Нельзя ли процитировать код, чтоб не шарить по сетям в поисках  =)
(я, например, PHPlib-овские шаблоны и надстройки над ними  использую, там другие вопросы будут =))

tradeukraine 06-01-2004 19:19 214369

mar
я всетаки остановился на yapter
http://yapter.sourceforge.net/
посмотри исходник,
пока сам непойму эти function.
а PHPlib я вообще понять несмог :)
мне вообщето нравится как форум phpbb *- *сделан шаблон верх и низ.

[s]Исправлено: tradeukraine, 18:24 6-01-2004[/s]

mar 06-01-2004 23:10 214370

ну, у них тут http://yapter.sourceforge.net/?action=functions написано, какая функция за что отвечает, так что разберешься =)
А вот тут http://www.dev.vitgroup.com/index.ph...amp;pageid=249, если интересно, не исходники, а идеи, причем достаточно плодотворные =)

tradeukraine 07-01-2004 10:07 214371

mar
Спасибо.

tradeukraine 27-01-2004 15:13 214372

Народ,
я тут думал - а...... можно
в переменую скажем так
Код:

$txt="$page=$_GET["page"];
 if (!IsSet($page)){include './prices/metal.tpl';}
 if ($page==two){include './prices/metal_1.tpl';}
 if ($page==three){include './prices/metal_2.tpl';}":

как сделать чтоб -
там этот код работал?
заранее спасибо!

Prisoner 27-01-2004 16:54 214373

Право не сильно понял из вопроса чего надобно, но вот код был бы красивее таким:
Код:

$txt=$page=$_GET["page"];
 if (!IsSet($page))
  {
   include './prices/metal.tpl';
   switch ($page)
     {
      case 'two':
        include './prices/metal_1.tpl';
        break;
      case 'three':
        include './prices/metal_2.tpl';
        break;
            .
            .
            .    
     }
  }


tradeukraine 27-01-2004 19:40 214374

Prisoner
Спасибо,
счас пробовать буду.
просто в class.template применить надо $txt,
а потом вывести.
мудрю
:)

Добавлено:

т.е. переменая $txt="тут код":

Добавлено:

Prisoner
Все сработало :up:
Спасибо огромное:oszone:

Prisoner 28-01-2004 06:44 214375

Пожалуйста, но как я понял, понял я все совсем по другому... в общем рад, что все работает %).

tradeukraine 28-01-2004 08:48 214376

Prisoner
работает в php а вот в class.template - нет,
просто class несчитает за переменую и естествено
немогу вывести там где мне надо!
может есть другой вариант?

Prisoner 28-01-2004 09:36 214377

Переменный объекта с точки зрения ООП - это свойства. Так добавьте необходимое свойство, пусть при инициализации объекта оно означивается нужным вам значением. Не хотите так, сделайте метод (функцию объекта) который будет записывать в нужное свойство нужное значение. Все необходимые примеры реализации всего сказанного есть в самом шаблонизаторе который вы используете... я вас правильно понял? :)

tradeukraine 28-01-2004 12:55 214378

Prisoner
правельно в принцепе работает и такой код :up:

я тут еще вопросик приготовил :)
был значит раньше у меня сайт просто на php,
поставил класс - теперь просмотр
в автономной работе невозможен:(
с чего бы это?

Prisoner 29-01-2004 16:00 214379

Цитата:

просмотр в автономной работе невозможен
Это как? Если то, что я понял именно то, что я должен был понять, то возможно шаблонизатор добавляет в хидеры страниц или в меты фичу не кэшировать страницы. Вот после его установки странички и перестали попадать в кэш... так понял?

tradeukraine 29-01-2004 19:21 214380

Prisoner
да прав,
только вот непойму хорошо это или плохо:(

Prisoner 29-01-2004 20:10 214381

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

tradeukraine 30-01-2004 14:25 214382

Prisoner
да задача, а может так все оставить
:(

Prisoner 30-01-2004 18:07 214383

tradeukraine
Тебе решать :). Если... впрочем никаких "если" - решать программисту :).

tradeukraine 30-01-2004 19:37 214384

Prisoner
так я сам все делал, я получается и программист :)

Prisoner 30-01-2004 22:50 214385

Делай выводы :)

Kolt 31-01-2004 22:46 214386

Вопрос по 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]']; это не проходит...

Prisoner 01-02-2004 01:26 214387

Все параметры скрипта переданные методом POST в массив $MyVars:
Код:

foreach ($_POST as $ScriptVar)
  {
    $MyVars[] = $ScriptVar;
  }

По настоящему вышенаписанный код лишен смысла, за исключением случая когда хочется порядка и осмысленных переменных... впрочем тоже натянуто :)

Kolt 01-02-2004 09:58 214388

Извините.... Затупил....
Можно было написать просто:
$t[$i]=$HTTP_POST_VARS[$v[$i]]; без кавычек...

За совет большое спасибо, не знал.

tradeukraine 01-02-2004 13:45 214389

Prisoner
если я тут опишу че сделано и поставлю ссылки,
я получу еще одно замечание?:(
или можно?


[s]Исправлено: Prisoner, 21:20 1-02-2004[/s]

Prisoner 01-02-2004 21:23 214390

Если сайт на этапе создания и еще не эксплуатировался, то никто не сможет обвинить в его рекламе. Кроме того есть раздел зацените.

tradeukraine 02-02-2004 08:24 214391

Prisoner
я имею ввиду шаблоны, тоесть
примеры сайта на php и html и форум переделаный под сайт.
а свой сайт мне заценивать ненадо:)


[s]Исправлено: Prisoner, 20:15 2-02-2004[/s]

Prisoner 02-02-2004 20:16 214392

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

tradeukraine 09-02-2004 09:28 214393

Prisoner
это опять я:)
есть вопрос!

есть значит файл - lang_home.php
в нем код
Код:

$lang['txt1'] = 'txt1';
$lang['txt2'] = 'txt2';
$lang['txt3'] = 'txt3';

так вот как мне вывести в home.php
используя вместо файлов эту структуру
Код:

$id=$_GET["id"];
 if (!IsSet($id)){include './templates/home.tpl';}
 if ($id==1){include './templates/1.tpl';}

т.е чтобы выборка была
$lang['txt1'] = 'txt1'; - поумолчанию,
а ссылка home?id=1 - это $lang['txt2'] = 'txt2';
ну и так далее.

спасибо
заранее:oszone:

Prisoner 09-02-2004 16:22 214394

Если я все верно понял (на счет чего не уверен :)), то можно так:
Код:

if (isset($_GET['id']))
  $ID = $_GET['id'];
else
  $ID = 0;
//тут проверки на валидность числа в параметре, скажем если это 666, то на это значение реакции у нас не предусмотренно :\
echo $Lang[$ID]; //или еще что-нибудь сделаем кроме echo

Разумеется массив для такого вариата следует иметь с ключами в виде чисел от 0 и до скольки надо. Если хочется ключи иметь строковые. то придется параметры передавать соответствующие. Так понял али нет? :). Если нет, опиши просто задачу.

tradeukraine 09-02-2004 20:01 214395

Prisoner

спасибо,
буду тыкать:)

Prisoner 10-02-2004 02:42 214396

Атак хоть понял?

tradeukraine 10-02-2004 20:12 214397

Prisoner
не получилось:(
просто в phpbb - хитро сделан:)
но цель прежняя;
lang_home.php
Код:

$txt1 = 'Текст текст';
$txt2 = 'Текст другой';
и тд

а home.php
Код:

$id=$_GET["id"];  if (!IsSet($id))
{include '$txt1';}  
if ($id==1){$txt2';}
и тд

так можно?

xkspy 11-02-2004 02:49 214398

Извиняюсь если этот вопрос уже задавали т.к. спешу, мне нужна статья перехода с сайт из .html в .php.

Prisoner 12-02-2004 14:15 214399

tradeukraine
Да так можно. Только include $Txt1 придется в {} вписывать. так в мануалах грят.

Добавлено:

Цитата:

Цитата X
с сайт из .html в .php.

Я так понял, что на сайте захотели применять динамические страницы написанные на php, так? Это задача не перевода страниц из одного формата в другой, это задача выдачи динамических данных, не статичных. Так что для страницы "наши контакты" она врядли нужна такая система. Другое дело если есть движок который выдает страницы (статичные) по различным параметрам, то есть один скрипт в зависимости от тех или иных параметров выдает ту или иную страницу. Остается спросить себя - а надо ли?

Xoxa 24-02-2004 10:27 214400

Всем здрасти.
Народ, если кто может, подскажите пожалуйста такую тему.
Имеется база данных на базе Access с фамилиями людей и их днями рождения. Как на PHP написать скрипт который выводил бы этих людей и их дни рождения, начиная от текущей даты + 7 дней, на внутренний сайт предприятия.
Я в РНР чайник, поэтому очень прошу, если есть возможность, напишите какая команда и переменная, что обозначает, т.к. очень хотелось бы узнать как оно действует, а не тупо установить на сайт.
Заранее благодарен.

Prisoner 24-02-2004 22:24 214401

А на какой платформе запущен web-сервер?

Имеется ввиду под какой операционной системой.

[s]Исправлено: Prisoner, 22:30 24-02-2004[/s]

Xoxa 26-02-2004 08:33 214402

Вэб сервер запускается на платформе 2000. Как консольное приложение.

Prisoner 26-02-2004 20:19 214403

Для начала почитайте статью по работе с Access из PHP. Если возникнут вопросы, то обращайтесь. По выполнению
Цитата:

скрипт который выводил бы этих людей и их дни рождения, начиная от текущей даты + 7 дней, на внутренний сайт предприятия.
лучше почитать синтаксис операторов SQL. Таким образом - rtm вас спасут :). Ну если нет, то...

tradeukraine 01-03-2004 09:17 214404

да, учится и еще много раз учится,
счас проблема такова
есть файл config.php
в нем запись $txt="тут текст";
так вот мне очень необходимо
открыть этот файл с помощью формы но!
только часть "тут текст"
ну типа чтобы открыть и сохранить можно было!
очень прошу подсказать только учитывая мой возвраст
все расказать на пальцах - чтобы я понял,
спасибо

Xoxa 16-03-2004 14:49 214405

Читаю синтаксис операторов SQL. Пока нечего дельного не нахожу. Основная проблемма в том как "вычленить" из даты месяц и число, для последующего запроса по ним и произвести сравнение с текущей датой. На словах то понимаю, а вот как  сделать, так чтобы железо поняло - не знаю.

Prisoner 16-03-2004 22:18 214406

А дата из которой нужно вытащить месяц и число в каком формате и откуда берется?

Xoxa 17-03-2004 09:30 214407

Формат дата/время, тип данных по моему FLOAT. Берется все это из таблицы где 4 столбца, в которые заносятся фамилия имя отчество и дата рождения.

mar 17-03-2004 12:09 214408

Цитата:

Формат дата/время, тип данных по моему FLOAT
по-моему лучше все-таки поточнее :)

Xoxa 17-03-2004 14:05 214409

Точно float

Prisoner 18-03-2004 03:01 214410

Xoxa, есть date, time, datetime, year, timestamp. Который из? Не timestamp ли?

Xoxa 18-03-2004 09:14 214411

В Access по моему нет такого формата даных как timestamp (не предусмотренно или я не нашел). У меня формат Date

9112root 18-03-2004 17:48 214412

вначале пропиши инклуд на индекс тпл - или я что-то недогоняю??!!

Prisoner 19-03-2004 02:49 214413

Прошу прощения, Xoxa, я запутался и воспринял все совсем не в том ключе (почему-то подумал, что ты работаешь не с Access, а с MySql. Это в MySql такие типы связанные с датой и временем).

Таким образом делаем следующее (из учета, что в первом моем посте по вашему вопросу имеющуюся статью вы прочли):
1) Регистрируем источник данных и указываем всю неоходимую информацию (см. статью).
2) Пишем что-то подобное (я создал тестовую табличку users с полями id (counter) - уникальное число каждого пользователя, fio - строковое поле, bd - дата дня рождения в коротком формате dd.mm.yyyy)
Код:

<?
function xodbc_num_rows($sql_id, $CurrRow = 0)
{
 $NumRecords = 0;
 odbc_fetch_row($sql_id, 0);
 while (odbc_fetch_row($sql_id))
 {
  $NumRecords++;
 }
 odbc_fetch_row($sql_id, $CurrRow);
 return $NumRecords;
}

function xodbc_fetch_array($result, $rownumber=-1) {
 if ($rownumber < 0) {
   odbc_fetch_into($result, $rs);
  } else {
  odbc_fetch_into($result, $rs, $rownumber);
 }
 foreach ($rs as $key => $value) {
   $rs_assoc[odbc_field_name($result, $key+1)] = $value;
 }
 return $rs_assoc;
}

  $Query = 'select * from users where (bd >= #'.date('m/d/Y', mktime(0, 0, 0, date('m'), date('d'), date('Y')) ).'#) and (bd <= #'.date('m/d/Y', mktime(0, 0, 0, date('m'), (date('d')+7), date('Y')) ).'#)';
  echo $Query.'<br>';

  $DB=odbc_connect("msaccess","me","me");
  $Result = odbc_exec($DB, $Query);
  $cnt=xodbc_num_rows($Result);
  echo '<table border=1 cellspacing=0 cellpadding=4>
          <tr>
            <td>Field1</td>
            <td>Field2</td>
          </tr>';
  for ($i=0;$i<$cnt;$i++)
    {
     $row=odbc_fetch_array($Result,$i+1);
     echo '<tr>
             <td>'.$Row['bd'].'</td><td>'.$Row['fio'].'</td>
           </tr>';
    }
?>
</table>

В итоге имеем табличку с результатами и текст запроса который отправляется в БД.

PS если где-то наглючил (это бывает со всеми), то просьба указать.

Pawel gor 23-03-2004 17:06 214414

Подскажите пожалуйста в такой проблеме: Имеется счётчик написанный на PHP, он хранится в отдельном файле, надо вывести колич. посещений в странице с расширением HTML. Как это сделать? (если я не ошибаюсь, то это называется внедрение)

Xoxa 01-04-2004 08:27 214415

Огромное спасибо всем кто откликнулся. Prisoner, с меня пиво.
:oszone: :)


Время: 08:51.

Время: 08:51.
© OSzone.net 2001-