Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: подключение файлов
 
 автор: Dizels   (02.10.2006 в 15:18)   письмо автору
 
 

структура сайта такова:
index.php(файл)
news(папка)
util(папка)
В папке util содержатся файлы top.php(шапка сайта) и bottom.php(копирайт и т.д.), menu.php(меню сайта)

Файл index.php - главная страница сайта
В папке news есть файл index.php(страница Новости)

Меню организовано следущим образом:

<a href='../index.php'>Главная</a> 
 ......
<a href='../news/index.php'>Новости</a>

Теперь приведу код главной страницы:

<?php

$title
Главная;


print <<<HERE

<center>
<table border="0" cellpadding="0" cellspacing="0" width="900">
<tr>
<td colspan=2>
HERE;

include 
"util/top.php";

echo
"</td></tr><tr><td bgcolor=#EDF1F7 valign=\"top\" width=140>";

include 
"util/menu.php";

print <<<HERE
</td><td width=760>
HERE;
Главная страница


print <<<HERE
</td><tr><td colspan=2>
HERE;

include 
"util/bottom.php";

echo
"</td></tr></table></center>";
?>

Код страницы Новости такой же, за исключением того, что подключая файлы из папки указываю путь: ../util/файл.php

Открываю главную страницу сайта на первый взгляд все отлично, но выбрав в меню новости переходит на адрес: http://localhost/news/index.php , а должно быть так http://localhost/папка сайта/news/index.php . А вот если теперь если ввести в строку браузера: http://localhost/папка сайта/news/index.php то страница новости отображается и переход на главную страницу тоже получается!
Почему так получается я понимаю(просто страница новости лежит в папке, а главная в корне сайта), но вот как это исправить?
P.S. постарался объяснить все как можно подробнее, если что-то не указал - скажите, допишу

   
 
 автор: aexb   (02.10.2006 в 19:00)   письмо автору
 
   для: Dizels   (02.10.2006 в 15:18)
 

Дык и правильно оно переходит :) Объясняю. Индексная страница собирается из 4х кусков. И при подключении код в этих кусках не меняется. То есть, если в файле menu.php будет написано "../news/index.php", то браузер попытается перейти на страницу уровнем выше. Что не требуется. То есть, чтобы браузер переходил так, как положено, путь должен быть просто "news/index.php". Но тогда встает проблема другого характера: как поступать с теми файлами, которые лежат на уровень (или несколько уровней) ниже корневого каталога.

Я бы поступил так:
можно написать скрипт с названием, например, config.inc, и положить его в папку inc (которая должна быть создана в корне сайта). И подключать во все необходимые файлы. В скрипте прописать в переменных пути к подключаемым файлам и все основные URL, работающие на сайте. Например, так:


<?
$_PATH
['project']=$_SERVER['DOCUMENT_ROOT']; //это - корневой каталог сайта
$_PATH['admin']=$_PATH['project']."/admin";
$_PATH['include']=$_PATH['project']."/inc";

$_URL['project']="http://www.mysite.com";
$_URL['img']=$_URL['project']."/images";
$_URL['news']=$_URL['project']."/news";
?>


Ну, примерно так. То есть, в URL везде прописаны абсолютные пути и теперь для того, чтобы написать ссылку на файл "news/index.php" достаточно будет сделать так:


<a href="<?=$_URL['project']; ?>/index.php">Новости</a>


Такая конструкция будет работать на любой странице сайта. Чуть-чуть понятно?

   
 
 автор: Dizels   (04.10.2006 в 14:22)   письмо автору
 
   для: aexb   (02.10.2006 в 19:00)
 

Да, огромное спасибо именно это мне и нужно было, сегодня вечером буду пробовать

   
 
 автор: Dizels   (04.10.2006 в 21:45)   письмо автору
 
   для: Dizels   (04.10.2006 в 14:22)
 

Итак, меню исправил, все работает, огромное спасибо, правда появился еще один вопрос, а как мне вот эту строчку преобразовать:

include "util/top.php";


под нее у меня такой код:

$_PATH['util']=$_PATH['project']."/util";
...
$_URL['util']=$_URL['project']."/util"; 

Заранее благодарен.

   
 
 автор: Dizels   (07.10.2006 в 12:44)   письмо автору
 
   для: Dizels   (04.10.2006 в 21:45)
 

