アカウントを登録すると、新しいフォルダーが自動的に作成されるユーザーシステムがあります。
Registerコントローラーにmkdir('./upload/' . $this->session->userdata('id'), 0, true)の行に沿って何かを配置しましたが、役に立ちませんでした。
誰かがそれを機能させる方法を知っていますか?
アカウントを登録すると、新しいフォルダーが自動的に作成されるユーザーシステムがあります。
Registerコントローラーにmkdir('./upload/' . $this->session->userdata('id'), 0, true)の行に沿って何かを配置しましたが、役に立ちませんでした。
誰かがそれを機能させる方法を知っていますか?
次のように、フォルダの作成中に許可を設定しようとしましたか:
mkdir('./upload/' . $this->session->userdata('id'), 0777);
適切な権限を設定しましたか? Codeigniter またはその他の PHP スクリプトは、CHMOD 値が正しくないために許可されていないファイルやディレクトリを作成できません。ほとんどの場合、値は 755 または 775 で十分です。これらの値は、コマンド ラインまたは FTP アプリケーションを使用して変更できます (ほとんどのアプリケーションで実行できます)。また、所有者またはグループのいずれかが、Web サーバーが実行されているのと同じユーザーに設定されていることを確認してください (ほとんどの場合、www-data)。
例:
chmod -R 775 /var/www/username/codeigniterapp.com/some_dir
「chown」コマンドでグループ/ユーザーを変更できます。
chown -R www-data:someuser /var/www/username/codeigniterapp.com/some_dir
-R フラグは、コマンド自体を再帰的に実行するように指示することに注意してください。最上位ディレクトリのパーミッションのみを変更したい場合は、単純に -R フラグを削除できます。
私はワイルドなアイデアを持っていますが、あなたの問題に対する完璧な解決策かもしれません. パーミッションも最初から正しく設定しました。私の考えは、CodeIngniter の FTP クラスを使用してから、FTP でディレクトリを作成することです。
$this->ftp->mkdir('/public_html/profile_pictures/username/', DIR_WRITE_MODE);
次に、以下のコードをフォローアップして、許可値を 777 にします。
$this->ftp->chmod('/public_html/profile_pictures/username/', DIR_WRITE_MODE);
その後、ディレクトリを削除するのも非常に簡単です。
$this->ftp->delete_dir('/public_html/profile_pictures/username/')
私が言ったように、非常にワイルドなアイデアです!