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

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

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

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

Q&A

解決済

1回答

504閲覧

入力フォームで躓いています。

shos3

総合スコア15

PHP

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

0グッド

0クリップ

投稿2021/11/21 06:59

編集2021/11/21 07:02

前提・実現したいこと

入力(n.php)→確認画面(k.php)→送信完了画面(complete.php)
現在、phpで入力フォームを作成しております。その際に上手くデータを入力した値が次の確認画面まで進まず,また遷移もできず躓いています。

最初、データベースに入れようと実装してまして、なしで実装したいと思っております。

アドバイスをいただきたいです。

該当のソースコード

nphp

1<?php 2ini_set('display_errors', "On"); 3 4 5 6session_start(); 7if (!empty($_POST)) { 8 9 if (!empty($_POST['name'])=='' || mb_strlen($_POST["name"]) > 10){ 10 $error['name'] =='blank'; 11 } 12 13 if($_POST['yomi'] =='' || mb_strlen($_POST["name"]) > 10){ 14 $error['yomi'] =='blank'; 15 } 16 17 18 19 if($_POST['telephone']=='' ){ 20 }elseif(preg_match('/^[0-9]+$/',$_POST['telephone'])){ 21 $error['telephone'] =='blank'; 22 } 23 24 25 $pattern = "/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$/"; 26 if ($_POST['email'] =='' || preg_match($pattern, $_POST['telephone'])){ 27 $error['email'] =='blank'; 28 } 29 30 if($_POST['message'] ==''){ 31 $error['message'] =='blank'; 32 } 33 34 if(empty($error)){ 35 $_SESSION['join'] == $_POST; 36 header('Location: k.php'); 37 exit(); 38 } 39} 40 41 42?> 43 44<alink rel="stylesheet" href="n.css"> 45 46 47 48 49<form action="" method="post" enctype="multipart/form-data"> 50<div class="inquiries"> 51 52 53 54 <dl> 55 <dt><p class="name">名前<a>*</a></p></dt> 56 <?php if (isset($error['name']) && $error['name'] == 'blank'): ?> 57 <p class="error">氏名は必須入力です。10文字以内。</p> 58 <?php endif; ?> 59 <dd><input type="text" placeholder="伊藤" name="name" class="name_a" value="<?php echo 60 htmlspecialchars(!empty($_POST['name']), ENT_QUOTES); ?>"/></dd> 61 62 63 <dt><p class="name">フリガナ<a>*</a></p></dt> 64 <?php if (isset($error['yomi']) && $error['yomi'] == 'blank'): ?> 65 <p class="error">フリガナは必須入力で、10文字以内。</p> 66 <?php endif; ?> 67 <dd><input type="text" placeholder="イトウ" name="yomi" class="yomi_a" value="<?php echo 68 htmlspecialchars(!empty($_POST['yomi']), ENT_QUOTES) ?>" /></dd> 69 70 71 72 <dt><p class="name">電話番号</p></dt> 73 <?php if (isset($error['telephone']) && $error['telephone'] == 'blank'): ?> 74 <p class="error">数字のみ。</p> 75 <?php endif; ?> 76 <dd><input type="text" placeholder="09012345678" name="telephone" class="telephone_a" value="<?php echo 77 htmlspecialchars(!empty($_POST['telephone']), ENT_QUOTES)?>" /></dd> 78 79 80 81 <dt><p class="name">メールアドレス<a>*</a></p><dt> 82 <?php if (isset($error['email']) && $error['email'] == 'blank'): ?> 83 <p class="error">不正なメールアドレスです。</p> 84 <?php endif; ?> 85 <dd><input type="text" placeholder="test@test.co.jp" name="email" class="email_a" value="<?php echo 86 htmlspecialchars(!empty($_POST['email']), ENT_QUOTES) ?>" /></dd> 87 88 89 <p class="Contents">お問い合わせ内容をご記入ください<a>*</a></p> 90 <?php if (isset($error['message']) && $error['message'] == 'blank'): ?> 91 <p class="error">入力してください。</p> 92 <?php endif; ?> 93 <dd><textarea class="question" name="message" value="<?php echo 94 htmlspecialchars(!empty($_POST['message']), ENT_QUOTES, "UTF-8") ?>"></textarea><dd> 95 </dl> 96 97 98 <div class="send"> 99 <input type="submit" value="送 信" class="send_button"> 100 </div> 101 102</div> 103</form>

