За последние 24 часа нас посетили 15592 программиста и 1545 роботов. Сейчас ищут 950 программистов ...

Проблемы с отображением стиля в директории

Тема в разделе "PHP для новичков", создана пользователем Magnum, 19 июл 2015.

  1. Magnum

    Magnum Активный пользователь

    С нами с:
    19 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Приветствую вас. В процессе установки скрипта на локальный сервер я столкнулся с проблемой, что не отображается дизайн на сайте. Там был установлен модуль выбора стилей, я его удалил, и прописал в шапке:
    Код (PHP):
    1. <link rel="shortcut icon" href="./css/1/favicon.ico"/>
    2. <link rel="stylesheet" href="./css/1.css" type="text/css" /></head><body><?php
    3. print '<div class="body">';
    4. print '<div class="logo"><span class="title">Играй и выигрывай</span></div>';
    5. include_once '/vpanelka.php';
    6.  
    И все работает, и дизайн, и панелька. Но работает это только в файлах, которые расположены в корневой папке. А например, в папке /forum/, сессии сохраняются, и панелька вроде подключается, но не отображается нормально, и дизайн не пашет.

    В форуме инклудил файлы так:
    Код (PHP):
    1. include('../db.php');
    2. include('../ses.php');
    3. include('../auth.php');
    4. include('../nast.php');
    5. include('../shapka.php');
    6.  
    Скрин, как работают файлы в корне:
    [​IMG]
    Скрин, работает файл в директориях ниже (неправильно):
    [​IMG]

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    у тебя есть корневая папка, тебе надо получить ее местоположение, записать ее в переменную и при подключении файлов использовать ее, а не относительные пути, как вот тут:
    Код (Text):
    1. include('../db.php');
    2. include('../ses.php');
    3. include('../auth.php');
    4. include('../nast.php');
    5. include('../shapka.php');
    Добавлено спустя 41 секунду:
    Код (Text):
    1. href="./css/1.css"
    что за точка, причем одна?

    Добавлено спустя 40 секунд:
    кстати, ссылок на файлы в HTML вопрос относительных ссылок тоже касается.

    Добавлено спустя 21 секунду:
    мистер будущий генеральный директор цк кпсс.

    Добавлено спустя 2 минуты:
    Код (PHP):
    1. $main_dir = __DIR__; // $main_dir должен получаться в корневой папке, а не где то
    2.  
    3. include($main_dir.'/db.php');
     
  3. Magnum

    Magnum Активный пользователь

    С нами с:
    19 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Точки на самом деле не должно быть, пробовал все варианты, менял все в надежде что заработает, и забыл поменять обратно. Просто только учу php, и параллельно экспериментирую с этим скриптом. Спасибо, сейчас попробую

    Добавлено спустя 21 минуту 20 секунд:
    Все-равно не отображается ничего. Я даже проверял через функцию существования файла по данному адресу, файл существует, но не подключается должным образом. И еще заметил, что при переходе по ссылке на панеле, то оно выдает ошибку, так как оно ищет файл не в корне, а в папке форума. Я так понимаю, что панель так же нужно переписывать адрес? И подскажите пожалуйста, такие проблемы возникают только на локалке, или это код такой?

    Код панели:
    Код (PHP):
    1. <?php
    2. $res_new=mysql_query("SELECT count(*) from `pmess` WHERE `to`='$_SESSION[login]' and `status`=1");
    3. $count_new=mysql_fetch_row($res_new);
    4. $info=mysql_fetch_assoc(mysql_query("SELECT * from `user` WHERE `uid`='$_SESSION[uid]'"));
    5.  
    6. if($_SESSION['auth']) {
    7. print '<table style="width:100%;" cellspacing="0" cellpadding="0"><tr>';
    8. print '<td class="auts_left">';
    9. print '[url="enter.php?ses='.$ses.'"]</center>[/url]</td>';
    10.  
    11. print '<td class="auts_center">';
    12. print '[url="message.php?ses='.$ses.'"]</center>[/url]</td>';
    13.  
    14. print '<td class="auts_center">';
    15. print '[url="balans.php?ses='.$ses.'"]</center>[/url]</td>';
    16.  
    17. print '<td class="auts_right">';
    18. print '[url="profile.php?ses='.$ses.'"]</center>[/url]</td></tr></table>';
    19. }
    20. else {
    21.     }
    22.  
    23. ?>
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    У тебя есть корневая папка в которой находится стиль, и файл .html (или php), а так же есть дочерняя папка в которой файл .html (или php)

    так вот html который в корневой папке, ему что бы получить этот сбить надо писать:
    Код (Text):
    1. href="1.css"
    а вот в файле тот что в дочерней папке, уже надо писать
    Код (Text):
    1. href="../1.css"
    проще всего получить URL сайта и везде писать через него:
    Код (Text):
    1. href="<?php echo $site_url;  ?>/1.css"
    и в итоге у тебя должны получится ссылки типа:
    Код (Text):
    1. href="http://vk.com/1.css"
    и везде так должно быть.
     
  5. Magnum

    Magnum Активный пользователь

    С нами с:
    19 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    VLK, спасибо большое) узнал новую для себя информацию) сейчас пойду работать над скриптом:)
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  7. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    я хотел дать эту ссылку, держал ее уже на готове, если он скажет что у него ни чего не работает.
     
  8. Magnum

    Magnum Активный пользователь

    С нами с:
    19 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Подскажите пожалуйста еще один момент, как можно такую ссылку написать, как мне посоветовали выше? Так как я пытаюсь написать с помощью "__DIR__" но тогда теряются сессии при переходе по ссылке. Заранее юлагодарен
    Код (PHP):
    1. print '[url="message.php?ses='.$ses.' "]</center>[/url]</td>';
    2.  
     
  9. Magnum

    Magnum Активный пользователь

    С нами с:
    19 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Код (PHP):
    1. echo '<table style="width:100%;" cellspacing="0" cellpadding="0"><tr>';
    2. echo '<td class="auts_left">';
    3. echo "<a href=$main_dir.'/enter.php?ses='.$ses.''\><center><img src='css/ico/stranica.png' alt='Кабинет пользователя'/></center></a></td>";
    4.  
    5. echo '<td class="auts_center">';
    6. echo "<a href=$main_dir.'/message.php?ses='.$ses.''><center><img src='css/ico/pochta.png' alt='Почта'/><span class='count'>".$count_new[0]."</span></center></a></td>";
    7.  
    8. echo '<td class="auts_center">';
    9. echo "<a href=$main_dir.'/balans.php?ses='.$ses.''><center><img src='css/ico/drugans.png' alt='Баланс'/><span class='count'>".round($info['balans'],2)."</span></center></a></td>";
    10.  
    11. echo '<td class="auts_right">';
    12. echo "<a href=$main_dir.'/profile.php?ses='.$ses.''><center><img src='css/ico/lenta.png' alt='Настройки профиля'/><span class='count'>3</span></center></a></td></tr></table>";
    13.  
    Я сделал так. Но теперь не переходит по ссылке. Когда навожу на ссылку, видно, что адрес указан верно, и сессия сохраняется, но не переходит. В чем может быть проблема, подскажите пожалуйста.
     
  10. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    у тебя есть файлы
    C:\web\domains\test\first.php если в нем выполнить echo __DIR__ то тебе напишет: C:\web\domains\test
    А если у тебя есть папка C:\web\domains\test\files\second.php и в нем выполнить echo __DIR__ то тебе напишет: C:\web\domains\test\files

    Я к чему клоню, тебе надо вычислить самую корневую папку, выше которой ты не будешь подниматься в своем проекте и ее адрес записать в переменную, кстати, для этих целей существуют константные значения (которые в дальнейшем нельзя изменить и они доступны везде), делается это так:
    Код (PHP):
    1. define('MAIN_DIR', __DIR__);
    2.  
    3. echo MAIN_DIR; // без $       
    Добавлено спустя 5 минут 44 секунды:
    Дальше, адрес папок по типу C:\web\domains\test нужно использовать внутри! т.е. при подключении файлов:
    Код (PHP):
    1. include('C:\web\domains\test\files\second.php');
    но не в коем случае не снаружи, т.е. нельзя использовать в коде html, вот это НЕ правильно:
    Код (Text):
    1. <a href="C:\web\domains\test\files\second.php" >
    когда ты хочешь использовать внешние ссылки, в коде html тебе надо установить адрес твоего сайта и от него отталкиваться, должно быть так:
    Код (Text):
    1. <a href="http://mysite.ru/files/second.php" >