PHPの構文について

このQ&Aのポイント
  • PHPの構文についての質問です。
  • 名前と年齢をフォームページから入力し、名前と年齢、成人か未成年かを表示するPHPのサンプルがありますが、よりシンプルで分かりやすい構文にする方法はありますか?
  • 初学者がPHPの構文を理解するために質問しています。
回答を見る
  • ベストアンサー

PHPの構文

名前と年齢をフォームページから入力して 名前・年齢、そして成人・未成年の表示をするPHPのサンプルがあります。 初学者で無駄な部分が多く複雑になってしまったのですが ここをもっとこうしたほうが良いなど もっとシンプルで分かりやすい構文にできるのでしょうか? よろしくお願いいたします。 in.php ----------------------------------------------- <html> <body> <form action="out.php" method="post"> <table><tr><td>名前入力: <input type="text" name="name"></td></tr> <tr><td>年齢入力: <input type="text" name="age"></td></tr> </table> <input type="submit" value="ボタン"> </form> </body> </html> ----------------------------------------------- out.php ----------------------------------------------- <html> <body> <?php $name = htmlspecialchars($_POST["name"], ENT_QUOTES); $agen = mb_convert_kana($_POST["age"], "a"); $age = htmlspecialchars($agen, ENT_QUOTES); If($name == ""){ if($age == ""){ echo "名前、年齢の入力がありません。"; }else{ echo "名前を入力してください。"; } }else{ if($age == ""){ echo "年齢を入力してください。"; }else{ echo "あなたの名前は{$name}、年齢は{$age}です。"; if($age<20){ echo "あなたは未成年です。"; }else{ echo "あなたは成人です。"; } } } echo "<p><a href='in.php'>フォームに戻る</a>"; ?> </body> </html> -----------------------------------------------

  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
noname#244856
noname#244856
回答No.2

>> ここにPHPプログラムを専用に入れることができるのでしょうか? とはどういう意味でしょうか…? 質問の要点が掴めませんが↓が参考になるでしょうか。 PHP Manual - HTMLからの脱出 http://www.php.net/manual/ja/language.basic-syntax.phpmode.php

okdayook
質問者

お礼

色々調べてみたのですが inputのtextタイプのvalueの値はjavascripとか何かで 設定できるような説明のあるサイトがありました。 To_aru_User様はプログラムを熟練度が高いので 無意識に使っているのかもしれません。 教えていただいたコードはまだ理解ができるレベルではないので とりあえずできるところから勉強を続けて生きたいと思います。 ありがとうございました。

その他の回答 (1)

noname#244856
noname#244856
回答No.1

この手の質問は(私自身を含み)回答者が自分の書き方を押しつけてきやすいので、どの回答に対しても「こういう書き方もあるんだなー」ぐらいで見たほうがいいと思いますww それを踏まえて、私なりの書き方を提示させていただきます。「△」「○」の項目に関してはかなり強めの拘りで、一般的にはそれほど気にされずにスルーされることも多いので、参考程度で構いません。私はどんな場合においても絶対にエラーを発生させない書き方を好みますので。 【サンプル】 (コード) http://pastebin.com/rJMVhhnA (動作確認) http://codepad.viper-7.com/iq2NLk/55dev 【あなたのコードの問題点】 × HTMLにDOCTYPE宣言が無い。 × 文字コードの指定を行っていないので文字化けが起こる可能性がある。 × out.phpに直接アクセスされた場合に変数未定義のNoticeレベルのエラーが発生する。 △ 配列でパラメータが送信されてきたきた場合にhtmlspecialchars関数などでWarningレベルのエラーが発生する。 × HTML特殊文字のエスケープをロジック部分の前に行ってしまっている。 × if文の分岐に無駄が多い。 × 年齢が正しく数字で入力されているかどうかのチェックを行っていない。 × PHPの変数を使わない文字列に対しても無駄にecho経由で出力を行っている。 △ HTMLタグの属性をくくるクオートを2種類使ってしまっている。 【私のコードの長所】 ○ コード全体がそれほど長くないので、エラー処理もしやすいように1ファイルにまとめている。 ○ 1つのPHPファイル内でも、「ロジック」と「デザイン」を前後にハッキリと分割している。 ◎ htmlspecialchars関数は何回もコールするので書きやすいようにラップしたh関数を作成している。 ◎ パラメータに対してisset命令でのチェックを行い、変数未定義で発生してしまうエラーを防いでいる。 ○ 配列で不正送信されたパラメータによるエラーをis_string関数によるチェックで防いでいる。 ◎ ctype_digit関数によるチェックで半角数字以外の全ての文字列をシャットアウトしている。 ◎ エラーメッセージを配列に格納することにより、if文の分岐を簡略化させている。 ○ 「==」よりも厳格な「===」演算子を用いている。 ○ 曖昧な表現が多いHTML5ではなく厳格なXHTML5として書いている。 ○ metaタグで曖昧な文字コード指定を行わず、PHPのheader関数による厳格な方法で行っている。 ○ 制御構造の別構文やecho短縮構文を利用し、デザイン部分への変数埋め込みを見やすくしている。 【参考リンク】 メタタグによる文字コード指定の有効性 http://www.shtml.jp/mojibake/meta.html isset http://php.net/manual/ja/function.isset.php empty http://php.net/manual/ja/function.empty.php $_GET, $_POSTなどを受け取る際の処理 http://qiita.com/mpyw/items/2f9955db1c02eeef43ea 比較演算子 http://php.net/manual/ja/language.operators.comparison.php 制御構造に関する別の構文 http://php.net/manual/ja/control-structures.alternative-syntax.php echo http://php.net/manual/ja/function.echo.php ctype_digit http://www.php.net/manual/ja/function.ctype-digit.php 「!== false」 V.S. 「false !==」 http://qiita.com/mpyw/items/b097da196baf47e58ed9

