• ベストアンサー
  • 困ってます

【送信】ボタンが無反応!?

いつも大変お世話になり誠にありがとうございます。 標記の件。 色々と試みましたが、何も反応しません。 MySQLに登録して、 「送信完了しました。ありがとうございます。」と出したいのですが、何も反応しません。 form.php <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <h2>ブログフォーム</h2> <form method="POST" action="blog_create.php">  ペンネーム<br> <input type="text" name="name" ><br>   ブログタイトル<br>   <input type="text" name="title" ><br>    カテゴリー<br> <input type="text" name="category" ><br> ブログ本文<br> <textarea name="content" id="content" cols="50" rows="80"></textarea><br> <input type="submit" value="確認画面へ"> </form> <p><a href="index.php">戻る</a></p> </body> </html> blog_create.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); //$post_at = $_POST["post_at"]; echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <input type="submit" action="/kanryou.php" value="送信する"> </main> </body> kanryou.php <body> <header> <h1>PHP</h1> </header> <main> <h2>登録結果!</h2> <?php <pre> <?php try{ $db = new PDO('mysql:dbname=blog_app;host=localhost;charset=utf8','root'); $count = $db->exec('INSERT blog (id ,name,title ,category ,content , post_at=timestamp()'); ( $_POST['id'] ,mb_substr(0,$name),mb_substr(0,$title),mb_substr(0,$category),mb_substr(0,$content), post_at=timestamp()'); echo $count . "件のデータを登録しました!"; } catch(PDOException $e){ echo 'DB接続エラー' . $e->getMessage(); } ?> </pre> </main> </body> echo "送信完了です。ありがとうございました。"; ?> すみません。 どうしても、無反応です。 困っています。 教えてください。 どうぞ宜しくお願い申し上げます。

共感・応援の気持ちを伝えよう!

  • MySQL
  • 回答数4
  • 閲覧数105
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • dell_OK
  • ベストアンサー率12% (644/5194)

blog_create.phpに<form>タグがないからではないでしょうか。

共感・感謝の気持ちを伝えよう!

その他の回答 (3)

  • 回答No.4

あと1点。元々書式エラーでどうでもいい事だが、 mb_substr(0,$name),mb_substr(0,$title),mb_substr(0,$category),mb_substr(0,$content), これ。 前にもプロト書いてますが。 mb_substr( string $string, int $start, ?int $length = null, ?string $encoding = null ): string https://www.php.net/manual/ja/function.mb-substr.php って事で、プロト確認を! ただ、コピペを多用するようになったのは、感じますよ! 動く部分をコピペして、動かない物を量産しないようにすればOK では!ファイト!

共感・感謝の気持ちを伝えよう!

  • 回答No.3

あ、ただし。余計なソースをいれずに シンプルに書くってことは、勉強したようなのでそこは いいことです!。 あなた自身も目の前ではっきりわかるようになって 逆に楽になったはず!。 はっきりいって、まだフレームワークを使える 時期じゃないので、今はこんな感じの 練習ソースの方がいいでしょうけど。 もうちょいしたら、教科書式にしたほうがいいかもです。 例えば 「貴方の名前は<?= $name ?>です。」 みたいに、HTMLの中に必要な部分だけをPHPにすることで、 HTMLとして見た場合にすっきりします。 なお、今書いてるコードは 非常に危険なコードばっかりなので公開はしない方がいいでしょうね。 初心者の人でも簡単にDatabase吹っ飛ばせる内容になってるので。 あくまで、実験としては、全然OKだと思います。 ちなみ、Webとして考えてるなら、考え方逆だからね!。 集客してから機能を追加すればいいのですよ。 飲食店で、客が来る前にオーダー取れないでしょ?って事。 一番やっちゃいけないのが、 「客目線じゃなく、自分目線で=これをやりたいから!」 っていうのを客に押し付けることでしょうね。 これで失敗してる。クリエイターは多いと思う。 (ここは、今回の件とは別ですけどね)

共感・感謝の気持ちを伝えよう!

  • 回答No.2

