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

Форум PHP

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

 

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

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

тема: Путь к файлам
 
 автор: Dizels   (13.12.2007 в 10:55)   письмо автору
 
 

Я на сайте использовал вот такой метод: был файл config.php, который подключался ко всем страницам его собержимое:

$_URL['project']="http://www.sait.ru"; 

$_URL['img']=$_URL['project']."/img";
$_URL['util']=$_URL['project']."/util";
$_URL['news']=$_URL['project']."/news";
$_URL['prodyct_article']=$_URL['project']."/prodyct_article"; 


и соответственно потом в самих файлах подгружал нужные мне скрипты вот так:

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


Все было хорошо, но увы, случился переезд на новый сервак, а там посыпались ошибки, их можно увидеть сейчас перейдя по ссылке: http://peoplecrimea.com/

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

вместо require_once ($_URL['util']."/left.php");
писать require_once ("../util/left.php");

Ну я прописал, но вот только теперь возникла другая проблема:
страницы 2 уровня отображаються как надо, вот пример: http://peoplecrimea.com/about/index.php
А вот, если теперь перейти на главную, то появляются ошибки.
Почему они появляются я понимаю (путь для главной не ../util/left.php а просто util/left.php), но вот как исправить, чтобы все работало - не могу понять, подскажите плз, уже 3 день мучаюсь.

   
 
 автор: mihdan   (13.12.2007 в 10:58)   письмо автору
 
   для: Dizels   (13.12.2007 в 10:55)
 


<?
// При условии что /config.php в корне
$_URL['project'] = dirname(__FILE__); 

// При условии что /config/config.php не в корне
$_URL['project'] = dirname(dirname(__FILE__)) ;

?>


Зачем keywords и description в файлах храните?

   
 
 автор: Dizels   (13.12.2007 в 12:19)   письмо автору
 
   для: mihdan   (13.12.2007 в 10:58)
 

может я что-то не правильно понял, но на новом серваке нельзя использовать $_URL['project'], или поясните на примере, так я гораздо лучше понимаю:)

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

mihdan, поясни, пожалуйста, на примере.

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

   
 
 автор: mihdan   (13.12.2007 в 14:08)   письмо автору
 
   для: Dizels   (13.12.2007 в 12:19)
 

$_URL['project'] - использовать можно, нельзя использовать абсолютный путь по http, т.е.
URL должен быть без http

   
 
 автор: Dizels   (14.12.2007 в 00:57)   письмо автору
 
   для: mihdan   (13.12.2007 в 14:08)
 

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

$_URL['project']="http://www.sait.ru";

А вызывать потом надо как?

Просто к примеру есть файл top.php - шапка сайта. Для главной страницы подгружаемые файлы так: img/1.jpg , а вот для страниц второго уровня уже ../img/1.jpg

Вообщем поясните, пожалуйста, практически.
Заранее благодарен.

   
 
 автор: mihdan   (14.12.2007 в 10:07)   письмо автору
 
   для: Dizels   (14.12.2007 в 00:57)
 

config.php

<?
$_URL
['project'] = dirname(__FILE__); 
?> 


index.php

<?
include_once $_URL['project'].'/top.php';
?>


top.php

<html>
<head>
    <base href="http://ваш_домен.ru/">

   
 
 автор: Dizels   (14.12.2007 в 12:37)   письмо автору
 
   для: mihdan   (14.12.2007 в 10:07)
 

