質問編集履歴
3
情報を追加しました。
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>»<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を追加しました。
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
情報を追加しました。
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
|
```ここに言語を入力
|