kphp

1<?php 2session_start(); 3 4 5 6 7 8 9if (!isset($_SESSION['join'])) { 10 header('Location: n.php'); 11 exit(); 12 13} 14 15 16if (!empty($_POST)){ 17 echo $ret = $statement->execute(array( 18 $_SESSION['join']['name'], 19 $_SESSION['join']['yomi'], 20 $_SESSION['join']['telephone'], 21 $_SESSION['join']['email'], 22 $_SESSION['join']['message'], 23 )); 24 unset($_SESSION['join']); 25 26 header('Location: complete.php'); 27 exit(); 28} 29?> 30 31 32 33<form action="" method="post"> 34 <input type="hidden" name="action" value="submit" /> 35 36 37 <p class="name_second">氏名</p> 38 <?php echo htmlspecialchars($_SESSION['join']['name'], ENT_QUOTES, "UTF-8"); ?> 39 40 41 <p class="name_second">フリガナ</p> 42 <?php echo htmlspecialchars($_SESSION['join']['yomi'], ENT_QUOTES, "UTF-8"); ?> 43 44 <p class="name_second">電話番号</p> 45 <?php echo htmlspecialchars($_SESSION['join']['telephone'], ENT_QUOTES, "UTF-8"); ?> 46 47 <p class="name_second">メールアドレス</p> 48 <?php echo htmlspecialchars($_SESSION['join']['email'], ENT_QUOTES, "UTF-8"); ?> 49 50 <p class="name_second">お問い合わせ内容</p> 51 <?php echo htmlspecialchars($_SESSION['join']['message'], ENT_QUOTES, "UTF-8"); ?> 52 53 54 <div class="submit_set"> 55 <form action="complete.php"> 56 <input type="submit" value="送 信" class="send_button_a"><a href="confirm.php"></a> 57 </form> 58 59 <a href="contact.php"><div class="return"><input type="submit" value="戻 る" class="return_button"></div> 60 </form>

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

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

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

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

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

m.ts10806

2021/11/21 07:11

「送った」という値,$_SESSIONをvar_dump()で確認してみては。 あと本件とは関係ないですが htmlspecialchars(!empty($_POST['yomi']) これだと!empty()の結果が入るので「入力値」にはなりませんよ。
shos3

2021/11/21 07:17

ご回答ありがとうございます。 一度var_dumpで確認してみます。
m.ts10806

2021/11/21 07:18

回答ではなく質問への追記修正依頼です。 コードと質問内容だけでは判断できない部分があるので、確認して追記してほしいです。
shos3

2021/11/21 07:27

了解しました。 確認したところNULLで値が取得できていないのでコードの見直しから入ります。
m.ts10806

2021/11/21 07:31

こちらおそらくという点が分かったんですけど、どうしますか? 自分で見つけてみますか?
shos3

2021/11/21 07:34

お聞きしてもよろしいでしょうか?
guest

回答1

0

ベストアンサー

$_SESSION['join'] == $_POST;

== だと式です。代入になっていません。

投稿2021/11/21 07:35

m.ts10806

総合スコア80861

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

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

m.ts10806

2021/11/21 07:36

他にも沢山ありますね。 $error['message'] =='blank';
shos3

2021/11/21 07:37

ありがとうございます。そういう事ですね! =で試してみます。
m.ts10806

2021/11/21 07:39

割と間違える人は多いです。 ifのときに = にしてしまったり。 一応それはそれでifの「条件式」として認められるので(代入結果がtrue/falseとして評価される)エラーとなりません。 今回も同じ理由です。 「式」なので、結果を受け取らず捨てられているだけとなります。
shos3

2021/11/21 07:41

なるほどです???? 代入されていないからデータの受け渡しもでずという事ですね。理解できました。 行ってみたことろデータの受け渡しはできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問