За последние 24 часа нас посетили 17102 программиста и 1571 робот. Сейчас ищут 636 программистов ...

Ошибка скрипта проверки сеанса

Тема в разделе "PHP для новичков", создана пользователем bonev, 12 дек 2016.

Метки:
  1. bonev

    bonev Новичок

    С нами с:
    11 дек 2016
    Сообщения:
    21
    Симпатии:
    0
    Сделал скрипт который проверяет вошел ли человек в лк или нет. Но выдает ошибку

    Код (Text):
    1.  
    2. Warning: include(/script/reroll/inc/login.php): failed to open stream: No such file or directory in C:\server\OpenServer\domains\shaiya.ru\script\reroll\index.php on line24
    3.  
    4. Warning: include(/script/reroll/inc/login.php): failed to open stream: No such file or directory in C:\server\OpenServer\domains\shaiya.ru\script\reroll\index.php on line24
    5.  
    6. Warning: include(): Failed opening '/script/reroll/inc/login.php' for inclusion (include_path='.;c:/server/openserver/modules/php/PHP-5.5;c:/server/openserver/modules/php/PHP-5.5/PEAR/pear') inC:\server\OpenServer\domains\shaiya.ru\script\reroll\index.php on line 24
    Вот сам скрипт, файл есть в директории inc. Строки с 19 по 32

    Код (Text):
    1. <?php
    2. //    включить сеанс
    3. //    если пользователь не вошел в, загрузить страницу Войти
    4.     if (empty($_SESSION['UserUID'])){
    5.         $back = 'reroll/';
    6.         include('/script/reroll/inc/login.php');
    7.         exit;
    8.     }
    9.     else {
    10.     //    игрок вошедшего в
    11.         $userUID = $_SESSION['UserUID'];
    12.         include('script/reroll/inc/pdoConnect.php');    //    подключиться к базе данных с использованием PDO
    13.         include("/script/reroll/inc/functions.php");    //    вспомогательные функции (контроллеры)
    14. ?>
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.790
    Симпатии:
    1.330
    Адрес:
    Лень
    а сам скрипт где находится?
     
  3. bonev

    bonev Новичок

    С нами с:
    11 дек 2016
    Сообщения:
    21
    Симпатии:
    0
    /script/reroll
     
  4. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    проверь - это частая ошибка

    login.php
    Login.php
    lOgin.php
    это разные файлы .. возможно гдето большая буква или буква о русская
    --- Добавлено ---
    имеется ввиду смотри в каталоге как файл называется реально
     
  5. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.579
    Симпатии:
    1.760
    Так всё проще. Поскольку путь начинается с /, линукс ищет файл от корня файловой системы, принимая путь за абсолютный. И посылает тебя нах.., поскольку такого файла от корня нету. Можно убрать просто эту палку, и тогда будет читаться от текущего каталога, но я предпочитаю не полагаться на то, какой каталог установит машина, а использовать встроенную константу __DIR__ для получения каталога, в котором лежит файл. Например, так:
    Код (PHP):
    1.  include(__DIR__ . '/script/reroll/inc/login.php');
    Ну конкретная строка - надо смотреть, как соотносятся каталоги в реале.
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.790
    Симпатии:
    1.330
    Адрес:
    Лень
    include('inc/login.php');
    include('inc/pdoConnect.php');
    и т.д
    если:
     
  7. bonev

    bonev Новичок

    С нами с:
    11 дек 2016
    Сообщения:
    21
    Симпатии:
    0
    У меня сайт сотит на Open Server на винде, не на линухе)
     
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.790
    Симпатии:
    1.330
    Адрес:
    Лень
    include( dirname ( __FILE__, 3 ) . '/script/reroll/inc/login.php');
     
  9. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.579
    Симпатии:
    1.760
    Без разницы. php, фактически, на винде преобразует / в \ в путях. Когда путь начинается с \, в Windows это тоже означает "От корня текущего диска". Ну и потом, всё равно же вы на Linux рабочий вариант перенесёте, скорее всего
     
  10. bonev

    bonev Новичок

    С нами с:
    11 дек 2016
    Сообщения:
    21
    Симпатии:
    0
    Код (Text):
    1. Warning: include(C:\server\OpenServer\domains\shaiya.ru\script\reroll/script/reroll/inc/login.php): failed to open stream: No such file or directory in C:\server\OpenServer\domains\shaiya.ru\script\reroll\index.php on line 24
    2.  
    3. Warning: include(C:\server\OpenServer\domains\shaiya.ru\script\reroll/script/reroll/inc/login.php): failed to open stream: No such file or directory in C:\server\OpenServer\domains\shaiya.ru\script\reroll\index.php on line 24
    4.  
    5. Warning: include(): Failed opening 'C:\server\OpenServer\domains\shaiya.ru\script\reroll/script/reroll/inc/login.php' for inclusion (include_path='.;c:/server/openserver/modules/php/PHP-5.5;c:/server/openserver/modules/php/PHP-5.5/PEAR/pear') in C:\server\OpenServer\domains\shaiya.ru\script\reroll\index.php on line 24
    Вот что из этого получилось)
    --- Добавлено ---
    Код (Text):
    1. Warning: dirname() expects exactly 1 parameter, 2 given in C:\server\OpenServer\domains\shaiya.ru\script\reroll\index.php on line 24
    2.  
    3. Warning: include(/script/reroll/inc/login.php): failed to open stream: No such file or directory in C:\server\OpenServer\domains\shaiya.ru\script\reroll\index.php on line 24
    4.  
    5. Warning: include(/script/reroll/inc/login.php): failed to open stream: No such file or directory in C:\server\OpenServer\domains\shaiya.ru\script\reroll\index.php on line 24
    6.  
    7. Warning: include(): Failed opening '/script/reroll/inc/login.php' for inclusion (include_path='.;c:/server/openserver/modules/php/PHP-5.5;c:/server/openserver/modules/php/PHP-5.5/PEAR/pear') in C:\server\OpenServer\domains\shaiya.ru\script\reroll\index.php on line 24
    Ошибка :D
    --- Добавлено ---
    Вот сам скрипт с 19 по 32 строку
    Код (Text):
    1. <?php
    2. //    включить сеанс
    3. //    если пользователь не вошел в, загрузить страницу Войти
    4.     if (empty($_SESSION['UserUID'])){
    5.         $back = 'reroll/';
    6.         include( dirname ( __FILE__, 3 ) . '/script/reroll/inc/login.php');
    7.         exit;
    8.     }
    9.     else {
    10.     //    игрок вошедшего в
    11.         $userUID = $_SESSION['UserUID'];
    12.         include('script/reroll/inc/pdoConnect.php');    //    подключиться к базе данных с использованием PDO
    13.         include("/script/reroll/inc/functions.php");    //    вспомогательные функции (контроллеры)
    14. ?>
     
  11. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.579
    Симпатии:
    1.760
    А вы просто код копируете...
    Если сам скрипт в script/reroll (не заметил этого сообщения, когда писал первый ответ),
    тогда
    Код (PHP):
    1. include(__DIR__ . "/inc/login.php");
    dirname ( __FILE__, 3 ) не сработало, поскольку второй параметр появился в php 7. Опять же, если бы заглянули в документацию, там бы вы это нашли
     
  12. bonev

    bonev Новичок

    С нами с:
    11 дек 2016
    Сообщения:
    21
    Симпатии:
    0
    Вот са
    Спасибо заработало, но не совсем так как предполагалось ;D
    upload_2016-12-12_22-55-17.png
     
  13. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.579
    Симпатии:
    1.760
    Ну проблемы вёрстки с PHP не связаны
     
  14. bonev

    bonev Новичок

    С нами с:
    11 дек 2016
    Сообщения:
    21
    Симпатии:
    0
    Да я знаю) просто поделился своей недоработкой;););)