Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/mail #1

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions app/controller/login.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php
session_start();
require_once(dirname(__FILE__) . '/../model/database_func.php');
require_once(dirname(__FILE__) . '/../../config/server.php');

//DB接続
$DB_function = new DBFunction;
$pdo = $DB_function->DB_connect();

if (isset($_POST['submit'])) {
if($DB_function->userLogin($pdo,$_POST['email'],$_POST['password'])){
header("Location:" . WEB_SERVER . "/easable-app/registration_sample/home.php");
}else{
header("Location:" . WEB_SERVER . "/easable-app/registration_sample/login.php");
}
}
12 changes: 12 additions & 0 deletions app/controller/logout.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php
session_start();
require_once(dirname(__FILE__) . '/../model/database_func.php');
require_once(dirname(__FILE__) . '/../../config/server.php');

//DB接続
$DB_function = new DBFunction;
$pdo = $DB_function->DB_connect();

if ($DB_function->userLogout($pdo, $_SESSION['user']['email'])) {
header("Location:" . WEB_SERVER . "/easable-app/registration_sample/home.php");
}
2 changes: 1 addition & 1 deletion app/controller/regist_user.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,5 @@
//セッションを破棄する
session_destroy();

header("Location: " . WEB_SERVER . "/registration_sample/regist_OK.php");
header("Location:" . WEB_SERVER . "easable-app/registration_sample/regist_OK.php");
}
25 changes: 20 additions & 5 deletions app/controller/signup_send_email.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
<?php
require_once(dirname(__FILE__) . '/../model/database_func.php');
require_once(dirname(__FILE__) . '/../validate/regist_user_validate.php');
// require_once(dirname(__FILE__) . '/../../config/email.php');
require_once(dirname(__FILE__) . '/../../config/email.php');
require_once(dirname(__FILE__) . '/../../config/server.php');

session_start();

//CSRF対策
// $_SESSION['token'] = base64_encode(openssl_random_pseudo_bytes(32));
// $token = $_SESSION['token'];
Expand Down Expand Up @@ -41,13 +40,29 @@
//エラーがない場合、pre_userテーブルにインサート
if ($json['error'] == '') {
$urltoken = hash('sha256', uniqid(rand(), 1));
$url = WEB_SERVER . "/registration_sample/registration.php?urltoken=" . $urltoken;
$url = WEB_SERVER . "easable-app/registration_sample/registration.php?urltoken=" . $urltoken;

$SIGNUP_MAIL_SUBJECT =
<<< EOM
【仮会員登録完了】<br>
Easableをご利用いただき誠にありがとうございます。<br>
仮登録が完了致しましたので、お知らせ致します。<br>
※もし本メールに心当たりのない場合は、破棄して頂けますようお願い申し上げます。<br>
<br>
下記URLからアクセスして認証を完了してください。<br>
{$url}<br>
(有効期限:24時間です)<br>
<br>
本メールは送信専用です。返信は致しかねますのでご了承ください。<br>
<br><br><br>
EOM;

//登録できたらOKを返す
$json['result'] = $DB_function->DB_regist_pre_user($pdo, $urltoken, $email);
//メール送信処理
//mb_send_mail($email, SIGNUP_MAIL_TITLE, SIGNUP_MAIL_SUBJECT, HEADERS);
header("Location:" . WEB_SERVER . "/registration_sample/done.php?url={$url}");
mb_send_mail($email, SIGNUP_MAIL_TITLE, $SIGNUP_MAIL_SUBJECT, HEADERS);

header("Location:" . WEB_SERVER . "easable-app/registration_sample/done.php");
}
}
}
50 changes: 49 additions & 1 deletion app/model/database_func.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class DBFunction
{
public function DB_connect()
{
$dsn = "mysql:host=" . DBSERVER . ";dbname=" . DBNAME . ";charser=utf8;unix_socket=/tmp/mysql.sock'";
$dsn = "mysql:host=" . DBSERVER . ";dbname=" . DBNAME . ";port=3306;charser=utf8;unix_socket=/tmp/mysql.sock'";
$pdo = new PDO($dsn, DBUSER, DBPASSWORD);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Expand Down Expand Up @@ -117,4 +117,52 @@ public function DB_regist_user($pdo, $password, $name, $email)
die();
}
}

/**
* ログイン処理
* @param string $email
* @param string $password
* @return boolean
*/

public function userLogin($pdo, $email, $password)
{
$sql = "SELECT * FROM user WHERE email=:email";
$stm = $pdo->prepare($sql);
$stm->bindValue(':email', $email, PDO::PARAM_STR);
$stm->execute();
if ($stm->rowCount() == 1) {
$user = $stm->fetch();
if (password_verify($password, $user['password'])) {
$_SESSION['user']['name'] = $user['name'];
$_SESSION['user']['email'] = $user['email'];

$sql = "UPDATE user SET login_status = 1 WHERE email=:email";
$stm = $pdo->prepare($sql);
$stm->bindValue(':email', $email, PDO::PARAM_STR);
$stm->execute();

return true;
} else {
return false;
}
} else {
return false;
}
}

/**
* ログアウト処理
* @param string $email
* @return boolean
*/

public function userLogout($pdo, $email)
{
$sql = "UPDATE user SET login_status = 0 WHERE email=:email";
$stm = $pdo->prepare($sql);
$stm->bindValue(':email', $email, PDO::PARAM_STR);
unset($_SESSION['user']['name'],$_SESSION['user']['email']);
return $stm->execute();
}
}
4 changes: 2 additions & 2 deletions app/signup_mail.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
//エラーがない場合、pre_userテーブルにインサート
if (count($errors) === 0) {
$urltoken = hash('sha256', uniqid(rand(), 1));
$url = "http://localhost:8080/signup.php?urltoken=" . $urltoken;
$url = "https://localhost:8080/signup.php?urltoken=" . $urltoken;
//ここでデータベースに登録する
try {
//例外処理を投げる(スロー)ようにする
Expand Down Expand Up @@ -94,4 +94,4 @@
<input type="hidden" name="token" value="<?= $token ?>">
<input type="submit" name="submit" value="送信">
</form>
<?php endif; ?>
<?php endif; ?>