okdayook
質問者

お礼

早速のご返答本当にありがとうございます! フォームファイルのほうにも 「<?php if (!empty($msgs)): ?>や<?php foreach ($msgs as $msg): ?>」などが入っていて全く何がなんだかわからない 部分が多いのが正直なところです。 「htmlspecialchars」をユーザー定義関数にしてフォーム側に入れるというのはとても勉強になりました。 分かるところから少しずつ分析してみたいと思います。

okdayook
質問者

補足

「input type="text"」のところに「value="<?=h($name)?>"」とユーザー定義関数が入れてありますが htmlのinput/textタグのvalueを設定すると 初期値の入力文字になると思っていたのですが ここにPHPプログラムを専用に入れることができるのでしょうか?

関連するQ&A

  • PHPからのメールがうまく作動しない。。。

    php初心者です。宜しくお願いします。 問い合わせフォームを作成したく、以下のHTMLとPHPファイルを作成しましたが、「mail.php」の時点で作動せず、メールもおくられません。色々調べて「.htaccess」での設定に関係あると書いていますが、よくわかりません・・・ずっとわからず悩んでます。教えていただけないでしょうか。宜しくお願い致します。 「mail.html」 <html> <head> <title>メール送信フォーム</title> </head> <h2>メール送信フォーム</h2> <form method="POST"action="kakunin.php"> <table border="0"> <tr> <td>お名前</td> <td><input type="text" name="name" size="20"></td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" name="from" size="20"></td> </tr> <tr> <td>メールタイトル</td> <td><input type="text" name="title" size="20"></td> </tr> <tr> <td>メッセージ</td> <td><textarea rows="5" name="naiyou" cols="40"></textarea></td> </tr> <tr> <td colspan="2"><input type="submit" value="内容を確認"></td> </tr> </table> </form> </body> </html> 「kakunin.php」 <html> <head> <title>メール送信フォーム</title> </head> <body> <h2>メール送信内容確認画面</h2> <?php //フォームの値を取得します。 if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ //「magic_quotes_gpc=on」のときはエスケープ解除 if(get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v); $$k = $v; } } else { exit(); } //値をチェックします。 $ErrFlg = 0; if($name == ""){ echo"<p>お名前を入力してください。"; $ErrFlg = 1; } if($from == ""){ echo"<p>メールアドレスを入力してください。"; $ErrFlg = 1; } if($title == ""){ echo"<p>メールタイトルを入力してください。"; $ErrFlg = 1; } if($naiyou == ""){ echo"<p>メッセージを入力してください。"; $ErrFlg = 1; } if($ErrFlg){ exit(); } ?> <h2>内容を確認して送信ボタンをクリックしてください。</h2> <form method="POST" action="mail.php"> <table border="0"> <tr> <td width="100">お名前</td> <td width="300"><?php echo $name?></td> </tr> <tr> <td width="100">メールアドレス</td> <td width="300"><?php echo $from?></td> </tr> <tr> <td width="100">メールタイトル</td> <td width="300"><?php echo $title?></td> </tr> <tr> <td width="100">メッセージ</td> <td width="300"><?php echo $naiyou?></td> </tr> <tr> <td colspan="2"><input type="submit" value="送信"></td> </tr> </table> <input type="hidden" name="name" value="<?php echo $name?>"> <input type="hidden" name="from" value="<?php echo $from?>"> <input type="hidden" name="title" value="<?php echo $title?>"> <input type="hidden" name="naiyou" value="<?php echo $naiyou?>"> </from> </body> </html> 「mail.php」 <HTML> <HEAD> <title>メール送信フォーム</title> </HEAD> <BODY> <?php //メール送信先を指定 $to == "web@beworks-web.com"; //フォームの値を取得 if($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ //「magic_quotes_gpc=on」のときはエスケープ解除 if(get_magic_quotes_gpc()){ $v = stripslashes($v); } $v = htmlspecialchars($v); $sk = $v; } } else { exit(); } //メール本文を組み立て $naiyou = "お名前:$name\n メールアドレス:$from\n タイトル:$title\n 内容:$naiyou\n"; if($name != "" and $from != "" and $title != "" and $naiyou != ""){ if(mb_send_mail($to,$title,$naiyou,"From:$from")) { echo "メールを送信しました"; } else { echo "メール失敗です"; } } ?> </BODY> </HTML>

    • 締切済み
    • PHP
  • PHPで問い合わせフォーム 受信すると文字化けする

    フォーム⇒ (1)確認  ⇒ (2)送信 と3つに分けて、phpファイルに書きました。 ためしに、送信してみると、成功はするものの、文字が化けてメールの内容が分かりません。 分からないので教えてください。 フォーム ↓ <form method="POST" action="kakunin.php"> <table border="0"> <tr> <td >お名前</td> <td><input type="text" name="name" size="20"></td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" name="from" size="20"></td> </tr> <tr> <td>メールタイトル</td> <td><input type="text" name="title" size="20"></td> </tr> <tr> <td>メッセージ</td> <td><textarea rows="5" name="naiyou" cols="40"></textarea></td> </tr> <tr> <td colspan="2"><input type="submit" value=" お問い合わせ内容を確認 "></td> </tr> </table> </form> (1) kakunin.php ↓ 入力フォームから情報を受け取り確認 <?php // フォームの値を取得します。 if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ // 「magic_quotes_gpc = On」のときはエスケープ解除 if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v); $$k = $v; } } else { exit(); } // 値をチェックします。 $ErrFlg = 0; if ($name == "") { echo "<p>お名前を入力してください。"; $ErrFlg = 1; } if ($from == "") { echo "<p>メールアドレスを入力してください。"; $ErrFlg = 1; } if ($title == "") { echo "<p>メールタイトルを入力してください。"; $ErrFlg = 1; } if ($naiyou == "" ) { echo "<p>メッセージを入力してください。"; $ErrFlg = 1; } if ($ErrFlg) { exit(); } ?> 内容を確認して送信ボタンをクリックしてください <form method="POST" action="mail.php"> <table border="0"> <tr> <td width="100">お名前</td> <td width="300"><?php echo $name?></td> </tr> <tr> <td width="100">メールアドレス</td> <td width="300"><?php echo $from?></td> </tr> <tr> <td width="100">メールタイトル</td> <td width="300"><?php echo $title?></td> </tr> <tr> <td width="100">メッセージ</td> <td width="300"><?php echo nl2br($naiyou) ?></td> </tr> <tr> <td colspan="2"><input type="submit" value="送信"></td> </tr> </table> <input type="hidden" name="name" value="<?php echo $name ?>"> <input type="hidden" name="from" value="<?php echo $from ?>"> <input type="hidden" name="title" value="<?php echo $title ?>"> <input type="hidden" name="naiyou" value="<?php echo $naiyou ?>"> </form> (2) mail.php ↓のコード 送信 <?php // メール送信先を指定します。 $to = "xxxxxxxxxx■ gmail.com"; // フォームの値を取得します。 if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ // 「magic_quotes_gpc = On」のときはエスケープ解除 if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v); $$k = $v; } } else { exit(); } // メール本文を組み立てます。 $naiyou = "お名前:$name\n メールアドレス:$from\n タイトル:$title\n 内容:$naiyou\n"; if ($name != "" and $from != "" and $title != "" and $naiyou != "" ) { if (mb_send_mail($to, $title, $naiyou, "From:$from")) { echo "メールを送信しました"; } else { echo "メール送信失敗です"; } } ?>

    • ベストアンサー
    • PHP
  • 予約フォームのPHPの書き方について

    はじめまして。PHP初心者です。個人事業のHPを作成しており、予約システムを導入する為、MTS Simple Bookin C Ver.1.4.0 をインストールし、予約に必要な項目をhttps://www.nishi2002.com/3502.htmlやhttp://www.amagistudio.com/reservedemonstration/を参考に作成中です。 必要項目の plan groom_name groom_frigana groom_age bride_name bride_frigana bride_age arrival_date departure_date hotel を手順通りに追加し、予約フォームの入力まはで出たのですが、入力の確認が出てきません、、、 何が原因かご教授頂けましたら幸いです。 【 mtssb-booking-form.phpの編集】 737行辺りから <?php if (0 < $this->clcols['plan']) : ?><tr>    <th><?php echo apply_filters('booking_form_plan', 'プラン') ?></th> <td>        <?php echo esc_html($client['plan']) ?> <input type="hidden" name="booking[client][plan]" value="<?php echo esc_html($client['plan']) ?>" /> </td> </tr><?php endif; ?> <tr> <th>予約人数</th> <td> <?php foreach ($this->controls['count'] as $key => $val) : ?><div class="input-number"<?php echo $val != 1 ? ' style="display:none"' : '' ?>><?php $title = apply_filters('booking_form_count_label', __(ucwords($key), $this->domain)); if ($title != '') { echo "$title<br />"; } ?> <?php echo esc_html($client[$key]) ?><input type="hidden" name="booking[client][<?php echo $key ?>]" value="<?php echo esc_html($client[$key]) ?>" maxlength="5" /><?php echo apply_filters('booking_form_count_note', '') ?> </div><?php endforeach; ?> <?php if (isset($this->errmsg['count'])) : ?><div class="error-message"><?php echo $this->errmsg['count'] ?></div><?php endif; ?> </td> </tr> <tr> <td class="option-confirm-header" colspan="2"><?php echo apply_filters('booking_form_client_title', 'ご連絡先') ?></td> </tr> <?php if (0 < $this->clcols['company']) : ?><tr> <th><?php echo apply_filters('booking_form_company', '会社名') ?></th> <td> <?php echo esc_html($client['company']) ?> <input type="hidden" name="booking[client][company]" value="<?php echo esc_html($client['company']) ?>" /> </td> </tr><?php endif; ?> <?php if (0 < $this->clcols['groom_name']) : ?><tr> <th><?php echo apply_filters('booking_form_groom_name', 'ご新郎様のお名前') ?></th> <td> <?php echo esc_html($client['groom_name']) ?> <input type="hidden" name="booking[client][groom_name]" value="<?php echo esc_html($client['groom_name']) ?>" /> </td> </tr><?php endif; ?> <?php if (0 < $this->clcols['groom_furigana']) : ?><tr> <th><?php echo apply_filters('booking_form_groom_furigana', 'フリガナ') ?></th> <td> <?php echo esc_html($client['groom_furigana']) ?> <input type="hidden" name="booking[client][groom_furigana]" value="<?php echo esc_html($client['groom_furigana']) ?>" /> </td> </tr><?php endif; ?> <?php if (0 < $this->clcols['groom_age']) : ?><tr> <th><?php echo apply_filters('booking_form_groom_age', '年齢') ?></th> <td> <?php echo esc_html($client['groom_age']) ?> <input type="hidden" name="booking[client][groom_age]" value="<?php echo esc_html($client['groom_age']) ?>" /> </td> </tr><?php endif; ?> <?php if (0 < $this->clcols['bride_name']) : ?><tr> <th><?php echo apply_filters('booking_form_bride_name', 'ご新婦様のお名前') ?></th> <td> <?php echo esc_html($client['bride_name']) ?> <input type="hidden" name="booking[client][bride_name]" value="<?php echo esc_html($client['bride_name']) ?>" /> </td> </tr><?php endif; ?> <?php if (0 < $this->clcols['bride_furigana']) : ?><tr> <th><?php echo apply_filters('booking_form_bride_furigana', 'フリガナ') ?></th> <td> <?php echo esc_html($client['bride_furigana']) ?> <input type="hidden" name="booking[client][bride_furigana]" value="<?php echo esc_html($client['bride_furigana']) ?>" /> </td> </tr><?php endif; ?> <?php if (0 < $this->clcols['bride_age']) : ?><tr> <th><?php echo apply_filters('booking_form_groom_age', '年齢') ?></th> <td> <?php echo esc_html($client['bride_age']) ?> <input type="hidden" name="booking[client][bride_age]" value="<?php echo esc_html($client['bride_age']) ?>" /> </td> </tr><?php endif; ?> 続き→ https://okwave.jp/qa/q9532258.htm

    • 締切済み
    • PHP
  • [PHP初心者] フォームのエラーチェック

    PHPやデータベースに全く疎い者です。 皆様にご指導頂きたく投稿致します。質問内容もレベルが低いですがどうが宜しくお願いします。 メールフォームにてフォームのボタンを押下し、 エラーチェックをして、エラー項目を同一画面上の上の辺りに表示させたいのですが、、参考書を読んだり、過去スレを拝見しても、どうもわかりません。 <body> //↓この辺をどう書けばいいのか、さっぱりなんです。 <?php if(isset($_POST['mailform'])) { if($_POST['name'] == "") { echo("名前を入力して下さい。<br>"); }} ?> //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ <form method="POST" action="kakunin.php"> <table border="0" cellpadding="5"> <tr> <td colspan="2"></td> </tr> <tr> <td>名前</td> <td><input type="text" name="name" size="20"></td> </tr> <tr> <td>メールアドレス</td> <td><input name="mail" type="text" id="mail" size="20"></td> </tr> <tr> <td>項目</td> <td>     <input type="checkbox" name="check[]" value="PHP">PHP <input type="checkbox" name="check[]" value="Perl">Perl <input type="checkbox" name="check[]" value="ASP">ASP <input type="checkbox" name="check[]" value="JSP">JSP</td> </tr> <tr> <td>お問い合わせ内容</td> <td><textarea rows="5" name="naiyou" cols="40"></textarea></td> </tr> <tr> <td colspan="2"><input name="mailform" type="submit" id="mailform" value="::入力内容を確認::">  <input type="reset" name="Submit" value="リセット"></td> </tr> </table> </form> </body>

    • 締切済み
    • PHP
  • PHPのシンプルな構文(初心者)

    ランダムに出る掛け算の答えを入力して 別ファイルで正解か不正解という表示をする構文なのですが 「input type="hidden"」部分の値の出力・受取りができず 正しく実行がされません。 どこが間違っているのでしょうか? よろしくお願いいたします。 in.php -------------------------------------- <?php $saki = rand(1,9); $ato = rand(1,9); echo "$saki X $ato"; $seikai = $saki*$ato; ?> <html> <body> <form method="post" action="out.php"> <input type="text" name="kotae"> <input type="hidden" name="hid" value="<?php $seikai ?>"> ←※ <input type="submit" value="回答"> </form> </body> </html> -------------------------------------- out.php -------------------------------------- <?php $kotae = $_POST["kotae"]; $seikai = $_POST["hid"];     ←※ if($kotae == $seikai){ echo "正解です"; }else{ echo "間違っています。"; } echo "<hr>正解は{$seikai}です。"; ?> --------------------------------------

    • ベストアンサー
    • PHP
  • phpのプログラムに関する質問です。

    今、ログインシステムを作っている途中なのですが、以下のプログラムでやってみると、 登録してある名前とパスワードを打ち込むと、最初「パスワードが違います。」と出て、 戻ってもう一度同じものを打ち込むと、うまく先へ進みます。 (login.php)のファイルで↓ <html> <head> <title>ログイン画面Var.1</title> </head> <body > <form method="POST" action="get_login.php"> <table> <tr> <td>名前:</td> <td><input type=text name="name"></td> </tr> <tr> <td>パスワード:</td> <td><input type=password name="pass"></td> </tr> <tr> <td></td> <td> <input type=submit value="ログイン"> <input type=reset value=" 取消 "> <input type=submit name="regist" value="新規登録"> </td> </tr> </table> </form> </body> </html> (get_login.php)のファイルで↓ <? setcookie("name2", $_POST["name"]); $contents = @file_get_contents('name_list.txt'); //ファイルから読み込んだ文字列 $name=$_COOKIE['name2'];//名前 if($_POST["regist"]=="新規登録"){ readfile("regist.php"); }else{ if(ereg('<name>'.$name.'</name><pass>[a-z0-9]+</pass>',$contents,$a)){ $pass=ereg_replace('[^ ]+<pass>','',$a[0]); $pass=ereg_replace('</pass>','',$pass); if($pass==$_POST['pass']){ readfile("phptxtwrite2.php"); }else{ echo ("パスワードが違います。<br>". "<a href=\"./login.php\">戻る</a>"); } }else{ echo("登録されていません。<br>". "<a href=\"./login.php\">戻る</a>"); } } ?> (name_list)のファイルで↓ <name>会</name><pass>ss</pass> <name>さめ</name><pass>kk</pass> <name>やす</name><pass>ii</pass> <name>のり</name><pass>kk</pass> <name>あ</name><pass>a</pass> <name>あああ</name><pass>aaa</pass> <name>dda</name><pass>ds</pass> こんな感じなのですが、なぜ一発でうまくいかないのでしょうか?宜しくお願いします。 また、改良点などがありましたら、アドバイス宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPでMySQLにデーターを追加するところで壁に当たってしまいました

    PHPでMySQLにデーターを追加するところで壁に当たってしまいました。 PHP5.3&MYSQL5.1 1.フォームへ入力 2.確認画面 3.MySQLへデーター追加 1.form <html> <head><title></title></head> <body> <form method="post" action="conf.php"> <table> <tr><th>番号</th><td><input type="text" name="id" /></td></tr> <tr><th>タイトル</th><td><input type="text" name="title" /></td></tr> <tr><th>テキスト</th><td><textarea name="cont" cols="40" rows="5" /></textarea></tr> <tr><th>日付け</th><td><input type="text" name="update" size="10" /></td></tr> </table> <input type="submit" value="送信" /><input type="reset" value="リセット" /> </form> </body> </html> 2.確認画面 <html> <head><title></title></head> <body> <table> <tr><th>番号</th><td><?php echo htmlspecialchars($_POST["id"]) ?></td></tr> <tr><th>タイトル</th><td><?php echo htmlspecialchars($_POST["title"]) ?></td></tr> <tr><th>テキスト</th><td><?php echo htmlspecialchars($_POST["cont"]) ?></td></tr> <tr><th>日付け</th><td><?php echo htmlspecialchars($_POST["update"]) ?></td></tr> </table> <form method="post" action="upld.php"> <input type="hidden" name="did" value="<?php echo htmlspecialchars($_POST["id"]) ?>" /> <input type="hidden" name="title" value="<?php echo htmlspecialchars($_POST["title"]) ?>" /> <input type="hidden" name="cont" value="<?php echo htmlspecialchars($_POST["cont"]) ?>" /> <input type="hidden" name="update" value="<?php echo htmlspecialchars($_POST["update"]) ?>" /> <input type="submit" value="登録" /> </form> </body> </html> 3.MySQLへデーター追加 <?php $Con = mysql_connect("localhost","root",""); if ($Con == false) {dir ("MySQLの接続に失敗。");} if (!mysql_select_db("phpdata",$Con)) {dir ("データーベース接続に失敗。");} $sql = "insert into daimoku(id,title,cont,update) values('".$_POST["id"]."','".$_POST["title"]."','".$_POST["cont"]."','".$_POST["update"]."')";//SQL文の作成 $res = mysql_query($sql) or die(mysql_error());//クエリの実行 mysql_close($Con);//切断 ?> <html> <head> <title></title> </head> <body> <p>ご登録ありがとうございました。</p> <a href="01.php">戻る</a> </body> 以上のコードでデーターの追加が出来ません。 どなたか教えていただけないでしょうか?

    • ベストアンサー
    • PHP
  • 「PHP初心者」入力フォームの件

    フォームから名前を入力して 送信後、その名前を表示させ 未入力だとエラーの言葉を表示させるサンプルになります。 ------------------------------------------- <html> <body> <form action="" method="post"> <p>【お名前】<input type="text" name="name"></p> <p><input type="submit" value="送信"></p> </form> </body> </html> <?php function Aa($str){ return htmlspecialchars($str, ENT_QUOTES, "UTF-8"); } if($_POST["name"] == ""){ echo "名前を入力してください。"; }else{ $name = Aa(@$_POST["name"]); echo $name; } ?> ------------------------------------------- 上記は正しい例になりますが 最初に頭に浮かんで書いてみたのは 「isset」を使った以下の構文でした。 ------------------------------------------- if(isset($_POST["name"])){ $name = Aa(@$_POST["name"]); echo $name; }else{ echo "名前を入力してください。"; } ------------------------------------------- この構文では名前が未入力の場合でも エラーメッセージの「名前を入力してください。」が出力されず 表示されません。 (もしnameが入力されていればnameを出力。 入力されていなければechoの「名前を入力してください」を 出力という「==」と同じような解釈で 「isset」を使ってみたのですが間違いでした。 この場合「isset」はどうして使えないのでしょうか?

    • ベストアンサー
    • PHP
  • enter.php:さくらスタンダードで動かない。

    下記のenter.phpのコードですが、さくらレンタルサーバのスタンダードプランに移動してから正しく動作しなくなりました。 さくらで設定しているPHPのバージョン:PHP 5.2.17 [標準のPHP] (CGI版) モジュール版は利用不可能です。 現在の動作としては、「確認画面へ進む」ボタンを押すと、入力エラーの確認はきちんとできます。入力内容に問題がなければ、mail.phpへページが移動するはずなのですが、enter.phpからmail.phpへ画面が切り替わらず入力フォームも表示されなくなり、enter.phpの背景のみ表示されてしまいます。 そこで、mail.phpのURLをブラウザーのアドレスバーに直接入力すると、mail.phpが正しく表示されます(データはenter.phpからmail.phpにちゃんと送られているようです。)。 どなたか、どこが悪いか教えてください。 <enter.php> <?php session_start(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> </head> <body> <?php if (isset($_SESSION['input_data'])) { $input_data = $_SESSION['input_data']; $_SESSION = array(); session_destroy(); } if (isset($_POST['confirm'])) { $isErr = false; if (strlen(trim($_POST['inquiry'])) == 0) { $isErr = true; $error_inquiry = '内容を入力してください。'; } if (!$isErr) { $_SESSION['input_data'] = $_POST; header('Location: http://www.example.com/contact/mail.php'); exit; } else { $input_data = $_POST; } } ?> <form action="enter.php" method="post"> <table> <?php if (isset($error_inquiry)) { echo $error_inquiry;} ?> <tr> <td> * </td> <td> 内容 </td> <td> <textarea name="inquiry" cols="35" rows="20"><?php echo htmlspecialchars($input_data['inquiry'], ENT_QUOTES, 'UTF-8') ?></textarea> </td> </tr> <tr> <td colspan="3"> <div> <input type="submit" name="confirm" value="確認画面へ進む"> </div> </td> </tr> </table> </form> </body> </html>

    • ベストアンサー
    • PHP
  • フォームで確認画面を表示させるにはどうすればいいのでしょうか?

    質問をご覧下さりありがとうございます。 <form action="18add.php" method="POST" name="form1"> <table> <tr> <th>番号(半角数字)</th> <td><input type="text" name="number" value=""></td> </tr> <tr> <th>名前</th> <td><input type="text" name="name" value=""></td> </tr> <tr> <td><input type="hidden" name="mode" value="add"></td> <td><input type="submit" name="submit" value="追加"></td> </tr> </table> </form> htmlでこんなフォームを作り、phpで $table_body = ""; if( isset( $_POST['mode'] ) ){ $mode = $_POST['mode']; $number = $_POST['number']; $name =$_POST['name']; } else{ $mode = ""; $number = ""; $name = ""; } if( $mode == "add" ){ $table_body .= "<tr>"; $table_body .= "<td>"; $table_body .= $number; $table_body .= "</td>"; $table_body .= "<td>"; $table_body .= mb_convert_encoding( $name, "SJIS", "EUC-JP" ); $table_body .= "</td>"; $table_body .= "</tr>"; } で一度入力された情報を確認する画面を作りたいのですが うまくいきません。 初心者なのでわかりやすく説明をつけてくださると大変助かります。

    • 締切済み
    • PHP

専門家に質問してみよう