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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

Q&A

解決済

1回答

653閲覧

フロントサイドとphp $_POSTのデータ受け渡し???

kouzou250

総合スコア5

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

0グッド

1クリップ

投稿2022/06/14 15:32

度々申し訳ありません。
teratailさんしか、頼るものがないので、同じ質問をもう1度致します。
フロントサイドは完璧ではありませんがOKです。
フロントサイドはブラウザ表示されますが、サーバーサイドは
確認できません。
恐らくはphpが誤っているのでしょう。
質問の仕方が悪いですけど、フロントサイド、サーバーサイド共にソースコードを表示します。
フロントサイドは完璧ではないですけどOKです。
PHPが誤っています。
どうかどこが誤っているか、お教えてください。
下記にコードを表示します。```ここに言語を入力
コード
フロントサイド

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta http-equiv="content-type" content="text/html" charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>ブログ</title> <meta name="description" content="このWebサイトは、初めてHTMLで作るブログページです。"> <link rel="stylesheet" href="./css/style.css"> <style>

body{
width: 100%;
max-width: 800px;
margin-top: auto;
margin-left: auto;
margin-right: auto;
background-color: rgb(71, 133, 157);
padding: 10px;
text-align: center;
}
div{
background-color: rgb(247, 248, 245);
padding: 2em;

}
script{
margin-top: 12em;
}
p {
margin-left: 2em;
text-align: left;
font-size: 25px;
font-weight: bold;
color: rgb(10, 10, 10);
}
form {

font-size: 25px;
font-weight: bold;
color: red;
}
input {
font-size: 20px;
}
</style>

</head> <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <img id="mypic" src="hand.jpg" width="560" height="420">
<script> var pics_src = new Array("hand.jpg","picture2.jpg","picture3.jpg","picture4.jpg" ,"picture5.jpg","picture6.jpg","picture7.jpg","picture8.jpg",) var num = -1; slideshow_timer(); function slideshow_timer(){ if (num == 7){ num = 0; } else { num ++; } document.getElementById("mypic").src=pics_src[num]; setTimeout("slideshow_timer()",6000); } </script>
<p>みなさん。趣味、仕事、家族、人生観、日記、将来の夢、</p> <p>希望、スポーツ、楽しかったり悲しかった思い出、恋愛、</p> <p>旅行での出来事等々カテゴリーは沢山あると思います。</p> <p>思い思いの文章を書いてください。</p> <p>私。みなさんの投稿を読むのを心待ちにしております。</p> <p>ジャンルは自由です。</p> <p>ぜひ、お書きください。</p> <br> <p>書いてくださった方の3つの特典。</p> <p>1.ほかの執筆者と心を共有できます。</p> <p>2.思い出として残ります。</p> <p>3.心が癒されます。そして成長します。</p> <p>by K・T</p> <!--入力画面--> <form action = "./Blog.php" method = "POST"> <label class="label" for="name">お名前(ニックネーム)</label> <center><input id="name" type="text" name="name"></center> <label class="label" for="e-mail">メール</label> <input id="e-mail" type="e-mail" name="e-mail">
<label class="label" for="category">カテゴリー</label> <input id="category" type="category" name="categoryl"> <label class="label" for="message">本文</label> <textarea name="area1" style="color:rgb(8, 8, 8); font-size:100%;" cols="50" rows="30"></textarea><br> <input type="submit" name="confiem" value="確認">
</form> </div> <style> label, input[type=text]{ display:block; } </style> </body> </html>

php(サーバサイド)
<meta charset="utf-8">

<?php session_start(); $mode = 'input'; if( isset($_GET['back']) && $_GET['back'] ){ //何もしない } else if( isset($_GET['confirm']) && $_GET['confirm'] ){ $_SESSION['name'] = $_POST['name']; $_SESSION['e-mail'] = $_POST['e-mail']; $_SESSION['category']= $_POST['category']; $_SESSION['message'] = $_POST['message']; $mode = 'confirm'; } else if( isset($_GET['send']) && $_GET['send'] ){ $mode = 'send'; } else { $_SESSION['name'] =""; $_SESSION['e-mail'] =""; $_SESSION['category']=""; $_SESSION['message'] =""; } ?> <!--確認画面--> <?php if( $mode == 'input' ){ ?>

お名前(ニックネーム)<?php echo $_POST['name'] ?><br>
Eメール<?php echo $_POST['e-mail'] ?><br>
カテゴリー<?php echo $_POST['message']) ?><br>
<input type="submit" name="back" value="戻る" />
<input type="submit" name="send" value="送信" />

<?php } else { ?> <!--完了画面--> <?php } ?>

どこを直せばいいでしょうか?
teratail様しか頼るところがありません。
どうか、お教えください。
ご回答の程、宜しくお願い申し上げます。

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

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

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

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

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

wai_

2022/06/14 15:54 編集

何にお困りか分かりませんでした。期待動作と現状の動作を教えてください。 また、コードブロック表記が崩れているので修正していただきたくお願いします。
kouzou250

2022/06/14 16:05

フロントサイドを、ブラウザで写すまではいいのです。 お名前、メールアドレス、カテゴリー、本文をインプットして、「確認」ボタンを押すと、 確認画面が出てきて、クライアント様が確認できるようにしたいのです。 現状は、Windowsだと、Blog.phpの26行目と31行目にエラーがあります。と出ます。 でも、どこがおかしいのか解りません。 openSUSEだと、Blog.phpのソースコードが表示されます。 Linuxは全部そのようです。 確認画面が出るようにするには、どうしたら良いでしょうか??? どうかお教えください。 宜しくお願い申し上げます。
AbeTakashi

2022/06/14 16:12 編集

前回も指摘しましたが、質問は要点を絞ってピンポイントにした方がいいです。今回の質問だと、CSSの部分とか一切不要ですよね? <form>タグの中だけでいいと思いますよ。フォームの要素もまずは<input>タグもtype="text"ひとつとtype="submit"ひとつの計2個だけでだけでいいでしょう。PHP側のソースもsessionとか今回の質問とは別の話ですから、今回はいったん削除した方が要点がスッキリして回答者に伝わりやすいです。 あと、ソースコードはコードブロックにして見やすくしないと誰も読んでくれません。 参考) https://teratail.com/help/question-tips 一度、↑のページを上から下まですべて読まれることをオススメします。ちゃんとルールやマナーに則った質問であれば、回答者からちゃんと答えが来ると思いますよ。
guest

回答1

0

ベストアンサー

見やすくするために質問にあったコードをコードブロック内に収めました。

フロントサイド(勝手にリフォーマットしました

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <meta http-equiv="content-type" content="text/html" charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1"> 7 <title>ブログ</title> 8 <meta name="description" content="このWebサイトは、初めてHTMLで作るブログページです。"> 9 <link rel="stylesheet" href="./css/style.css"> 10 <style> 11 body{ 12 width: 100%; 13 max-width: 800px; 14 margin-top: auto; 15 margin-left: auto; 16 margin-right: auto; 17 background-color: rgb(71, 133, 157); 18 padding: 10px; 19 text-align: center; 20 } 21 div{ 22 background-color: rgb(247, 248, 245); 23 padding: 2em; 24 25 } 26 script{ 27 margin-top: 12em; 28 } 29 p { 30 margin-left: 2em; 31 text-align: left; 32 font-size: 25px; 33 font-weight: bold; 34 color: rgb(10, 10, 10); 35 } 36 form { 37 38 font-size: 25px; 39 font-weight: bold; 40 color: red; 41 } 42 input { 43 font-size: 20px; 44 } 45 </style> 46</head> 47<body> 48 <div class="v_line_fix"> 49 <h1>Blog K・T</h1> <img id="mypic" src="hand.jpg" width="560" height="420"> 50 <script> 51 var pics_src = new Array("hand.jpg","picture2.jpg","picture3.jpg","picture4.jpg" 52 ,"picture5.jpg","picture6.jpg","picture7.jpg","picture8.jpg",) 53 var num = -1; 54 55 slideshow_timer(); 56 57 function slideshow_timer(){ 58 if (num == 7){ 59 num = 0; 60 } 61 else { 62 num ++; 63 } 64 document.getElementById("mypic").src=pics_src[num]; 65 setTimeout("slideshow_timer()",6000); 66 } 67 </script> 68 <p>みなさん。趣味、仕事、家族、人生観、日記、将来の夢、</p> 69 <p>希望、スポーツ、楽しかったり悲しかった思い出、恋愛、</p> 70 <p>旅行での出来事等々カテゴリーは沢山あると思います。</p> 71 <p>思い思いの文章を書いてください。</p> 72 <p>私。みなさんの投稿を読むのを心待ちにしております。</p> 73 <p>ジャンルは自由です。</p> 74 <p>ぜひ、お書きください。</p> <br> 75 <p>書いてくださった方の3つの特典。</p> 76 <p>1.ほかの執筆者と心を共有できます。</p> 77 <p>2.思い出として残ります。</p> 78 <p>3.心が癒されます。そして成長します。</p> 79 <p>by K・T</p> 80 <!--入力画面--> 81 <form action="./Blog.php" method="POST"> <label class="label" for="name">お名前(ニックネーム)</label> 82 <center><input id="name" type="text" name="name"></center> <label class="label" for="e-mail">メール</label> <input id="e-mail" type="e-mail" name="e-mail"> <label class="label" for="category">カテゴリー</label> <input id="category" type="category" name="categoryl"> <label class="label" for="message">本文</label> <textarea name="area1" style="color:rgb(8, 8, 8); 83 font-size:100%;" cols="50" rows="30"></textarea><br> <input type="submit" name="confiem" value="確認"> </form> 84 </div> 85 <style> 86 label, input[type=text]{ display:block; } 87 </style> 88</body> 89</html>

サーバサイド

php

1<meta charset="utf-8"> 2 3<?php session_start(); $mode = 'input'; if( isset($_GET['back']) && $_GET['back'] ){ //何もしない } else if( isset($_GET['confirm']) && $_GET['confirm'] ){ $_SESSION['name'] = $_POST['name']; $_SESSION['e-mail'] = $_POST['e-mail']; $_SESSION['category']= $_POST['category']; $_SESSION['message'] = $_POST['message']; $mode = 'confirm'; } else if( isset($_GET['send']) && $_GET['send'] ){ $mode = 'send'; } else { $_SESSION['name'] =""; $_SESSION['e-mail'] =""; $_SESSION['category']=""; $_SESSION['message'] =""; } ?> <!--確認画面--> <?php if( $mode == 'input' ){ ?> 4お名前(ニックネーム)<?php echo $_POST['name'] ?><br> 5Eメール<?php echo $_POST['e-mail'] ?><br> 6カテゴリー<?php echo $_POST['message']) ?><br> 7<input type="submit" name="back" value="戻る" /> 8<input type="submit" name="send" value="送信" /> 9 10<?php } else { ?> <!--完了画面--> <?php } ?>
<?php session_start(); で始まる行は1行で書かれていますか?そうなら //何もしない 以降がコメントアウトされているので動きません。

投稿2022/06/14 16:45

編集2022/06/14 16:47
wai_

総合スコア66

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問