Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Сайт на php

Ответить
Настройки темы
Сайт на php

Пользователь


Сообщения: 98
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


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

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

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

-------
Каталог предприятий Украины http://www.tradeukraine.com


Отправлено: 08:13, 31-10-2003

 

Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


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

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

-------
Fortes fortuna adiuvat


Отправлено: 00:18, 01-12-2003 | #21



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

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


Пользователь


Сообщения: 98
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Возникла проблема,
использую такой код
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.
Помогите, пожалуйста

-------
Каталог предприятий Украины http://www.tradeukraine.com


Отправлено: 15:53, 01-12-2003 | #22


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


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

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

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

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

-------
Fortes fortuna adiuvat


Отправлено: 16:07, 01-12-2003 | #23


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


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

Код: Выделить весь код
<?php
header("HTTP/1.0 404 Not Found");
?>
Только стоит обратить внимание, что заголовки надо отсылать ДО любого вывода броузеру клиента.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 16:47, 01-12-2003 | #24


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Prisoner


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

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

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

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

??????

-------
Fortes fortuna adiuvat


Отправлено: 17:36, 02-12-2003 | #25


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


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



-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 06:16, 03-12-2003 | #26


Пользователь


Сообщения: 98
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


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

-------
Каталог предприятий Украины http://www.tradeukraine.com


Отправлено: 16:38, 03-12-2003 | #27


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


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

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 03:27, 04-12-2003 | #28


Пользователь


Сообщения: 98
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Prisoner
вот код
Код: Выделить весь код
<?
require_once "class.Template.php";
 $tpl = new Template("./template");
 $tpl->load("index,header,footer,menu");

 ob_start();
 echo "<div align=\"center\">Предлагаем следующие виды металлопрката &nbsp;&nbsp; часть
 <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]

-------
Каталог предприятий Украины http://www.tradeukraine.com


Отправлено: 09:09, 04-12-2003 | #29


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


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

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

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 08:10, 05-12-2003 | #30



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Сайт на php

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как продвинуть сайт на PHP Vi-P Вебмастеру 2 28-04-2007 13:41
Где можно протестировать сайт написаный на PHP beaver1984 Вебмастеру 4 23-01-2004 16:18
PHP->html как конвертнуть сайт? Chingachguk Вебмастеру 4 15-01-2004 17:43
Сайт на php + MySQL tradeukraine Вебмастеру 10 13-12-2003 15:57
Сайт на php tradeukraine Вебмастеру 6 30-07-2003 04:34




 
Переход