PHP - Cookies - JavaScript から PHP へ渡す

クラウディア 
1. 概要
2. JavaScript から PHP へ渡す

1. 概要

 先を急いでおりましてな・・・。  タイトルが長々となるので、省略しておりますが、このタイトルは正確には「JavaScript から PHP へ Cookie を渡す」です。  できあがった、コンテンツを緩やかに移行するという事情があって、「smarty」を使ったり、「html」から、「PHP」を呼び出したりとかするわけです。  すると、呼び出した「PHP」では、いきなり、「Cookie」の値を参照したりはできないわけだ・・・。  これを実現するには、「html」内に「JavaScript」を記述して、「JavaScript」を通して、「PHP」へ「Cookie」の値を渡すということをしなければならない・・・。  本項は、「JavaScript の変数を PHP に渡す方法|WEBサイトに関わるあれこれ」を参考にさせていただきました。

2. JavaScript から PHP へ渡す

 「HTML」(もしくは、「smarty」のテンプレート)に、以下のような記述をします。

<script>
$.ajax({
  type: "POST",
  url: "/パス/PHPファイル.php",
  data: { "cookie": document.cookie }
});
</script>
 これ、ほぼ、まんま、参考サイトをコピーさせていただいたのおります。  「PHP」のファイルを下記のように記述すると

<?php
error_log('$_POST=['.str_replace(PHP_EOL, '', print_r($_POST, TRUE)).']');
?>
 ログに

[01-Oct-2019 13:16:17 Asia/Tokyo] $_POST=[Array(    [cookie] => キー1=値1; キー2=値2...)]
 てな感じで出力されます。