0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 3324 Просмотров
*

krimobzor

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
После авторизации нового пользователя в его профиле выдает
Warning: opendir(/home/мой логин/public_html/images/idoblog/upload/Логин_пользователя) [function.opendir]: failed to open dir: Permission denied in /home/мой логин/public_html/libraries/joomla/filesystem/path.php on line 77

Warning: readdir(): supplied argument is not a valid Directory resource in /home/мой логин/public_html/libraries/joomla/filesystem/path.php on line 78

Warning: closedir(): supplied argument is not a valid Directory resource in /home/мой логин4/public_html/libraries/joomla/filesystem/path.php on line 95

Warning: opendir(/home/мой логин/public_html/images/idoblog/upload/lol/preview) [function.opendir]: failed to open dir: Permission denied in /home/мой логин/public_html/libraries/joomla/filesystem/path.php on line 77

Warning: readdir(): supplied argument is not a valid Directory resource in /home/мой логин/public_html/libraries/joomla/filesystem/path.php on line 78

Warning: closedir(): supplied argument is not a valid Directory resource in /home/мой логин/public_html/libraries/joomla/filesystem/path.php on line 95

Смотрю, а в в папке home/мой логин/public_html/images/idoblog/upload/Логин_пользователя/ стоят атрибуты 755.
Изменил function setPermissions($path, $filemode = '0644', $foldermode = '0755') на function setPermissions($path, $filemode = '0644', $foldermode = '0777') Теперь папка пользователя создается с атрибутами 777, а проблема все равно не решилась. Все равно ошибку выдает.
Подскажите, как исправить. Буду благодарен.
*

lottis

  • Захожу иногда
  • 181
  • 11 / 0
У меня такая-же ситуация, кто нашел решение?
*

lottis

  • Захожу иногда
  • 181
  • 11 / 0
Нашел решение проблемы:

Для исправления вывода ошибок воспользовался советом:

http://php.net/manual/ru/function.opendir.php

Цитировать
resource opendir ( string $path )

Возвращает дескриптор каталога для последующего использования с функциями closedir(), readdir() и rewinddir().

Если путь не существует или каталог, расположенный по указанному пути, не может быть открыт вследствие правовых ограничений или ошибок файловой системы, функция opendir() возвращает значение FALSE и генерирует сообщение PHP об ошибке уровня E_WARNING. Вы можете запретить вывод сообщения об ошибке, предварив имя функции opendir() символом '@'.

И в этом пути
\libraries\joomla\filesystem\path.php

закоментил данные строки @

Warning: opendir(/home/пользователь/domains/сайт/public_html/images/idoblog/upload/yoga) [function.opendir]: failed to open dir: Permission denied in /home/пользователь/domains/сайт/public_html/libraries/joomla/filesystem/path.php on line 77

Warning: readdir(): supplied argument is not a valid Directory resource in /home/пользователь/domains/сайт/public_html/libraries/joomla/filesystem/path.php on line 78

Warning: closedir(): supplied argument is not a valid Directory resource in /home/пользователь/domains/сайт/public_html/libraries/joomla/filesystem/path.php on line 95

Warning: opendir(/home/пользователь/domains/сайт/public_html/images/idoblog/upload/yoga/preview) [function.opendir]: failed to open dir: Permission denied in /home/пользователь/domains/сайт/public_html/libraries/joomla/filesystem/path.php on line 77

Warning: readdir(): supplied argument is not a valid Directory resource in /home/пользователь/domains/сайт/public_html/libraries/joomla/filesystem/path.php on line 78

Warning: closedir(): supplied argument is not a valid Directory resource in /home/пользователь/domains/сайт/public_html/libraries/joomla/filesystem/path.php on line 95

Получился вот такой код в файле path.php

Код
<?php
/**
 * @version $Id: path.php 14401 2010-01-26 14:10:00Z louis $
 * @package Joomla.Framework
 * @subpackage FileSystem
 * @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
 * @license GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */
defined('JPATH_BASE') or die();
/** boolean True if a Windows based host */
define('JPATH_ISWIN', (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'));
/** boolean True if a Mac based host */
define('JPATH_ISMAC', (strtoupper(substr(PHP_OS, 0, 3)) === 'MAC'));

if (!defined('DS')) {
/** string Shortcut for the DIRECTORY_SEPARATOR define */
define('DS', DIRECTORY_SEPARATOR);
}

if (!defined('JPATH_ROOT')) {
/** string The root directory of the file system in native format */
define('JPATH_ROOT', JPath::clean(JPATH_SITE));
}

/**
 * A Path handling class
 *
 * @static
 * @package Joomla.Framework
 * @subpackage FileSystem
 * @since 1.5
 */
class JPath
{
/**
* Checks if a path's permissions can be changed
*
* @param string $path Path to check
* @return boolean True if path can have mode changed
* @since 1.5
*/
function canChmod($path)
{
$perms = fileperms($path);
if ($perms !== false)
{
if (@ chmod($path, $perms ^ 0001))
{
@chmod($path, $perms);
return true;
}
}
return false;
}

/**
* Chmods files and directories recursivly to given permissions
*
* @param string $path Root path to begin changing mode [without trailing slash]
* @param string $filemode Octal representation of the value to change file mode to [null = no change]
* @param string $foldermode Octal representation of the value to change folder mode to [null = no change]
* @return boolean True if successful [one fail means the whole operation failed]
* @since 1.5
*/
function setPermissions($path, $filemode = '0644', $foldermode = '0755') {

// Initialize return value
$ret = true;

if (is_dir($path))
{
$dh = @ opendir($path);
while ($file = @ readdir($dh))
{
if ($file != '.' && $file != '..') {
$fullpath = $path.'/'.$file;
if (is_dir($fullpath)) {
if (!JPath::setPermissions($fullpath, $filemode, $foldermode)) {
$ret = false;
}
} else {
if (isset ($filemode)) {
if (!@ chmod($fullpath, octdec($filemode))) {
$ret = false;
}
}
} // if
} // if
} // while
@ closedir($dh);
if (isset ($foldermode)) {
if (!@ chmod($path, octdec($foldermode))) {
$ret = false;
}
}
}
else
{
if (isset ($filemode)) {
$ret = @ chmod($path, octdec($filemode));
}
} // if
return $ret;
}

/**
* Get the permissions of the file/folder at a give path
*
* @param string $path The path of a file/folder
* @return string Filesystem permissions
* @since 1.5
*/
function getPermissions($path)
{
$path = JPath::clean($path);
$mode = @ decoct(@ fileperms($path) & 0777);

if (strlen($mode) < 3) {
return '---------';
}
$parsed_mode = '';
for ($i = 0; $i < 3; $i ++)
{
// read
$parsed_mode .= ($mode { $i } & 04)? "r" : "-";
// write
$parsed_mode .= ($mode { $i } & 02)? "w" : "-";
// execute
$parsed_mode .= ($mode { $i } & 01)? "x" : "-";
}
return $parsed_mode;
}

/**
* Checks for snooping outside of the file system root
*
* @param string $path A file system path to check
* @return string A cleaned version of the path
* @since 1.5
*/
function check($path)
{
if (strpos($path, '..')!== false) {
JError::raiseError( 20, 'JPath::check Use of relative paths not permitted'); // don't translate
jexit();
}
$path = JPath::clean($path);
if (strpos($path, JPath::clean(JPATH_ROOT))!== 0) {
JError::raiseError( 20, 'JPath::check Snooping out of bounds @ '.$path); // don't translate
jexit();
}
}

/**
* Function to strip additional / or \ in a path name
*
* @static
* @param string $path The path to clean
* @param string $ds Directory separator (optional)
* @return string The cleaned path
* @since 1.5
*/
function clean($path, $ds=DS)
{
$path = trim($path);

if (empty($path)) {
$path = JPATH_ROOT;
} else {
// Remove double slashes and backslahses and convert all slashes and backslashes to DS
$path = preg_replace('#[/\\\\]+#', $ds, $path);
}

return $path;
}

/**
* Method to determine if script owns the path
*
* @static
* @param string $path Path to check ownership
* @return boolean True if the php script owns the path passed
* @since 1.5
*/
function isOwner($path)
{
jimport('joomla.filesystem.file');
jimport('joomla.user.helper');

$tmp = md5(JUserHelper::genRandomPassword(16));
$ssp = ini_get('session.save_path');
$jtp = JPATH_SITE.DS.'tmp';

// Try to find a writable directory
$dir = is_writable('/tmp')? '/tmp' : false;
$dir = (!$dir && is_writable($ssp))? $ssp : false;
$dir = (!$dir && is_writable($jtp))? $jtp : false;

if ($dir)
{
$test = $dir.DS.$tmp;

// Create the test file
JFile::write($test, '');

// Test ownership
$return = (fileowner($test) == fileowner($path));

// Delete the test file
JFile::delete($test);

return $return;
}

return false;
}

/**
* Searches the directory paths for a given file.
*
* @access protected
 * @param array|string $path An path or array of path to search in
* @param string $file The file name to look for.
* @return mixed The full path and file name for the target file, or boolean false if the file is not found in any of the paths.
* @since 1.5
*/
function find($paths, $file)
{
settype($paths, 'array'); //force to array

// start looping through the path set
foreach ($paths as $path)
{
// get the path to the file
$fullname = $path.DS.$file;

// is the path based on a stream?
if (strpos($path, '://') === false)
{
// not a stream, so do a realpath() to avoid directory
// traversal attempts on the local file system.
$path = realpath($path); // needed for substr() later
$fullname = realpath($fullname);
}

// the substr() check added to make sure that the realpath()
// results in a directory registered so that
// non-registered directores are not accessible via directory
// traversal attempts.
if (file_exists($fullname) && substr($fullname, 0, strlen($path)) == $path) {
return $fullname;
}
}

// could not find the file in the set of paths
return false;
}
}
« Последнее редактирование: 21.04.2011, 19:09:33 от lottis »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отследить событие добавления пользователя в группу Joomla в RSmembership

Автор kit2m2

Ответов: 4
Просмотров: 1662
Последний ответ 23.10.2020, 11:42:36
от kit2m2
Проблема с модулем авторизации BT Login

Автор Paladinrus

Ответов: 0
Просмотров: 1848
Последний ответ 28.05.2019, 14:56:06
от Paladinrus
rsfeedbacks ошибка Недопустимое поле: created

Автор scorpion1981

Ответов: 0
Просмотров: 2695
Последний ответ 23.09.2018, 12:13:21
от scorpion1981
Блокирует внешние ссылки admitad.com после установки Disqus

Автор DDAANN

Ответов: 3
Просмотров: 5355
Последний ответ 21.04.2017, 14:41:03
от DDAANN
Модуль авторизации BT Login

Автор zeus07

Ответов: 35
Просмотров: 18913
Последний ответ 23.12.2016, 16:26:47
от Olga113