теперь глвная показывается как надо, а вот второстепенные - нет:(

Вот что я сделал:
config.php

<?php
$_URL
['img']=img;
$_URL['util']=util;
$_URL['menu']=menu;
$_URL['contacts']=contacts;
$_URL['about']=about;
$_URL['partners']=partners;
$_URL['mu']=mu;
$_URL['vas']=vas;
$_URL['prodyct_article']=prodyct_article;
?>

top.php:

<html>
<head>
<title></title>
<meta name="description" content="">
<meta name="keywords" content="">
<base href="http://peoplecrimea.com/">
<style type="text/css">
@import "menu/style2.css";
</style>
</head>

right.php:

<?php include_once "config.php"?>
<table border="0" cellpadding="0" cellspacing="0" width="160" bgcolor="#B7E7FF">
<tr>
<td><?php include_once $_URL['util'].'/pochta.php'?></td>
</tr>

pochta.php:

<?php include_once "config.php"?>

<table border="0">
<tr>
<td><img src="<?=$_URL['img']; ?>/5_03.jpg" alt="Почта"></td>
</tr>
<tr align="center">
<td><form><font size="2">Логин: <input type="text" size=20></font></td>
</tr>
<tr align="center">
<td><font size="2">Пароль:<input type="password" size=20></font></td>
</tr>
<tr align="center">
<td><input type=submit value=Войти></form></td>
</tr>
</table>

Выдает ошибки, одна з них к примеру:

Warning: include_once(util/pochta.php) [function.include-once]: failed to open stream: No such file or directory in /home/people/domains/peoplecrimea.com/public_html/util/right.php on line 6

все ошибки можно видеть здесь http://peoplecrimea.com/about/index.php
Подскажите, что не так?

P.S. все вышеприведенные файлы лежат в папке util

   
 
 автор: mihdan   (14.12.2007 в 13:10)   письмо автору
 
   для: Dizels   (14.12.2007 в 12:37)
 

Положи конфиг в корень

<?php
$_URL
['project'] = dirname(__FILE__); 
$_URL['img']=img;
$_URL['util']=util;
$_URL['menu']=menu;
$_URL['contacts']=contacts;
$_URL['about']=about;
$_URL['partners']=partners;
$_URL['mu']=mu;
$_URL['vas']=vas;
$_URL['prodyct_article']=prodyct_article;
?> 

   
 
 автор: Dizels   (16.12.2007 в 15:45)   письмо автору
 
   для: mihdan   (14.12.2007 в 13:10)
 

итак, файл config.php(лежит в корне):

<?php 
$_URL
['project'] = dirname(__FILE__);    - вот эту запись вообще нужно оставлять????
$_URL['img']=img
$_URL['util']=util
$_URL['menu']=menu
$_URL['contacts']=contacts
$_URL['about']=about
$_URL['partners']=partners
$_URL['mu']=mu
$_URL['vas']=vas
$_URL['prodyct_article']=prodyct_article
?> 

в папке about файл index.php:

<?php include "../config.php"?>
<?php 
include_once $_URL['util'].'/top.php'?>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="4" bgcolor="#000000" align="right"></td>
<td align="left" valign="top" bgcolor="#B7E7FF" width="150">
<?php include_once $_URL['util'].'/left.php'?></td>
<td valign="top" bgcolor="#B7E7FF"><?php require_once ("about.php"); ?></td>
<td align="right" valign="top" bgcolor="#B7E7FF"><?php include_once $_URL['util'].'/right.php'?></td>
<td width="5" bgcolor="#000000" align="left"></td>
</tr>
</table>
<?php include_once $_URL['util'].'/bottom.php'?>


файл top.php(лежит в папке util):

<html>
<head>
<title>Люди Крыма. Информационный справочник крымчан.</title>
<meta name="description" content="">
<meta name="keywords" content="">
<base href="http://peoplecrimea.com/">
<style type="text/css">
@import "menu/style2.css";
</style>
</head>
<body>
.....


Вот ошибка:

Warning: include_once(util/top.php) [function.include-once]: failed to open stream: No such file or directory in /home/people/domains/peoplecrimea.com/public_html/about/index.php on line 2

Warning: include_once() [function.include]: Failed opening 'util/top.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/people/domains/peoplecrimea.com/public_html/about/index.php on line 2


Что не так?

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

Ребята, подскажите, пожалуйста.

   
 
 автор: Trianon   (17.12.2007 в 01:52)   письмо автору
 
   для: Dizels   (16.12.2007 в 19:00)
 

Нет у Вас каталога util в каталоге about (в котором собственно index.php находится.
Вот и ругается...

И еще... у меня есть подозрение (возможно беспочвенное), что Вы считаете массив $_URL[] суперглобальным.
Это не так.
Это совершенно обычный пользовательский массив.
И никаких оснований начинать его имя с подчеркивания в у Вас нет.

   
 
 автор: DiMoN_TD   (17.12.2007 в 08:02)   письмо автору
 
   для: Dizels   (13.12.2007 в 10:55)
 

Попробуйте так:

$_URL['project']="http://www.sait.ru";  

$_URL['img']=$_URL['project']."/img"; 
$_URL['util']=$_URL['project']."/util"; 
$_URL['news']=$_URL['project']."/news"; 
$_URL['prodyct_article']=$_URL['project']."/prodyct_article";

$project = $_URL['project'];
$img = $_URL['img'];
$util = $_URL['news'];
$news = $_URL['news'];
$prodyct_article = $_URL['prodyct_article'];


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

   
 
 автор: mihdan   (17.12.2007 в 10:04)   письмо автору
 
   для: DiMoN_TD   (17.12.2007 в 08:02)
 

$_URL['project']="http://www.sait.ru"; - не глобальная переменная!

   
 
 автор: Dizels   (17.12.2007 в 12:11)   письмо автору
 
   для: mihdan   (17.12.2007 в 10:04)
 

Trianon, то что такого каталога нет в папке about я понимаю, но я не понимаю, почему он его в этой папке запрашивает? Ведь по идее должен в корне искать папку util, я же пишу:

<?php include_once $_URL['util'].'/left.php'?>

А до этого указываю:

$_URL['util']=util;


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

Так что вопрос остается в силе. Может мне еще что-то нужно показать? или пояснить?

   
 
 автор: Trianon   (17.12.2007 в 12:24)   письмо автору
 
   для: Dizels   (17.12.2007 в 12:11)
 

Вот и получается что Вы требуете файл util/left.php
Такой файл отсчитывается от текущего каталога.
Если хочется считать от корня - нужно требовать /util/left.php
а если учесть что корень сервера и корень документов - корни разные, то требовать нужно вообще совсем не это.

   
 
 автор: Dizels   (17.12.2007 в 13:01)   письмо автору
 
   для: Trianon   (17.12.2007 в 12:24)
 

Trianon, ну вот файлы я выложил, подскажите, как тогда правильно подгрузить (практически покажите плз).

По поводу корня - насколько я понял, то его я указывал строчкой:

<base href="http://peoplecrimea.com/">

т.е. вот именно исходя из этого, когда я использовал:

<?php include_once $_URL['util'].'/left.php'?>

то я подразумевал, что будет подставляться адрес http://peoplecrimea.com/util/left.php.
как тогда получается поменять код вызова файла(<?php include_once $_URL['util'].'/left.php'; ?>)?

   
 
 автор: Dizels   (17.12.2007 в 19:22)   письмо автору
 
   для: Dizels   (17.12.2007 в 13:01)
 

up

   
 
 автор: Unkind   (17.12.2007 в 19:33)   письмо автору
 
   для: Dizels   (17.12.2007 в 19:22)
 

Замените $_URL['util'].'/left.php' на $_SERVER['DOCUMENT_ROOT'] . '/util/left.php'

   
Rambler's Top100
вверх

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