>どうしても、無反応です。 >困っています。 貴方以上に、言語の方が困ってるかもね。 <?php try{ $db = new PDO('mysql:dbname=blog_app;host=localhost;charset=utf8','root'); $count = $db->exec('INSERT blog (id ,name,title ,category ,content , post_at=timestamp()'); ( $_POST['id'] ,mb_substr(0,$name),mb_substr(0,$title),mb_substr(0,$category),mb_substr(0,$content), post_at=timestamp()'); echo $count . "件のデータを登録しました!"; } catch(PDOException $e){ echo 'DB接続エラー' . $e->getMessage(); } ?> ここ、デバッグで追ってみ? それと、毎回そうだけど、勝手に作り出した書式で 動かないって騒ぐのはそろそろやめたら? ついでに、  書式のチェックはした?  エラーログ見た?  トレースした? 全部やってないでしょ? やったのは、「うごかな~い」って騒いだことだけ! それと、動く動かない以前に見た時、 結果はわからないが動くか動かないかは、 パーサー通す前にわかるようになってから、 コーディングしたほうがいいんじゃない? なお、今回の「も」低レベルな問題すぎるが、 教えてくれるツールはすでに回答済み おまけだが、直INSERTの帰り値取る意味はないぞ $count = $db->exec('INSERT 略 エラーがあったか?だけでいい。 echo $count . "件のデータを登録しました!"; 今から、投稿する!って画面の帰り値が「何件」?って 気持ち悪いでしょ。 BBSで、何件って表記は「読み取る側」の文言でしょ。 書き込む側は、常に「1」なんだし、 人間が書いた文字に対して、「データ」という表記も失礼だね。 「投稿されました」でいいんじゃないの?

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • $_POST変数が受け取れない。

    いつも大変お世話になり誠にありがとうございます。 度々申し訳ございません。 標記の件。 $_POST変数が受け取れません。 一昨日はこれで行けたと思ったのですが var_dump()で調べたらNULLでした。 どうして$_POST変数が受け取れないのでしょうか? すみません。どうか教えてください。 エラーメッセージは Warning: Undefined array key "name" in C:\xampp\htdocs\blog_create.php on line 11 Warning: Undefined array key "title" in C:\xampp\htdocs\blog_create.php on line 12 Warning: Undefined array key "category" in C:\xampp\htdocs\blog_create.php on line 13 Warning: Undefined array key "content" in C:\xampp\htdocs\blog_create.php on line 14 ペンネームブログタイトルカテゴリー 本文 です。 コードは form.php <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){} ?> <h2>ブログフォーム</h2> <form action="/blog_create.php/" method=_POST> ペンネーム<br> <input type="text" name="title"><br> ブログタイトル<br> <input type="text" name="title"><br> カテゴリー<br> <input type="text" name="title"><br> ブログ本文<br> <textarea name="content" id="content" cols="50" rows="80"></textarea><br> <input type="submit" value="確認ページへ"> </form> <p><a href="/">戻る</a></p> </body> </html> blog_create.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); //$post_at = $_POST["post_at"]; echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <input type="submit" action="/kanryou.php" value="送信する"> </body> 後退してしまいました。 すみません。 ご回答のほど何卒宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • MySQL INSERT into

    いつも大変お世話になり誠にありがとうございます。 標記の件。 $_postで取ってきたデータがMySQLに挿入できません。 どう直せばいいでしょうか? エラーメッセージは Parse error: syntax error, unexpected variable "$stmt" in C:\xampp\htdocs\kanryou.php on line 12 blog_create.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <form action="/kanryou.php" method="post"> <input type="hidden" name="id" value="<?php echo $id; ?>"> <input type="hidden" name="name" value="<?php echo $name; ?>"> <input type="hidden" name="title" value="<?php echo $title; ?>"> <input type="hidden" name="category" value="<?php echo $category; ?>"> <input type="hidden" name="content" value="<?php echo $content; ?>"> <input type="hidden" name="post_at" value="<?php echo $post_at; ?>"> <input type="submit" value="送信する"> </form> </main> </body> kanryou.php <?php require_once(blog_create.php); try{ $db = new PDO('mysql:dbname=blog_app;host=localhost;charset=utf8','root'); $sql ="INSERT into blog (id,name,title ,category ,content ,post_at)"; ('$_POST["id"],$_POST["name"],$_POST["title"],$_POST["category"],$_POST["content"],$_POST["post_at"]'){ $stmt =$pdo->prepare($sql) $stmt->execute(); echo 'DB接続エラー' . $e->getMessage(); } echo "送信完了です。ありがとうございました。";?> 以上です。 度々申し訳ございません。 どうか教えてください。 宜しくお願い申し上げます。

    • ベストアンサー
    • MySQL
  • 投稿する->投稿完了 SQL挿入!!!

    いつも大変お世話になり誠にありがとうございます。 標記の件。 色々と調べましたがコーディングが解りません。 度々申し訳ございません。 どうか教えてください。 添付のボタンを押して、送信完了です。ありがとうございました。と 表示して、それと同時にMySQLに挿入したいです。 本当に申し訳ありません ご回答のほど宜しくお願い申し上げます。      記 blog_create.php <?php session_cache_limiter('public'); session_start(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); //$post_at = $_POST["post_at"]; echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <input type="submit" action=kanryou.php value="送信する"> kanryou.php <?php require_once(blog_create.php); echo name; echo title; echo category; echo content; INSERT blog (name,title,category,content) VALUES(:name,:title,:category,:content); echo "送信完了です。ありがとうございました。"; ?> 以上です。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • MySQL
  • POSTでwarning!

    いつも大変お世話になり誠にありがとうございます。 また、同じような質問で申し訳ありません。 標記の件。 ブログフォームのソースは下記です。 表示のソースも下記です。 どうすれば表示されるでしょうか? ご回答のほど宜しくお願い申し上げます。        記 <h2>ブログフォーム</h2> <form action="blog_create.php" method=_POST> <label>ペンネーム:</label> <input type="text" name="name" value=""><br> <label>タイトル:</label> <input type="text" name="title" value=""><br> <label>カテゴリー:</label> <input type="text" name="category" value=""><br> <label>ブログ本文:</label><br> <textarea name="content" id="content" cols="50" rows="80"></textarea><br> <input type="submit" value="確認画面へ"> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); echo "ペンネーム{$name}"; echo "タイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <input type="submit" action="/kanryou.php" value="送信する"> Warning: Undefined array key "name" in C:\xampp\htdocs\blog_create.php on line 13 Warning: Undefined array key "title" in C:\xampp\htdocs\blog_create.php on line 14 Warning: Undefined array key "category" in C:\xampp\htdocs\blog_create.php on line 15 Warning: Undefined array key "content" in C:\xampp\htdocs\blog_create.php on line 16 ペンネームタイトルカテゴリー 本文

    • ベストアンサー
    • PHP
  • $_POSTの内容をMySQLに保存するには?

    いつも大変お世話になり誠にありがとうございます。 度々申し訳ございません。 標記の件。 エラーメッセージは Parse error: syntax error, unexpected identifier "into", expecting ")" in C:\xampp\htdocs\kanryou.php on line 9 です。 コードは先ほども提示したように blog_create.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <form action="/kanryou.php" method=""> <input type="submit" value="送信する"> </form> </main> </body> kanryou.php <?php require_once(blog_create.php); try{ $db = new PDO('mysql:dbname=blog_app;host=localhost;charset=utf8','root'); $count = $db->exec(INSERT into blog (id,name,title ,category ,content,post_at) ($_POST["id"],$_POST["name"],$_POST["title"],$_POST["category"],$_POST["content"],$_POST["post_at"]){ echo 'DB接続エラー' . $e->getMessage(); } </main> </body> echo "送信完了です。ありがとうございました。"; ?> 本当に申し訳ありません どうか教えてください。 どこを直せばいいでしょうか? ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • MySQL
  • php $_SESSIONで値が消える。

    いつもお世話になり誠にありがとうございます。 標記の件。 インプット画面ー>確認画面ー>戻るー>インプット画面 インプット画面に戻った時、どうしても最初のインプット画面で打った内容が消えてしまいます。 プログラムを診て、誤りを指摘して頂けないでしょうか? どうぞよろしくお願い致します。           記 <?php session_start(); $mode = 'input'; if( isset($_POST['back']) && $_POST['back'] ){ //何もしない } else if( isset($_POST['confirm']) && $_POST['confirm'] ){ $_SESSION['name'] = $_POST['name']; $_SESSION['email'] = $_POST['email']; $_SESSION['category']= $_POST['category']; $_SESSION['message'] = $_POST['message']; $mode = 'confirm'; } else if( isset($_POST['send']) && $_POST['send'] ){ $mode = 'send'; } else { $_SESSION['name'] =""; $_SESSION['email'] =""; $_SESSION['category']=""; $_SESSION['message'] =""; } ?> <!DOCTYPE html> <html lang="ja"> <head> </head> <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){ ?> <form method=post> お名前(ニックネーム)<br> <input type="text" name="name" value="<?php echo $_SESSION['name'] ?>"><br> Eメール<br> <input type="email" name="email" value="<?php echo $_SESSION['email'] ?>"><br> カテゴリー<br> <input type="text" name="category" value="<?php echo $_SESSION['category'] ?>"><br> 本文<br> <textarea style="font-size:1.5em;" cols="30" rows="80" name="message"><?php echo $_SESSION['message'] ?></textarea><br> <input type="submit" name="confirm" value="確認" /> </form> <?php }else if( $mode=='confirm'){ ?> <!--確認画面--> <form method="post"> <?php echo $_SESSION['name']?><br> <?php echo $_SESSION['email']?><br> <?php echo $_SESSION['category']?><br> <br> <?php echo nl2br($_SESSION['message'])?><br> <input type="submit" name="back" value="戻る"/> <input type="submit" name="send" value="送信"/> } </form> <?php } else { ?> <!--完了画面--> <?php } ?> </body> </html>

    • ベストアンサー
    • PHP
  • php $_SESSIONでデータが残らない。

    いつもお世話になり誠にありがとうございます。 標記の件。 インプット画面ー>確認画面ー>戻るー>インプット画面 インプット画面に戻った時、どうしても最初のインプット画面で打った内容が消えてしまいます。 プログラムを診て、誤りを指摘して頂けないでしょうか? 今度はCSSなども書きます。 どうぞよろしくお願い致します。 記 <?php session_start(); $mode = 'input'; if( isset($_POST['back']) && $_POST['back'] ){ //何もしない } else if( isset($_POST['confirm']) && $_POST['confirm'] ){ $_SESSION['name'] = $_POST['name']; $_SESSION['email'] = $_POST['email']; $_SESSION['category']= $_POST['category']; $_SESSION['message'] = $_POST['message']; $mode = 'confirm'; } else if( isset($_POST['send']) && $_POST['send'] ){ $mode = 'send'; } else { $_SESSION['name'] =""; $_SESSION['email'] =""; $_SESSION['category']=""; $_SESSION['message'] =""; } ?> <!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: blue; } input { font-size: 25px; margin:auto; } </style> </head> <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){ ?> <form method=post> お名前(ニックネーム)<br> <input type="text" name="name" value="<?php echo $_SESSION['name'] ?>"><br> Eメール<br> <input type="email" name="email" value="<?php echo $_SESSION['email'] ?>"><br> カテゴリー<br> <input type="text" name="category" value="<?php echo $_SESSION['category'] ?>"><br> 本文<br> <textarea style="font-size:1.5em;" cols="30" rows="80" name="message"><?php echo $_SESSION['message'] ?></textarea><br> <input type="submit" name="confirm" value="確認" /> </form> <?php }else if( $mode=='confirm'){ ?> <!--確認画面--> <form method="post"> <?php echo $_SESSION['name']?><br> <?php echo $_SESSION['email']?><br> <?php echo $_SESSION['category']?><br> <br> <?php echo nl2br($_SESSION['message'])?><br> <input type="submit" name="back" value="戻る"/> <input type="submit" name="send" value="送信"/> } </form> <?php } else { ?> <!--完了画面--> <?php } ?> </body> </html>

    • ベストアンサー
    • PHP
  • <?php if( $mode=='input')

    いつもお世話になりありがとうございます。 標記の件。 6行目がエラーになります。 エラーメッセージは Parse error: Unclosed '{' on line 64 in C:\xampp\htdocs\form.html on line 85 です。 <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){ ?> <h1>ブログフォーム</h1> <form action="/blog_create.php/" method=_POST>  ペンネーム<br> <input type="text" name="name"><br>   ブログタイトル<br>   <input type="text" name="title"><br>    カテゴリー<br> <input type="text" name="category"><br> ブログ本文<br> <textarea name="content" id="content" cols="50" rows="80"></textarea><br> <input type="submit" value="送信"> </form> <p><a href="/">戻る</a></p> </body> どう直せばいいでしょうか? 度々申し訳ございません。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • htmlファイルがNot Found???

    いつもお世話になりありがとうございます。 標記の件。 添付の様に、htmlファイルがNot Found? となります。 表示させたいのです。 どうしたらいいのでしょうか??? 度々申し訳ございません。 アドバイスの程、宜しくお願い申し上げます。    記 <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){ ?> <h1>ブログフォーム</h1> <form action=blog_create.php method=POST> ブログタイトル<br> <input type="text" name="title"><br> ブログ本文<br> <textarea name="content" id="content" cols="30" rows="80"></textarea><br> カテゴリー<br> <select name="category"> <option value="1">日常</option> <option value="2">非日常</option> <option value="3">その他</option> </select> <br> <input type="radio" name="publish_status" value="1" checked>公開 <input type="radio" name="publish_status" value="2" checked>非公開 <br> <input type="submit" value="送信"> </form> <p><a href="/">戻る</a></p> </body>

    • ベストアンサー
    • PHP
  • phpでメール送信

    phpでメール送信を行ってもメールが来ません。 普通のメールアドレスです。使っているサーバーはちゃんとphpが つかえるようです。ソースは下記です。訂正するところなどありまし たらよろしくお願いします。 ソース:(ホーム)<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>sample</title> </head> <body> <form action="1.php" method="post"> ホームページの名前:<br> <input type="text" name="subject" size="30" value=""><br> ホームページのアドレス:<br> <input type="text" name="name" size="30" value=""><br> メールアドレス:<br> <input type="text" name="mail" size="30" value=""><br> ホームページの紹介文:<br> <textarea name="message" cols="30" rows="5"></textarea><br> <br> <input type="submit" value="送信する"> </form> </body> </html> 送信側:<?php mb_language("Japanese"); mb_internal_encoding("SHIFT-JIS"); $message = "ホームページのアドレス:" . $_POST["name"] . "\nホームページの紹介文:" . $_POST["message"]; if (!mb_send_mail("めーるアドレス@メールアドレス.jp", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("メールの送信に失敗しました。"); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>sample</title> </head> <body> <p>メールが送信されました。</p> </body> </html>