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

質問編集履歴

3

情報を追加しました。

2020/05/27 13:55

投稿

potet
potet

スコア17

title CHANGED
File without changes
body CHANGED
@@ -156,6 +156,7 @@
156
156
  </body>
157
157
 
158
158
  ```
159
+ dbconnect.php
159
160
  ```ここに言語を入力
160
161
  <!doctype html>
161
162
  <html lang ="ja">
@@ -175,4 +176,87 @@
175
176
  }
176
177
  ?>
177
178
  ```
179
+ index.php-post¥join
180
+ ```ここに言語を入力
181
+ <!doctype html>
182
+ <html lang="ja">
183
+ <head>
184
+ <meta charset=utf8>
185
+ </head>
186
+ <body>
187
+ <?php
188
+ require('dbconnect.php');
189
+ session_start();
190
+
191
+ if(!empty($_COOKIE['email'])&&$_COOKIE['email'] != ''){
192
+ $_POST['email']=$_COOKIE['email'];
193
+ $_POST['email']=$_COOKIE['password'];
194
+ $_POST['save']='on';
195
+ }
196
+ var_dump($_POST);
197
+ if(!empty($_POST)){
198
+ //ログイン処理
199
+ if($_POST['email']!=''&&isset($_POST['password'])&&$_POST['password']!=''){
200
+ $login=$db->prepare('SELECT * FROM members WHERE email=? AND password=?');
201
+ $login->execute(array(
202
+ $_POST['email'],
203
+ sha1($_POST['password'])
204
+ ));
205
+ $member=$login->fetch();
206
+
207
+ if($member){
208
+ //ログイン成功
209
+ $_SESSION['id']=$member['id'];
210
+ $_SESSION['time']=time();
211
+
212
+ //ログイン情報を記録する
213
+ if($_POST['save']=='on'){
214
+ setcookie('email',$_POST['email'],time()+60*60*24*14);
215
+ setcookie('password',$_POST['password'],time()+60*60*24*14);
216
+ }
217
+
218
+
219
+ header('Location:index.php'); exit();
220
+ }else{
221
+ $error['login']='failed';
222
+ }
223
+ }else{
224
+ $error['login']='blank';
225
+ }
226
+ }
227
+ ?>
228
+ <div id="lead">
229
+ <p>メールアドレスとパスワードを記入してログインしてください。</p>
230
+ <p>入会手続きがまだの方はこちらからどうぞ。</p>
231
+ <p>&raquo;<a href="join/">入会手続きをする</a></p>
232
+ </div>
233
+ <form action="" method="post">
234
+ <dl>
235
+ <dt>メールアドレス</dt>
236
+ <dd>
237
+ <input type="text" name="email" size="35" maxlength="255" value="<?php if(!empty($_POST['email'])){ echo htmlspecialchars($_POST['email'],ENT_QUOTES);}?>"/>
238
+ <?php if(isset($error['login'])&&$error['login']=='blank'):?>
239
+ <p class="error">メールアドレスとパスワードをご記入ください。</p>
240
+ <?php endif;?>
241
+ <?php if(isset($error['login'])&&$error['login']=='failed'):?>
242
+ <p class="error">ログインに失敗しました。正しくご記入ください。</p>
243
+ <?php endif;?>
244
+ </dd>
245
+ <dt>パスワード</dt>
246
+ <dd>
247
+ <input type="password" name="password" size="35" maxlength="255" value="<?php if(!empty($_POST['password'])){echo htmlspecialchars($_POST['password'],ENT_QUOTES);}?>"/>
248
+ </dd>
249
+ <dt>ログイン情報の記録</dt>
250
+ <dd>
251
+ <input id="save" type="checkbox" name="save" value="on"><label for="save">次回からは自動的にログインする。</label>
252
+ </dd>
253
+ </dl>
254
+ <div><input type="submit" value="ログインする"/></div>
255
+ </body>
256
+ ```
257
+ ### 試したこと
258
+ var_dumpを使って変数の内容を見てみること
259
+ login.phpの16行目にvar_dump($_POST)を打ってみたらこんなのが出てきました。
260
+ array(3) { ["email"]=> string(8) "sakana51" ["password"]=> string(12) "ab@gmail.com" ["save"]=> string(2) "on" }
261
+ sakana51というのはパスワードのつもりでいれましたがemailに入っています。メールアドレスとパスワードが逆に入っているのではないかと思い、フォームの所を間違ってないか見てみたり、逆にメールアドレスとパスワードを入れてログインできるか試みたのですがログインできませんでした。でもlogin.phpの$_POSTの前で何かが起こっているはずなのでもう少し探してみます。
178
262
  開発環境はWindows10でxamppを使ってます。よろしくお願いします。

2

dbconnect.phpを追加しました。

2020/05/27 13:55

投稿

potet
potet

スコア17

title CHANGED
File without changes
body CHANGED
@@ -156,4 +156,23 @@
156
156
  </body>
157
157
 
158
158
  ```
159
+ ```ここに言語を入力
160
+ <!doctype html>
161
+ <html lang ="ja">
162
+ <head>
163
+ <meta charset="utf-8">
164
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
165
+ <link rel ="stylesheet" href="css/style.css">
166
+ </head>
167
+ <body>
168
+ <?php
169
+ try{
170
+ $db=new PDO ('mysql:dbname=mini_bbs;host=127.0.0.1;charset=utf8','root','s@kana51');
171
+
172
+ }catch(PDOException $e){
173
+ echo 'DB接続エラー:'.$e->getMessage();
174
+
175
+ }
176
+ ?>
177
+ ```
159
178
  開発環境はWindows10でxamppを使ってます。よろしくお願いします。

1

情報を追加しました。

2020/05/27 12:44

投稿

potet
potet

スコア17

title CHANGED
@@ -1,1 +1,1 @@
1
- 本のコードを打ったら勉強しいたら作っていたサイトにログインできなくなりました。
1
+ 本のコードを打って作っていたTwitter風一言掲示板にログインできなくなりました。
body CHANGED
@@ -1,3 +1,4 @@
1
+ よく分かるphpの教科書という本で勉強中です。
1
2
  正しいパスワードとメールアドレスを入れてもログインできません。なぜでしょうか。仕組みを理解してコードを書いてない為訳が分からず困っています。
2
3
  login.php
3
4
  ```ここに言語を入力