質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1704閲覧

レンタルサーバーからローカル開発環境へデータ移行し、ローカル環境で確認したい 403 Forbidden エラー

mickey25

総合スコア6

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/07/04 07:51

前提・実現したいこと

レンタルサーバーからローカル開発環境にデータ移行し、webサイトを表示したい。

Windowsを使用しています。
XAMPPを使用しています。
ドキュメントルート: C:\xampp\htdocs\test
Web server: Apache
Apache Port: 80, 443
MySQL Port: 3306

発生している問題・エラーメッセージ

https://localhost/index.htmlとすると

Forbidden You don't have permission to access this resource. Apache/2.4.48 (Win64) OpenSSL/1.1.1k PHP/8.0.7 Server at localhost Port 443

https://localhost:80/index.htmlとすると

このサイトは安全に接続できませんlocalhost から無効な応答が送信されました。 Windows ネットワーク診断ツールを実行してみてください。 ERR_SSL_PROTOCOL_ERROR

となります。
かれこれ2日間くらい戦っているのですが、一向に解決しません。
誰か助けてもらえませんか?

該当のソースコード

HTML

1※C:\xampp\htdocs\test\index.html 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//ログインチェック/////////////////////////////////////////////////////////// 17$err = 0; 18$member = array(); 19if ($_SESSION['m_id']??FALSE) { 20 $m_id = $_SESSION['m_id']; 21 $header = './inc-temp/header_login.html'; 22} else { 23 $header = './inc-temp/header.html'; 24} 25 26DBopen(); 27$news=array(); 28$sql = "SELECT * FROM t_news WHERE news_disp = 1 ORDER BY news_date DESC LIMIT 5"; 29$stmt = $db -> query($sql); 30while ($row = $stmt -> fetch(PDO::FETCH_ASSOC)) { 31 $news[$row['news_code']] = $row; 32} 33DBclose(); 34 35?> 36<!DOCTYPE html> 37<html lang="ja" dir="ltr"> 38<head> 39<?php include './inc-temp/gtag.html'; ?> 40<!-- meta --> 41<meta charset="utf-8"> 42<meta http-equiv="X-UA-Compatible" content="IE=edge"> 43<meta name="format-detection" content="telephone=no"> 44<meta name="viewport" content="initial-scale=1, minimum-scale=1, width=device-width, shrink-to-fit=no"> 45<meta name="description" content="<?=$description?>"> 46<meta name="keywords" content="<?=$keywords?>"> 47<meta name="robots" content="index, follow"> 48<meta name="author" content="<?=$sitename?>"> 49<!-- ogp --> 50<?php include './inc-temp/ogp.html'; ?> 51<title><?=$pagetitle?>|<?=$sitename?></title> 52<!-- link --> 53 54<!-- css --> 55<link rel="stylesheet" href="css/base.css"> 56<link rel="stylesheet" href="css/style.css"> 57<!-- js --> 58<script src="js/jquery-3.4.1.min.js"></script> 59<script src="js/default.js"></script> 60</head> 61 62<body id="top" class="<?=$filename?>"> 63<?php include $header; ?> 64 65 <div class="main_txt"> 66 <h1>teratail用にカット</h1> 67 </div> 68 69<?php include './inc-temp/footer.html'; ?> 70</body> 71</html>

HTML