Подскажите плз

   
 
 автор: Dizels   (07.10.2006 в 19:19)   письмо автору
 
   для: Dizels   (07.10.2006 в 12:44)
 

Ктонибудь откликнитесь!!! Вы же наверняка знаете!

   
 
 автор: Poison   (07.10.2006 в 19:47)   письмо автору
 
   для: Dizels   (07.10.2006 в 19:19)
 

Так:


<?php
#
require_once ($_URL['util']."/top.php");
#
?>

   
 
 автор: Dizels   (07.10.2006 в 21:10)   письмо автору
 
   для: Poison   (07.10.2006 в 19:47)
 

Огромнейшее спасибо!

   
 
 автор: Dizels   (07.10.2006 в 22:58)   письмо автору
 
   для: Dizels   (07.10.2006 в 21:10)
 

Заметил еще одну ошибку, на главной странице у меня есть такой код:

<?php
include "util/config.php";
....
$titleГлавная;
....
require_once (
$_URL['util']."/top.php");
?>


Вот, соответственно в новостной части переменной title присваивается значение Новости и т.д. Вот, передается все это в файл top.php, который лежит в папке util. А файл config.php подключаю собственно для того, чтобы работало меню. Так вот - не работает почему-то этот title, хотя до внесения изменений в меню все прекрасно работало, что случилось? и как исправить?

   
 
 автор: Dizels   (09.10.2006 в 10:28)   письмо автору
 
   для: Dizels   (07.10.2006 в 22:58)
 

Вопрос в силе

   
 
 автор: Dizels   (09.10.2006 в 19:40)   письмо автору
 
   для: Dizels   (09.10.2006 в 10:28)
 

Ребята, помогите плз

   
 
 автор: Саня   (09.10.2006 в 19:55)   письмо автору
 
   для: Dizels   (07.10.2006 в 22:58)
 

Надо так: $title = "Главная"; Строки нужно писать в кавычках.

   
 
 автор: Dizels   (09.10.2006 в 19:58)   письмо автору
 
   для: Саня   (09.10.2006 в 19:55)
 

Да нет - проблема не в этом, проверил. Да к тому же оно бы не работало с самого начала, а так - перестало работать именно после того как меню исправил

   
 
 автор: Dizels   (10.10.2006 в 20:16)   письмо автору
 
   для: Dizels   (09.10.2006 в 19:58)
 

?

   
 
 автор: Dizels   (11.10.2006 в 00:24)   письмо автору
 
   для: Dizels   (10.10.2006 в 20:16)
 

Очень хотелось бы, чтобы и с этим вопросом мне помогли разобраться

   
 
 автор: Dizels   (12.10.2006 в 12:05)   письмо автору
 
   для: Dizels   (11.10.2006 в 00:24)
 

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

   
 
 автор: Dizels   (13.10.2006 в 13:26)   письмо автору
 
   для: Dizels   (12.10.2006 в 12:05)
 

ХЕЛП!!!

   
 
 автор: Dizels   (17.10.2006 в 12:29)   письмо автору
 
   для: Dizels   (13.10.2006 в 13:26)
 

Люди ну помогите я так и не могу разобраться в чем проблема

   
 
 автор: Саня   (17.10.2006 в 13:03)   письмо автору
 
   для: Dizels   (07.10.2006 в 22:58)
 

Покажите код файла top.php.

   
 
 автор: Dizels   (17.10.2006 в 17:54)   письмо автору
 
   для: Саня   (17.10.2006 в 13:03)
 



<html>
<head>


<title> <? include "../admin/title/title.txt"?> ::<? $title ?></title>
....
</html>

В файле title.txt название

   
 
 автор: Саня   (17.10.2006 в 18:02)   письмо автору
 
   для: Dizels   (17.10.2006 в 17:54)
 

То, что обсуждалось выше относится и к top.php, и к bottom.php. В этих скриптах тоже нужно править пути.

   
 
 автор: Dizels   (19.10.2006 в 13:50)   письмо автору
 
   для: Саня   (17.10.2006 в 18:02)
 

<title> <? include "../admin/title/title.txt"?> ::<? $title ?></title>

Вот какая часть кода не работает <? $title ?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования