ローカル開発環境で.phpのファイルを表示させたいです。
Macを使用しています。
MAMPを使用しています。
ドキュメントルート: Applications/MAMP/htdocs
Web server: Apache
PHP version: 7.4.12
Apache Port: 8888
Nginx Port: 8888
MySQL Port: 8889
※下記以降の情報(メールアドレス、パスワード、データベース情報など)
teratailに載せる為、適当に入れています。
mysqlはレンタルサーバーのphpMyAdminからエクスポートし、
MAMPのphpMyAdminでデータベース作成し、名前を"ABCDEFG-TEST"にして作成
レンタルサーバーからエクスポートしたものをインポートしてテーブル情報を取り込んでいます。
http://localhost:8888/test/login.htmlとすると
login.htmlのページは表示されるのですが、
http://localhost:8888/test/login.phpとすると
login.phpのページは
"Not Found
The requested URL was not found on this server."
と出てしまいます。
mysqlの接続がうまくいっていないのだと思いますが、わかりません。
ご教授お願いします。
※下記ファイルのディレクトリは
Applications/MAMP/htdocs/test
login.html
login.php
Applications/MAMP/htdocs/test/inc
server_dependence.php
dbfunc.php
となっています。
HTML
1<!-- 2login.html 3必要ないと思われるところはカットしています。 --> 4 5<?php 6session_start(); 7/////////////////////////////////////////////////////////////////////////////// 8// 9// ログイン 10// 11/////////////////////////////////////////////////////////////////////////////// 12include( $_SERVER['DOCUMENT_ROOT'] . '/inc/server_dependence.php'); //各種定義 13include( C_PATH_INC . 'dbfunc.php'); //DB関数 14include( C_PATH_INC . 'userfunc.php'); //各種関数 15mb_internal_encoding('UTF-8'); 16$self = basename($_SERVER['PHP_SELF']); 17 18if ($_SERVER['REQUEST_METHOD'] == "GET") { 19 //エラーチェック 20 if (array_key_exists('msg',$_SESSION)) { 21 $msg = $_SESSION['msg']; 22 $msg = '<br /><span class="error">'.$msg.'</span>'; 23 $err++; 24 } 25} 26 27<!DOCTYPE html> 28<html lang="ja" dir="ltr"> 29<head> 30<title><?=$pagetitle?>|<?=$sitename?></title> 31</head> 32 33<body id="top" class="<?=$filename?>"> 34<?php include './inc-temp/header.html'; ?> 35 36 <h1 id="pagetitle"><?=$pagetitle?></h1> 37 <main> 38 <section> 39 sample 40 </section> 41 </main> 42 43</body> 44</html>
PHP
1// login.php 2 3<?php 4session_start(); 5/////////////////////////////////////////////////////////////////////////////// 6// 7// ログイン 8// 9/////////////////////////////////////////////////////////////////////////////// 10include( $_SERVER['DOCUMENT_ROOT'] . '/inc/server_dependence.php'); //各種定義 11include( C_PATH_INC . 'dbfunc.php'); //DB関数 12include( C_PATH_INC . 'userfunc.php'); //各種関数 13mb_internal_encoding('UTF-8'); 14$self = basename($_SERVER['PHP_SELF']); 15 16//POST値チェック 17$err = 0; 18if($_SERVER["REQUEST_METHOD"] == "POST"){ 19 $errmsg = array(); 20 $l_id = htmlspecialchars(check_txt('mail_address','ログインID(メールアドレス)を入力してください'),ENT_QUOTES,'UTF-8'); //会員ID 21 $l_pass = htmlspecialchars(check_txt('password','パスワードを入力してください'),ENT_QUOTES,'UTF-8'); //パスワード 22 if (!$err) { 23 //IDパスワードチェック 24 DBopen(); 25 $sql = "SELECT member_id,member_mail,member_pass,lock_flag FROM m_member WHERE member_mail = :member_mail AND del_flag = 0"; //メールアドレスで判定 26 $stmt = $db -> prepare($sql); 27 $stmt -> bindValue(':member_mail',$l_id,PDO::PARAM_STR); 28 $stmt -> execute(); 29 while ($row = $stmt -> fetch(PDO::FETCH_ASSOC)) { 30 extract($row,EXTR_OVERWRITE); 31 } 32 if ($member_pass) { 33 if (crypt($l_pass, $member_pass) != $member_pass) 34 $err++; 35 } else { 36 $err++; 37 } 38 } 39 if ($err) { 40 $msg = "IDまたはパスワードに誤りがあります。"; 41 //ログイン画面へ遷移 42 $_SESSION['msg'] = $msg; 43 header("location:./login.html"); 44 exit(); 45 } else { 46 $msg = "ログイン成功"; 47 //セッションID振り直し 48 session_regenerate_id(true); 49 if ($member_id) { 50 //ログイン日時更新 51 DBopen(); 52 $sql = "UPDATE m_member SET last_login = NOW() WHERE member_mail = :member_mail"; 53 $stmt = $db -> prepare($sql); 54 $stmt -> bindValue(':member_mail',$l_id,PDO::PARAM_STR); 55 $stmt -> execute(); 56 DBclose(); 57 //セッションにユーザ入れる。(他のページではl_idセッション変数があれば認証OKとする) 58 $_SESSION["m_id"] = $member_id; 59 unset($_SESSION["s_id"]); 60 unset($_SESSION['msg']); 61 //マイページへ遷移 62 header("location:./mypage.html"); 63 exit(); 64 } 65 } 66} 67
PHP
1// server_dependence.php 2// teratailに載せる為、メールアドレス、パスワード、データベース情報などは適当に入れています。 3 4<?php 5/////////////////////////////////////////////////////////////////////////// 6// 7// server_dependence.php 8// 9// 環境定数定義ファイル 10// 11// 最初にincludeすること 12// 13/////////////////////////////////////////////////////////////////////////// 14 15 //管理画面タイトル 16 define('ADMIN_TITLE' , 'Webサイト管理システム' ); //管理画面タイトル 17 18 //HTML関連 19 define('C_HOST', (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST']); 20 define('C_URL' , (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 21 define('C_PATH_PUBLIC' , $_SERVER['DOCUMENT_ROOT'] . '/test' ); //ドキュメントルート 22 define('C_PATH_INC' , $_SERVER['DOCUMENT_ROOT'] . '/inc/' ); //include 23 24 25 define('C_DB_HOST' , 'localhost'); //ホスト 26 define('C_DB_PORT' , '8889' ); //ポート 27 define('C_DB_USER' , 'root' ); //ユーザー名 28 define('C_DB_PASS' , 'root' ); //パスワード 29 define('C_DB_DBNAME' , 'ABCDEFG-TEST' ); //データベース名 30 31 32 define('C_ML_FROM' , 'aaa@gmail.com' ); //配信元アドレス(ヘッダ用) 33 define('C_ML_TO' , 'aaa@gmail.com' ); //管理者アドレス 34 define('C_ML_ADMIN' , 'aaa@gmail.com' ); //管理者アドレス 35 define('C_ML_SUBADMIN' , 'aaa@gmail.com' ); //副管理者アドレス 36 37 38 //管理者ログイン情報 39 define('C_ADMIN_USER' , 'test' ); //管理画面ログインユーザ 40 define('C_ADMIN_PASS' , 'testtest' ); //管理画面ログインパスワード 41 42 //タイムゾーン 43 date_default_timezone_set('Asia/Tokyo'); 44 45?>
PHP
1// dbfunc.php 2 3<?php 4 5//Database Functions(PDO) 6 7function DBopen() { 8 9 global $db; 10 if (!is_resource($db)) { 11 try { 12// $db = new PDO('mysql:host='.C_DB_HOST.';port='.C_DB_PORT.';dbname='.C_DB_DBNAME.';charset=utf8',C_DB_USER,C_DB_PASS); 13 $db = new PDO('mysql:host='.C_DB_HOST.';dbname='.C_DB_DBNAME.';charset=utf8',C_DB_USER,C_DB_PASS); 14 } catch (PDOException $e) { 15 exit('DB Connect Error.'.$e->getMessage()); 16 } 17 return (TRUE); 18 } 19} 20 21function DBclose() { 22 23 global $db; 24 if (is_resource($db)) { 25 $db = null; 26 return (TRUE); 27 } 28} 29
あなたの回答
tips
プレビュー