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

質問編集履歴

5

説明追加

2018/11/11 10:52

投稿

sakuma_yujin
sakuma_yujin

スコア27

title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,58 @@
13
13
 
14
14
  解決方法など心当たりある方いましたら教えていただけると幸いです
15
15
 
16
+ 階層構造
17
+ ― index.html
18
+ ― login.php
19
+ ― javascript
20
+ ↳pload.js
21
+ index.html内の一部分にLogin.phpを呼び出して表示しています
22
+ ```HTML
23
+ <html>
24
+ <head>
25
+ <meta charset='utf-8'>
26
+ <title>test</title>
27
+ <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
28
+
29
+ <script type="text/javascript" src="js/pload.js"></script>
30
+
31
+ <link rel="stylesheet"type="text/css" href="css/index.css">
32
+ <link rel="stylesheet"type="text/css" href="css/Button.css">
33
+
34
+ </head>
35
+ <body>
36
+
37
+ <div id="allctnt">
38
+ <center>
39
+
40
+ <h1>GPm</h1>
41
+ <div id="plt">
42
+ <div id ="content"><h2>ようこそ!!</h2></div>
43
+ <div id ="logincontent"></div>
44
+ <input type="button" class="button" onclick='psbutton("#logincontent","php/login.php")'value="ENTER">
45
+ </div>
46
+
47
+
48
+ </center>
49
+ </div>
50
+
51
+ <!--<script type="text/javascript" src="https://cache1.value-domain.com/xa.j?site=yspr.s1007.xrea.com"></script>-->
16
52
 
53
+ </body>
54
+ </html>
55
+ ```
56
+
57
+ 呼び出しと表示用
58
+ ```Javascript
59
+ function psbutton(part,pname){
60
+ $(function(){
61
+ $(part).load(pname);
62
+ })
63
+ }
64
+ ```
65
+
66
+
67
+
17
68
  使用サーバ:XREAフリー
18
69
 
19
70
  追記しました

4

修正

2018/11/11 10:52

投稿

sakuma_yujin
sakuma_yujin

スコア27

title CHANGED
@@ -1,1 +1,1 @@
1
- XREAサーバでのPHPMyadmin,特無し解決しま
1
+ XREAサーバでのPHPMyadminの全限ユーザ作成ができません,サイトからのデータベース操作の方法を教えただけるとありがたいで
body CHANGED
@@ -14,23 +14,28 @@
14
14
  解決方法など心当たりある方いましたら教えていただけると幸いです
15
15
 
16
16
 
