2015-06-28 3 views
3

У меня небольшая проблема с моим PHP-кодом. Я хочу создать сайт с разными каталогами. В каждом каталоге есть файл с именем pass (not .txt или что-то еще) со значением пароля каталогов. Поэтому, если файл pass не существует, группа не будет существовать. Но даже если группа существует, она все еще говорит, что группа не существует, и я тоже не могу ее открыть, но я могу найти ее. Вот мой код:
PHP file_exists возвращает false с существующими файлами

<?php 
$name = $_POST['name']; 
$group = $_POST['group']; 
$pass = $_POST['pass']; 
$filename = '/groups/' . $group . '/pass'; 
if(file_exists($filename)){ 
    $handle = fopen($filename) or die("can't open file"); 
    $hoi = fread($handle, filesize($filename)); 
    fclose($handle); 
    if ($pass === $hoi){ 
     session_start(); 
     $_SESSION['name'] = $name; 
     header('Location: http://www.google.com'); 
    } 
    else{ 
     echo 'Password is wrong!'; 
    } 
} 
else{ 
    echo 'Group does not exist!'; 
} 
?> 

Все POST-данные правильны кстати. Спасибо за вашу помощь!

+0

старайтесь всегда давать полный путь. –

+2

'$ filename = '/ groups /'. $ group. '/ pass'; '- это абсолютный путь к файлу, поэтому вы по существу (предполагаете, что используете для этой ссылки окна), видя, существует ли' c:/groups/.... '. – Jon

+2

путь к файлу должен быть абсолютным. Предлагаемый способ должен использоваться: define ('ROOT', dirname (__ FILE__)); // define ('ROOT', 'c: \\ somedir'); затем используйте $ filename = ROOT. '/ groups /'. $ group. '/проходить'; – sabkaraja

ответ

0

Я думаю, что файл pass должен иметь окончание. например. .php или .html или что-то Неверное имя файла '/groups/' . $group . '/pass';.

Функция PHP имеет имя file_exist() и файлы должны иметь окончание!

Если это папка, она иногда слэш в конце. Но это может быть файл. С .htaccess redirect, на index.html или index.php может быть слэш в конце файла.