Войти

Показать полную графическую версию : Сайт на php


Страниц : [1] 2 3 4 5

tradeukraine
31-10-2003, 08:13
Отцы 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
Предлагаю использовать $_SERVER["QUERY_STRING"], возвращающую строку запроса, то есть в твоем случае (в смысле в том к какому ты стремишься) будет - "main=index". Если структура строки запроса жесткая, то не составит труда разобрать ее функцией explode и взять все, что тебе необходимо по индексам массива. Однако стоит отметить, что это не безопасно с точки зрения защащенности скрипта - при подделке данных он потенциально может выполнить совсем не ту работу какую хотел разработчик :).

tradeukraine
04-11-2003, 08:35
Prisoner
а можно в примере код!?
я попробую.

Prisoner
04-11-2003, 20:15
Имеем пример... на вашем я не стал ничего базировать и создал просто отрывок кода, думаю вы с легкостью все поймете.


<?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
Prisoner
Спасибо,
так понятно
:up:

tradeukraine
05-11-2003, 19:59
и еще вопрос,
если так делать мета теги
<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
Мне лично второй метод больше по душе - порядку больше.

tradeukraine
06-11-2003, 08:44
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
index.tpl - был поумолчанию и когда я вызываю ссылку
index.php?id=config чтобы index.tpl  небыло видно.

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

tradeukraine
06-11-2003, 19:27
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
<?
$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
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
По первому участку кода смотрите в файл конфигурации сервера Apache - httpd.conf, там много комментариев, нет правда комментария по RemoveHandler, но есть по AddHandler, что дает возможность догадаться о назначении RemoveHandler :). По поводу второго читайте тут (http://www.listsoft.ru/articles/338/). Желаю удачи.

tradeukraine
07-11-2003, 21:14
Prisoner
Спасибо огромное,
Да статья интерестная и полезная,
а вот впервом коде
смотрите в файл конфигурации сервера Apache - httpd.conf, там много комментариев,
:)
я четам бы понял то неспрашивал :)
пояснить можно что он дает ?

Prisoner
08-11-2003, 00:46
Хм... язык конференции - русский, но что есть я четам бы понял то неспрашивал я не понял :). Но вернемся к вопросу:

AddHandler allows you to map certain file extensions to "handlers",
actions unrelated to filetype.

В переводе имеем - AddHandler позволяет вам привязать определенные расширения файлов к "обработчикам", действиям не  связанными с типом файла.  То есть эта директива нужна для привязки того или иного типа контента к типу файлов. RemoveHendler решает противоположную задачу. Поглядите в файл конфигурации Апача, там все описано, надо только поглядеть... желаю удачи.

tradeukraine
08-11-2003, 10:23
Prisoner
Спасибо огромное :up:

tradeukraine
19-11-2003, 10:07
Prisoner
из пару вопросов, перерасло в том :)

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

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

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

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

Prisoner
19-11-2003, 17:51
tradeukraine, к сожалению, я ничего не понял. Что означает задать определенному файлу
для переменных
$site_title="Заголовок"
$site_key="слова"

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

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

tradeukraine
19-11-2003, 20:23
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
Подскажите пожалуйста, я кинул чат на сайт и при входе в чат он выдает вот это

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




© OSzone.net 2001-2012