【MTAはSendgrid】$_SESSIONでファイル間のデータが引き継がれない。
Sendgridのサンプルを使って送信環境を作っています。
https://sendgrid.kke.co.jp/blog/?p=1066
以下のように、3つのファイルがあり、index.htmlからconfirm.phpへのデータの受け渡しはうまく行き、画面にはHTMLで表示されています。
index.html
<!doctype html>
<html>
<head>
省略
</head>
<body>
〜
<div class="field">
<label>お名前</label>
<input id="fullname" type="text" name="fullname" placeholder="例:山田 太郎">
</div>
</body>
</html>
confirm.html
<? php
if(!$_POST) {
header('Location: ./index.html');
session_start();
$_SESSION["fullname"] = $_POST["fullname"];
};
?>
<!doctype html>
<html>
<head>
省略
</head>
<body>
〜
<form id="form" action="sendmail.php" method="post">
<p>お名前:<?php echo htmlspecialchars($_POST["fullname"]); ?></p>
<button type="submit">
<img src="images/submit.png" class="submit-btn">
</button>
</form>
</body>
</html>
ところが、
sendmail.php
<?php
session_start();
if(!$_SESSION=["fullname"]) {
header('Location: ./index.html');
};
var_dump($_SESSION);
require 'vendor/autoload.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
$api_key = $_ENV['API_KEY']; <--独自の環境変数から読み込み
$from = $_ENV['FROM']; <--独自の環境変数から読み込み
$tos = explode(',', $_ENV['TOS']); <--独自の環境変数から読み込み
$fullname = $_SESSION["fullname"]; <-- 20行目
省略
$sendgrid = new SendGrid($api_key, array("turn_off_ssl_verification" => true));
$email = new SendGrid\Email();
$email->setSmtpapiTos($tos)->
setFrom($from)->
setFromName("送信者名")->
setSubject("[申し込みが来ました] %fullname%さんから申し込みが来ました")->
setText("%fullname%さん \r\n ")->
setSubstitution('%fullname%', '$fullname')-> <--43行目
省略
?>
と書きました。そしたら、
array(1) { [0]=> string(8) "fullname" }
Notice: Undefined index: fullname in /var/www/html/lp/sendmail.php on line 20
Fatal error: Uncaught Error: Call to undefined method SendGrid\Email::setSubstitution() in /var/www/html/lp/sendmail.php:43 Stack trace: #0 {main} thrown in /var/www/html/lp/sendmail.php on line 43
Notice: Unknown: Skipping numeric key 0 in Unknown on line 0**
とエラーを吐きました。画面上はデータが表示されていましたが内部的にデータを保持できておらず、fullnameに上書きされてしましました。これをデータをきちんと渡せれば解決するとおもうので、どうしたらデータを引き継げるのか教えてください。