Ошибка разрешения PHP - /tmp

В основном у меня есть .htaccess файл, с php_value session.auto_start установлен в 1, Так что мой сеанс начнется в любом файле.

Тем не менее, теперь у меня есть сценарий в моем /functions папку, но выдает ошибку о разрешениях /tmp, в результате чего "Failed to write session data"хотя он не использует, запускает или делает что-либо с сеансом.

Все же это вызывает ошибку, и мне кажется, что он не может найти /tmp папка, которая у меня есть. Файлы прямо в моей корневой папке (/не имеет этой проблемы.
Я также попытался установить права доступа /tmp в 777, но безрезультатно.

заранее спасибо


Я получаю ошибку

Warning: Unknown: open(/tmp/sess_cfed7db100fd58b62eaca2a519ebaf7a, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

Сам скрипт:

<?php
define ('INCLUDE_CHECK',true);
require('connect.php'); //This file doesn't use any sessions as well

if(isset($_POST['signupemail'])){
    $email = mysqli_real_escape_string($link, $_POST['signupemail']);
    $thearray = mysqli_fetch_array(mysqli_query($link, "SELECT COUNT(*) FROM `users` WHERE email=\"".$email."\""));

    if($thearray[0] > 0){
        echo '"This emailaddress is already in use"';
        exit;
    }
    echo "true";


} else if(isset($_POST['uname'])){

    if(!preg_match('/^[a-zA-Z0-9_-]{3,16}$/ ',$_POST['uname'])){
        echo '"<small>Please only use alphanumeric characters, underscores and hyphens</small>"';
        exit;
    }

    $uname = mysqli_real_escape_string($link, $_POST['uname']);
    $thearray = mysqli_fetch_array(mysqli_query($link, "SELECT COUNT(*) FROM `users` WHERE uname=\"".$uname."\"")); 
    $forbiddennames = array(1 => 'super-user','superuser', 'root', 'admin', 'administrator', 'system', 'website', 'site', 'owner', 'manager', 'founder','moderator');    

    if(in_array(strtolower($_POST['uname']), $forbiddennames)) {
        echo '"'.$_POST['uname'].' is a forbidden username"';
        exit;
    } 
    if($thearray[0] > 0){
        echo '"This username is already in use, please choose another"';
        exit;
    } 


    echo "true";

}
?>

Я получаю сообщение об ошибке, когда просто перехожу к своему сценарию вручную, поэтому без каких-либо $_POST параметры установлены. Я использую этот скрипт для проверки своей электронной почты и / или пароля, и при проверке он останавливается, не зная, что делать с результатом (получено от AJAX).

2 ответа

Я думаю, что помню некоторые настройки php.ini, которые запрещают доступ к файлам, которых нет в дереве каталогов веб-сервера. Я не знаю, относится ли это к файлам, которые создаются внутри php, хотя.

Если вы работаете в Red Hat Enterprise linux или на каком-либо из его производных, таких как CentO или Scientific Linux, это также может быть проблемой с selinux. Проверьте, исчезла ли проблема, если вы установили selinux в permissive (sudo setenforce Permissive). Если это "решает" проблему, подумайте дважды о том, чтобы оставить selinux в разрешающем режиме, особенно если ваш сервер доступен из Интернета, лучше узнать о selinux и перемаркировке.

Хм, это было связано с браузером. Когда я тестировал его в FireFox, проблем не было. В Google Chrome большая проблема.

Я не знаю, что это было, но после удаления кеша, куки, всего с моего сайта все заработало отлично. Похоже, он искал старую сессию.

Другие вопросы по тегам