dounokouno / TransmitMail

Copyright表示不要のPHP製汎用メールフォームシステム
http://etc.dounokouno.com/TransmitMail/
MIT License
142 stars 48 forks source link

index.php にヘッダーを書けない #55

Closed udonka closed 4 years ago

udonka commented 4 years ago

v2.4.0 を使っております。

製作者様の下記のコメントを読み、index.php の ->run を挟むような形でヘッダー・フッターの共通部分を書いております。

https://github.com/dounokouno/TransmitMail/issues/2#issuecomment-493384884 しかしサーバーに設置したところ、 session_start(): Cannot send session cache limiter - headers already sent (output started at ....../index.php:16) in ....../lib/TransmitMail.php on line 363 というエラーが出ました。

そこで、run() のソースコードを読んだところ、startSession() という記述がありました。 たしかにHTMLを出力開始した後にセッションを開始することはできいないと思います。

てっきり、2.4 の改善で run()の中にはセッションに関する記述はなくなったものと思っていたのですが、そうではないということでしょうか? つまり、TransmitMailではヘッダー・フッターの共通化はできないということでしょうか。 よろしくお願いいたします。

dounokouno commented 4 years ago

@udonka 様

よろしければ、 index.php をどのように書かれているか、可能な範囲で構いませんので、コメント欄に貼り付けていただけるとありがたいです。よろしくお願いいたします。

dounokouno commented 4 years ago

確かに run() 内で session を開始しているので、該当のエラーになりますね。。修正しますmm

udonka commented 4 years ago

@dounokouno

コードもなしにすみません、下記がコードです。

<?php
/**
 * TransmitMail
 *
 * @package   TransmitMail
 * @license   MIT License
 * @copyright TAGAWA Takao, dounokouno@gmail.com
 * @link      https://github.com/dounokouno/TransmitMail
 */

require_once 'lib/TransmitMail.php';
$tm = new TransmitMail();
$tm->init('config/config.yml');

?>

<!doctype html>
<html lang="ja" xml:lang="en" class="font_size">
<head>
</head>

<body class="top">

<?php
  $tm->run();
?>

</main>
<!--  main   -->
<!--  footer   -->
<footer class="footer outer">
</footer>
<!--  footer   -->

</body>
</html>

確かに run() 内で session を開始しているので、該当のエラーになりますね。。修正しますmm

ありがとうございます。 本当はプルリク送れという話だと思うのですが、外野でいろいろ言ってすみません。。

dounokouno commented 4 years ago

@udonka 様

修正対応をした v2.4.1 をリリースしました。よろしければ動作確認いただければ幸いです。

dounokouno commented 4 years ago

テンプレートファイルから別のテンプレートファイルをインクルードする機能を実装した v2.5.0 をリリースしましたので、よろしければそちらの方法もご検討いただければ幸いです。

参照: https://github.com/dounokouno/TransmitMail/issues/26#issuecomment-590028270

dounokouno commented 4 years ago

本 issue は一旦、 close させていただきます。もしまだ未解決でしたら、再度、本 issue を open していただくか、別の issue を作成してください。