17
- 追記しました;パスワードなどは隠してあります。イト側からのアクセスコドです
17
+ 使用サーバ:XREAフリー
18
+
19
+ 追記しました
20
+
21
+ Login.php
18
22
  ```PHP
19
23
  <?php
20
24
  //require 'password.php'; // password_verfy()はphp 5.5.0以降の関数のため、バージョンが古くて使えない場合に使用
21
25
  // セッション開始
22
26
  session_start();
23
-
27
+ header("Location: www.google.com"); // メイン画面へ遷移
24
28
  $db['host'] = "localhost"; // DBサーバのURL
25
- $db['user'] = ""; // ユーザー名
29
+ $db['user'] = "yspr"; // ユーザー名
26
30
  $db['pass'] = ""; // ユーザー名のパスワード
27
- $db['dbname'] = ""; // データベース名
31
+ $db['dbname'] = "yspr"; // データベース名
28
32
 
29
33
  // エラーメッセージの初期化
30
34
  $errorMessage = "";
31
35
 
32
36
  // ログインボタンが押された場合
33
37
  if (isset($_POST["login"])) {
38
+
34
39
  // 1. ユーザIDの入力チェック
35
40
  if (empty($_POST["userid"])) { // emptyは値が空のとき
36
41
  $errorMessage = 'ユーザーIDが未入力です。';
@@ -67,7 +72,7 @@
67
72
  $row['name']; // ユーザー名
68
73
  }
69
74
  $_SESSION["NAME"] = $row['name'];
70
- header("Location: home."); // メイン画面へ遷移
75
+ header("Location: home.php"); // メイン画面へ遷移
71
76
  exit(); // 処理終了
72
77
  } else {
73
78
  // 認証失敗
@@ -87,4 +92,48 @@
87
92
  }
88
93
  }
89
94
  ?>
90
- ```
95
+
96
+ <html>
97
+ <head>
98
+ <title>test</title>
99
+ <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
100
+ <link rel="stylesheet"type="text/css" href="css/Button.css">
101
+ </head>
102
+ <body>
103
+ <center>
104
+ <h1>ログイン画面</h1>
105
+
106
+ <form id="loginForm" name="loginForm" action="" method="POST">
107
+
108
+ <fieldset>
109
+ <legend>ログインフォーム</legend>
110
+ <div><font color="#ff0000"><?php echo htmlspecialchars($errorMessage, ENT_QUOTES); ?></font></div>
111
+ <label for="userid">ユーザーID</label><input type="text" id="userid" name="userid" placeholder="ユーザーIDを入力" value="<?php if (!empty($_POST["userid"])) {echo htmlspecialchars($_POST["userid"], ENT_QUOTES);} ?>">
112
+ <br>
113
+ <label for="password">パスワード</label><input type="password" id="password" name="password" value="" placeholder="パスワードを入力">
114
+ <br>
115
+ <input type="submit" id="login" name="login" value="ログイン">
116
+ </fieldset>
117
+
118
+ </form>
119
+ <br>
120
+ <form action="SignUp.php">
121
+ <fieldset>
122
+ <legend>新規登録フォーム</legend>
123
+ <input type="submit" value="新規登録">
124
+ </fieldset>
125
+ </form>
126
+ </center>center>
127
+ </body>
128
+ </html>
129
+ ```
130
+
131
+
132
+
133
+ MySQL
134
+ データベース名:yspr
135
+
136
+ UserData
137
+ id |name|password|
138
+ |:--|:--:|--:|
139
+ ||||

3

コード追記

2018/11/11 10:43

投稿

sakuma_yujin
sakuma_yujin

スコア27

title CHANGED
File without changes
body CHANGED
@@ -11,4 +11,80 @@
11
11
  > SQLSTATE[HY000] [1045] Access denied for user 'ユーザ名'@'localhost' (using password: YES)
12
12
  となっています
13
13
 
14
- 解決方法など心当たりある方いましたら教えていただけると幸いです
14
+ 解決方法など心当たりある方いましたら教えていただけると幸いです
15
+
16
+
17
+ 追記しました;パスワードなどは隠してあります。サイト側からのアクセスコードです
18
+ ```PHP
19
+ <?php
20
+ //require 'password.php'; // password_verfy()はphp 5.5.0以降の関数のため、バージョンが古くて使えない場合に使用
21
+ // セッション開始
22
+ session_start();
23
+
24
+ $db['host'] = "localhost"; // DBサーバのURL
25
+ $db['user'] = ""; // ユーザー名
26
+ $db['pass'] = ""; // ユーザー名のパスワード
27
+ $db['dbname'] = ""; // データベース名
28
+
29
+ // エラーメッセージの初期化
30
+ $errorMessage = "";
31
+
32
+ // ログインボタンが押された場合
33
+ if (isset($_POST["login"])) {
34
+ // 1. ユーザIDの入力チェック
35
+ if (empty($_POST["userid"])) { // emptyは値が空のとき
36
+ $errorMessage = 'ユーザーIDが未入力です。';
37
+ } else if (empty($_POST["password"])) {
38
+ $errorMessage = 'パスワードが未入力です。';
39
+ }
40
+
41
+ if (!empty($_POST["userid"]) && !empty($_POST["password"])) {
42
+ // 入力したユーザIDを格納
43
+ $userid = $_POST["userid"];
44
+
45
+ // 2. ユーザIDとパスワードが入力されていたら認証する
46
+ $dsn = sprintf('mysql: host=%s; dbname=%s; charset=utf8', $db['host'], $db['dbname']);
47
+
48
+ // 3. エラー処理
49
+ try {
50
+ $pdo = new PDO($dsn, $db['user'],
51
+ $db['pass'], array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
52
+
53
+ $stmt = $pdo->prepare('SELECT * FROM userData WHERE name = ?');
54
+ $stmt->execute(array($userid));
55
+
56
+ $password = $_POST["password"];
57
+
58
+ if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
59
+ if (password_verify($password, $row['password'])) {
60
+ session_regenerate_id(true);
61
+
62
+ // 入力したIDのユーザー名を取得
63
+ $id = $row['id'];
64
+ $sql = "SELECT * FROM userData WHERE id = $id"; //入力したIDからユーザー名を取得
65
+ $stmt = $pdo->query($sql);
66
+ foreach ($stmt as $row) {
67
+ $row['name']; // ユーザー名
68
+ }
69
+ $_SESSION["NAME"] = $row['name'];
70
+ header("Location: home."); // メイン画面へ遷移
71
+ exit(); // 処理終了
72
+ } else {
73
+ // 認証失敗
74
+ $errorMessage = 'ユーザーIDあるいはパスワードに誤りがあります。';
75
+ }
76
+ } else {
77
+ // 4. 認証成功なら、セッションIDを新規に発行する
78
+ // 該当データなし
79
+ $errorMessage = 'ユーザーIDあるいはパスワードに誤りがあります。';
80
+ }
81
+ } catch (PDOException $e) {
82
+ $errorMessage = 'データベースエラー';
83
+ //$errorMessage = $sql;
84
+ // $e->getMessage() でエラー内容を参照可能(デバッグ時のみ表示)
85
+ // echo $e->getMessage();
86
+ }
87
+ }
88
+ }
89
+ ?>
90
+ ```

2

説明追加

2018/11/11 09:49

投稿

sakuma_yujin
sakuma_yujin

スコア27

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,14 @@
1
1
  サーバーの作成とPHPサイトの作成をしようと思いXREAに無料サーバを借りたのですがそこで借りたサーバでインストールしたPHPMyadmin(ボタン一つでインストール)にログインすると特権無しと表示されてしまい、新たな権限のユーザの追加、サイトからの操作ができません
2
+ ユーザ名、パスワードはサイトで付与されたものです
2
3
  サイトからの接続のみならばできました.
3
4
 
4
- ![![イメージ説明](f22cabc4ef0f51d48349aad74631bc6a.png)](a751ca9adee77d2cab04b6ea1c5b4cd0.png)
5
+ [![イメージ説明](f22cabc4ef0f51d48349aad74631bc6a.png)](a751ca9adee77d2cab04b6ea1c5b4cd0.png)
5
6
 
6
7
  ちなみにSQL文での追加も試してみましたが駄目でした
7
8
 
9
+ サイト側で操作しようとしたときのの表示は
10
+
11
+ > SQLSTATE[HY000] [1045] Access denied for user 'ユーザ名'@'localhost' (using password: YES)
12
+ となっています
13
+
8
14
  解決方法など心当たりある方いましたら教えていただけると幸いです

1

初心者アイコン

2018/11/11 07:17

投稿

sakuma_yujin
sakuma_yujin

スコア27

title CHANGED
File without changes
body CHANGED
File without changes