Я хочу передать значение ($ login) из файла cookie в $ dir. file.phpполучить значение из файла cookie в php-классе?
<?php
class File {
public $filename;
public $login;
public $dir;
public function __construct() {
$this->login = $_COOKIE['login'];
this->dir = "userFiles/" . $this->login . "/";
$createDir="./userFiles/".$login;
if (!is_dir($createDir)){
mkdir($createDir,0777,true);
}
$action = isset($_POST['action']) ? $_POST['action'] : false;
$this->filename = isset($_POST['filename']) ? $_POST['filename'] : false;
}
private function save() {
$content = isset($_POST['content']) ? $_POST['content'] : '';
file_put_contents($this->dir.$this->filename, urldecode($content));
}
}
$file = new File();
?>
Это весь код. имя файла и переменная действия передаются с помощью ajax с страницы index.php.
index.php Это главная страница, которая отправляет данные
<?php
if (! isset($_COOKIE['login'])) {
echo "Need to log in first";
header("refresh:2;url=login.php");
exit;
}
?>
<!doctype html>
<html>
<head>
<title>Editor</title>
</head>
<body>
<textarea id="code" name="code">code goes here</textarea>
<br/><button id="save">save</button>
<input type="text" id="filename" value="test.txt"><br>
<script src="JavaScript/jquery.js"></script>
<script>
var url = 'file.php';
$("#save").click(function() {
$.ajax({
url : url,
type: 'post',
xhrFields: {
withCredentials: true
},
data : {
filename : $("#filename").val(),
action : 'save',
content : encodeURIComponent($('#code').val())
}
});
});
</script>
</body>
</html>
Почему вы пытаетесь присвоить '$ login' дважды? просто объявите логин следующим образом: 'public $ login' Также назначьте dir в конструкторе! – Rizier123
BTW: Вы забыли знак '$', где вы назначаете $ dir! – Rizier123
@ Rizier123 Я добавил знак $. создает папку userFiles, но внутри нее создается внутренняя папка $ login, и она не сохраняет файл внутри. – zeee9