1 2※C:\xampp\htdocs\test\login.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<?php include './inc-temp/gtag.html'; ?> 31<!-- meta --> 32<meta charset="utf-8"> 33<meta http-equiv="X-UA-Compatible" content="IE=edge"> 34<meta name="format-detection" content="telephone=no"> 35<meta name="viewport" content="initial-scale=1, minimum-scale=1, width=device-width, shrink-to-fit=no"> 36<meta name="description" content="<?=$description?>"> 37<meta name="keywords" content="<?=$keywords?>"> 38<meta name="robots" content="index, follow"> 39<meta name="author" content="<?=$sitename?>"> 40<!-- ogp --> 41<?php include './inc-temp/ogp.html'; ?> 42<title><?=$pagetitle?>|<?=$sitename?></title> 43<!-- link --> 44 45<!-- css --> 46<link rel="stylesheet" href="css/base.css"> 47<link rel="stylesheet" href="css/style.css"> 48<link rel="stylesheet" href="css/mailform.css"> 49<!-- js --> 50<script src="js/jquery-3.4.1.min.js"></script> 51<script src="js/default.js"></script> 52</head> 53 54<body id="top" class="<?=$filename?>"> 55<?php include './inc-temp/header.html'; ?> 56 57 <h1 id="pagetitle"><?=$pagetitle?></h1> 58 <main role="main" id="contents"> 59 <section id="register"> 60 <h3 class="title center"><strong>ログインフォーム</strong></h3> 61 <div class="centering inner"> 62 <form action="login.php" method="post" id="mail_form"> 63 <dl> 64 <dt>メールアドレス</dt> 65 <dd class="required"><input type="email" id="mail_address" name="mail_address"></dd> 66 <dt>パスワード</dt> 67 <dd class="required"><input type="password" id="password" name="password"></dd> 68 </dl> 69 <?=$msg??''?> 70 <p id="form_submit"><input type="submit" id="form_submit_button" value="ログイン" /></p> 71 </form> 72 </div> 73 </section> 74 75 <section id="forget"> 76 <div class="centering inner"> 77 <h3 class="title center"><strong>パスワードをお忘れの方</strong></h3> 78 <p class="left mb20">ご登録のメールアドレスを入力の上、送信してください。<br> 79 仮パスワードをご登録のメールアドレス宛に送信いたします。<br> 80 仮パスワードにてログイン後、マイページにてパスワードの変更を行ってください。</p> 81 <form method="post" action="forgotten.php"> 82 <p class="mb10"><input type="text" name="id" placeholder="メールアドレス" class="mail_address"></p> 83 <p class="center"><input type="submit" class="btn" value="送信"></p> 84 </form> 85 </div> 86 </section> 87 </main> 88 89<?php include './inc-temp/footer.html'; ?> 90</body> 91</html>

PHP

1 2※C:\xampp\htdocs\test\login.php 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 18//POST値チェック 19$err = 0; 20if($_SERVER["REQUEST_METHOD"] == "POST"){ 21 $errmsg = array(); 22 $l_id = htmlspecialchars(check_txt('mail_address','ログインID(メールアドレス)を入力してください'),ENT_QUOTES,'UTF-8'); //会員ID 23 $l_pass = htmlspecialchars(check_txt('password','パスワードを入力してください'),ENT_QUOTES,'UTF-8'); //パスワード 24 if (!$err) { 25 //IDパスワードチェック 26 DBopen(); 27 $sql = "SELECT member_id,member_mail,member_pass,lock_flag FROM m_member WHERE member_mail = :member_mail AND del_flag = 0"; //メールアドレスで判定 28 $stmt = $db -> prepare($sql); 29 $stmt -> bindValue(':member_mail',$l_id,PDO::PARAM_STR); 30 $stmt -> execute(); 31 while ($row = $stmt -> fetch(PDO::FETCH_ASSOC)) { 32 extract($row,EXTR_OVERWRITE); 33 } 34 if ($member_pass) { 35 if (crypt($l_pass, $member_pass) != $member_pass) 36 $err++; 37 } else { 38 $err++; 39 } 40 } 41 if ($err) { 42 $msg = "IDまたはパスワードに誤りがあります。"; 43 //ログイン画面へ遷移 44 $_SESSION['msg'] = $msg; 45 header("location:./login.html"); 46 exit(); 47 } else { 48 $msg = "ログイン成功"; 49 //セッションID振り直し 50 session_regenerate_id(true); 51 if ($member_id) { 52 //ログイン日時更新 53 DBopen(); 54 $sql = "UPDATE m_member SET last_login = NOW() WHERE member_mail = :member_mail"; 55 $stmt = $db -> prepare($sql); 56 $stmt -> bindValue(':member_mail',$l_id,PDO::PARAM_STR); 57 $stmt -> execute(); 58 DBclose(); 59 //セッションにユーザ入れる。(他のページではl_idセッション変数があれば認証OKとする) 60 $_SESSION["m_id"] = $member_id; 61 unset($_SESSION["s_id"]); 62 unset($_SESSION['msg']); 63 //マイページへ遷移 64 header("location:./mypage.html"); 65 exit(); 66 } 67 } 68} 69

