teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記

2017/04/04 06:43

投稿

ryo-dev
ryo-dev

スコア437

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,82 @@
1
1
  PHPでサイトの作成での勉強で、ログインのモーダルウインドウを表示するようにしたんですが、全ページにつけるとなると結構たいへんで、後にデザイン変更する時も大変になるのでと思い。管理する関数を作り`ヒアドキュメント`で管理するようにしました。
2
2
  ですが、`echo <<< EOT EOT;`内でセッションを使っている箇所があり、エラーが出てしまいます。
3
- このような場合は、もっと他の方法があったりしますか?
3
+ このような場合は、もっと他の方法があったりしますか?
4
+
5
+ ###追記
6
+ 体調を崩してしまい追記が遅れましたすいません。
7
+
8
+ ```php
9
+ <!-- ログインしていなかったら -->
10
+ <?php if(!$app->login){ ?>
11
+ <section>
12
+ <div id="open2" class="btn" style="margin-top: 20px;">ログイン <br> or <br> 新規登録</div>
13
+ </section>
14
+
15
+ <section id="modalwindow">
16
+ <div id="mask" class="hidden"></div>
17
+
18
+ <div id="window" class="hidden">
19
+ <div id="close" class="hidden">☓ 閉じる</div>
20
+ <br>
21
+ <div id="box">
22
+ <form action="" method="post" id="login2">
23
+ <p>
24
+ <input type="text" name="email" placeholder="メールアドレス" value="<?= isset($app->getValues()->email2) ? h($app->getValues()->email2) : ''; ?>">
25
+ </p>
26
+ <p>
27
+ <input type="password" name="password" placeholder="パスワード">
28
+ </p>
29
+ <p class="err"><?= h($app->getErrors('login')); ?></p>
30
+ <div class="btn" onclick="document.getElementById('login2').submit();">ログイン</div>
31
+ <input type="hidden" name="token" value="<?= h($_SESSION['token']); ?>">
32
+ <input type="hidden" name="posttype" value="login">
33
+ <hr>
34
+ <p class="btn"><a href="./signup.php">新規登録はこちら</a></p>
35
+ </form>
36
+ </div>
37
+ <!-- <script src="./javascript/tabmenu.js"></script>-->
38
+ </div>
39
+ </section>
40
+
41
+ <!-- ログインしていたら -->
42
+ <?php }else{ ?>
43
+ 省略
44
+ <?php } ?>
45
+
46
+ ```
47
+ ログインしていなかったら、モーダルウインドウを表示するようにしたいのですが、これを全ページに付けたく、
48
+ ```php
49
+ public function modalwindow(){
50
+ echo <<< EOT
51
+ <section id="modalwindow">
52
+ <div id="mask" class="hidden"></div>
53
+
54
+ <div id="window" class="hidden">
55
+ <div id="close" class="hidden">☓ 閉じる</div>
56
+ <br>
57
+ <div id="box">
58
+ <form action="" method="post" id="login2">
59
+ <p>
60
+ <input type="text" name="email" placeholder="メールアドレス" value="<?= isset($app->getValues()->email2) ? h($app->getValues()->email2) : ''; ?>">
61
+ </p>
62
+ <p>
63
+ <input type="password" name="password" placeholder="パスワード">
64
+ </p>
65
+ <p class="err"><?= h($app->getErrors('login')); ?></p>
66
+ <div class="btn" onclick="document.getElementById('login2').submit();">ログイン</div>
67
+ <input type="hidden" name="token" value="<?= h($_SESSION['token']); ?>">
68
+ <input type="hidden" name="posttype" value="login">
69
+ <hr>
70
+ <p class="btn"><a href="./signup.php">新規登録はこちら</a></p>
71
+ </form>
72
+ </div>
73
+ <!-- <script src="./javascript/tabmenu.js"></script>-->
74
+ </div>
75
+ </section>
76
+ EOT;
77
+
78
+ ```
79
+ このようにしました。そして、表示したい場所でこの関数を呼び出せばいいと思ったのですが、
80
+ ![イメージ説明](f7abce20b20d535378b3e89bbece2a32.jpeg)
81
+ エラーが出てしまうんですよ。
82
+ なので、違う方法はないかという質問です。