🎉

Omeka SでのCSRF: Value is required and can’t be emptyエラーへの対応

2024/10/02に公開

概要

Omeka Sにおいて、多くのメディアが関連づけられたアイテムを保存しようとする際、CSRF: Value is required and can’t be emptyというエラーメッセージが表示され、保存が完了しない事象に遭遇しました。

本記事では、このエラーへの対処方法について説明します。

関連記事

以下の記事などで言及されています。既知のエラーのようで、php.iniを変更する必要があると述べられています。

https://forum.omeka.org/t/csrf-value-is-required-and-cant-be-empty/15421

https://github.com/omeka/omeka-s/issues/1472

対処方法

以下にチャットGPTによる回答を掲載します。

php.inimax_input_vars を設定するには、以下の手順を実行してください。

  1. php.ini ファイルを開きます。php.ini の場所は、環境によって異なるため、以下のいずれかのディレクトリにあることが多いです:

    • /etc/php/8.x/apache2/php.ini (Apache)
    • /etc/php/8.x/cli/php.ini (CLI)
    • /etc/php/8.x/fpm/php.ini (PHP-FPM)
  2. max_input_vars の値を設定または変更します。設定するために、次の行を探します。または、存在しない場合は新しく追加します。

    max_input_vars = 1000
    

    1000 という値はデフォルトですが、必要に応じて大きな数に変更できます。例えば、5000に変更する場合は次のようにします。

    max_input_vars = 5000
    
  3. php.ini ファイルを保存します。

  4. Webサーバーを再起動して設定を反映させます。例えば、Apache を使っている場合は、以下のコマンドを実行します。

    sudo systemctl restart apache2
    

    PHP-FPM を使用している場合は、次のように実行します。

    sudo systemctl restart php8.x-fpm
    

これで max_input_vars が設定され、Webサーバーがその設定を反映します。

まとめ

今回はmax_input_vars = 5000に設定することで、上記エラーを解消することができました。

同様のことでお困りの方の参考になりましたら幸いです。

Discussion