PHP

1※C:\xampp\htdocs\test\dbfunc.php 2 3 4<?php 5 6//Database Functions(PDO) 7 8function DBopen() { 9 10 global $db; 11 if (!is_resource($db)) { 12 try { 13// $db = new PDO('mysql:host='.C_DB_HOST.';port='.C_DB_PORT.';dbname='.C_DB_DBNAME.';charset=utf8',C_DB_USER,C_DB_PASS); 14 $db = new PDO('mysql:host='.C_DB_HOST.';dbname='.C_DB_DBNAME.';charset=utf8',C_DB_USER,C_DB_PASS); 15 } catch (PDOException $e) { 16 exit('DB Connect Error.'.$e->getMessage()); 17 } 18 return (TRUE); 19 } 20} 21 22function DBclose() { 23 24 global $db; 25 if (is_resource($db)) { 26 $db = null; 27 return (TRUE); 28 } 29} 30

PHP

1※C:\xampp\htdocs\test\server_dependence.php 2 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'] . '/' ); //ドキュメントルート 22 define('C_PATH_INC' , $_SERVER['DOCUMENT_ROOT'] . '/inc/' ); //include 23 24 //データベース関連 25 define('C_DB_HOST' , 'localhost'); //ホスト 26 define('C_DB_PORT' , '3306' ); //ポート 27 define('C_DB_USER' , 'teratail' ); //ユーザー名 28 define('C_DB_PASS' , 'teratail' ); //パスワード 29 define('C_DB_DBNAME' , 'teratail-q-and-a' ); //データベース名 30 31 //管理者メールアドレス 32 define('C_ML_FROM' , 'teratail@aaa.com' ); //配信元アドレス(ヘッダ用) 33 define('C_ML_TO' , 'teratail@aaa.com' ); //管理者アドレス 34 define('C_ML_ADMIN' , 'teratail@aaa.com' ); //管理者アドレス 35 define('C_ML_SUBADMIN' , 'teratail@aaa.com' ); //副管理者アドレス 36 37?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

C:\xampp\htdocs\test
に、もしかして
.htaccess
なんてファイルはありませんか?
そのファイルに記述されている定義によって、
http://localhost/
によるアクセスを拒絶している可能性があります。

察するに、httpでアクセスしてきたときに、httpsにリダイレクトして読み込み直させるような定義があると思います。
その箇所をコメントアウトするなどして無効化する必要があります。

XAMPPでパソコンで立ち上げると、httpsによるアクセスに必要なSSL証明書を用意しづらいため、
httpsへの読み換えは基本的にやらないです。

投稿2021/07/04 08:10

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mickey25

2021/07/04 08:22

おっしゃる通りです! .htaccessが邪魔しているのかと思いまして、削除して http://localhost/ で確認してみましたが、htmlファイルは表示され、PHPで記述したコードがそのまま表示されていました。 http://localhost/test.php などどphpのファイルを開こうとすると DB Connect Error.SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed が表示されました。。 こちらの方が重要なエラーなのでしょうか? 初心者の僕には何が一番重要なエラーか分からず、 質問させて頂いています。
退会済みユーザー

退会済みユーザー

2021/07/04 08:25

レンタルサーバーでのデータベース接続の設定と当然変わってくるので、 データベース接続周りの定義を見直ししてください、 というのが現状の助言です。 せめて接続先ホスト名はlocalhostなどとしないと行けないはずです。
mickey25

2021/07/04 08:28

助言ありがとうございます。 頂いたヒントを元に、確認してみます! ありがとうございます!!
mickey25

2021/07/14 11:10

ベストアンサーにするのを忘れていました! あれから確認したところ、データーベース接続できるようになりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問