• ベストアンサー

BBSにダブルクォーテーションを入力したい

alfeimの回答

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.3

別にCookieもセッションも使う必要はありません。 <input type="hidden" name="comment" value="<?echo htmlspecialchars($comment);?>"> としてやってダブルクォートやアングルブラケットなどのHTMLの要素として使われるキャラクタをエスケーブしてやれば良いだけです。

参考URL:
http://www.php.net/manual/ja/function.htmlspecialchars.php

関連するQ&A

  • ファイルにコーテーション類を書き込む方法

    HTMLのフォーム(Textarea)で入力したテキストを そのまま、ファイルに書き込みたいです。 (正式にはHTMLエディタのようにしたいです) 以下のソースのように作成しましたが、 シングルコーテーションやダブルコーテーションが ファイルに書き込まれる時に¥がついてしまいます。 ================== 入力フォーム =================== <html> <body> <form name='fm' action='fsave.php' method='post'> <textarea name='txt' rows='20' cols='40'> </textarea> <input type='submit' value='ファイル保存'> </body> </html> ================== fsave.php =================== <?php $txt = $_REQUEST["txt"]; $fp = fopen("sample.html","w"); fwrite($fp,$txt); echo "ファイル書き込み完了"; ?> =============== TEXTAREAへの入力値 =================== <a href='aaa.html'>LINK </a> =============== sample.htmlの中身 =================== <a href=\'aaa.html\'>LINK </a> シングルコーテーションやダブルコーテーションを フォームからPHPに渡して、ファイルに書き込むには どうすればよろしのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • Excelに、ダブルクォーテーションで始まる文字列を貼り付けると、ダブルクォーテーションが消えること

    Excelで、ダブルクォーテーションで始まる文字列をセルに貼り付けたときに ダブルクォーテーションが消えるのですが、 Excelってもともと(標凖的な動作として)そういうものですか。 (F2キーを押すなりして)編集状態にして貼り付ければ、ダブルクォーテーションのついたまま貼り付くのですが、 私はセルを選択して貼り付けただけでも大丈夫だと思っていました。 「文字列を貼り付ける」というのは、例えばテキストエディタ上にあるものを手作業でコピーして貼り付ける、ということです。 「ダブルクォーテーションで始まる文字列」と言っても、 ダブルクォーテーションが3つ以上あったときに消えるのは、最初の1組(2つ)ですね。 しかし、 "AAAA"""BBBB のような場合には、なぜか AAAA"BBBB になるのです。 (ちなみに、この文字列を、質問直前の質問内容確認の画面(IE)でコピーしてExcelに貼り付けたときは、違います。) どのような規則に基づいてダブルクォーテーションが消えるのかも疑問です。 このような仕様になっている理由はなんでしょうか。 また、Excelに文字列を貼り付けるという操作を頻繁に行うため、 できれば、編集状態にしなくても、 セルを選択して貼り付けするだけで、そのままダブルクォーテーションも貼り付いてほしいのですが、 そのためにはどうすればよいのでしょうか。 「セルの書式設定」で、表示形式を文字列にすればよいと思ったのですが、だめでした。 セルには文字列を入れるだけで、数式を入れたりしません。 (数式としては扱ってほしくない、という意味です。) Excelは2000です。

  • フォームにダブルクォーテーションが含まれているとデータベースエラー

    HTMLのフォームから投稿された文字列を取得し、その文字列と一致する語をデータベース(MySQL)から検索するシステムを作成しております。 入力された文字列を調べるということまでは完了したものの、フォームに "(ダブルクォーテーション)が入っておりますとエラーが出るというものです。 原因は分かっているのですけれども、その対処法が思い浮かばずに困っております。 ソースは以下の通りです。 [form.html] <form action="submit.php" method="POST"> <input type="text" name="word"> <input type="submit" name="submit" value="GO"> </form> [submit.php] $word = $_POST['word']; $query_word = mysql_query(  'SELECT * FROM tbword WHERE word like "%'.$word.'%";' ); $result_word = mysql_fetch_object( $query_word ); 上記の方法ですと、検索に「教えて"goo」となっていた場合、実際にはSQLに直されると  (省略)WHERE word like "教えて"goo"; となってしまうからのようです。 ダブルクォーテーションを予め省くことも考えましたが、それではダブルクォーテーションを含む語を検索できなくなってしまいます。 どうにか、よい方法は無いでしょうか?宜しくお願い致します

    • ベストアンサー
    • PHP
  • フォームの入力チェック処理について

    確認ボタンを押しエラーがあればエラーメッセージを出力し なければ確認画面に移りたいと考えているのですがうまくいきません。 具体的には 1:入力フォームを表示 2-1:送信ボタンを押しエラーがあればメッセージ出力 2-2:送信ボタンを押しエラーがなければhiddenのname="mode" value="confirm"を渡す hiddenの値はswitchのcase文の値でconfirmで確認画面を表示します。 入力フォームを表示する段階にてhiddenを渡しているのが原因なのは わかるのですがエラーチェックを通す際の構文がわかりません・・・ また、hiddenを消すとエラーチェックが通るのですが例えば名前を入力 しメールを入力しない状態で 送信ボタンを押すとメールの入力を促すエラーメッセージが表示され名前の入力も消えてしまいます。 これは回避できるのでしょか? 見づらいかと思うのですが下記のソースです。宜しくお願い致します。 function input() { if(isset($_POST{"submit"})) { if (empty($_POST["name"])) { $error_message[] = "お名前を入力して下さい。"; } if (empty($_POST["email"])) { $error_message[] = "メールアドレスを入力して下さい。"; }if (count($error_message)) { echo "<p style=\"color: #ff0000\">入力内容にエラーがあります。</p>\n"; foreach ($error_message as $message) { echo "<p style=\"color: #ff0000\">" . "・$message" . "</p>\n"; } } } echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">\n"; echo "<table border=\"1\">\n"; echo "<tr>\n"; echo "<td>お名前</td>\n"; echo "<td><input type=\"text\" name=\"name\" size=\"20\"></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td>メールアドレス</td>\n"; echo "<td><input type=\"text\" name=\"email\" size=\"20\"></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td>メッセージ</td>\n"; echo "<td><textarea name=\"msg\" rows=\"5\" cols=\"40\"></textarea></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td colspan=\"2\"><input type=\"submit\" name=\"submit\" value=\"内容を確認\"></td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<input type=\"hidden\" name=\"mode\" value=\"confirm\" />\n"; echo "</form>\n"; }

    • 締切済み
    • PHP
  • 現在PHPの勉強をしています。初心者のためご教授いただければと思います

    現在PHPの勉強をしています。初心者のためご教授いただければと思います。 メールフォームを作成しており、エラーチェックで困っています。 簡単に流れを説明しますとフォーム画面で入力をしてもらったら確認画面へと移行します。 ここでエラーがあった場合、confirm.phpにてエラーチェックをし、form.phpに戻り、エラーがなければ確認画面にて入力した、項目が表示されるようにしたいと思っています。 ソースは下記のとおりになります。 form.php ---------------------- */ <html> <body> <form action="confirm.php" method="post"> 名前:<input type="text" name="name" value="" /<?php echo $errmsg['name'] ;?><br> 内容:<textarea name="comment" rows="5" cols="40"></textarea><?php echo $errmsg['comment'] ;?><br> <input type="hidden" name="contact" value="form" /> <input type="submit" name="submit" value="確認" /> </form> </body> </html> confirm.php ---------------------- */ <?php $name = $_POST['name']; $comment = $_POST['comment']; if(isset ($_POST['contact'])) { $errmsg = array(); if(empty($name)){ $errmsg['name'] = '未入力'; } if(empty($comment)){ $errmsg['comment'] = '未入力'; } if (count($errmsg) != 0) { header("Location: index.php"); exit; } } ?> <html> <body> 名前:<?php echo $name; ?><br /> 内容:<?php echo $comment; ?><br /> </body> </html> としております。 if (count($errmsg) != 0) { header("Location: form.php"); exit; 上記のようにするとエラーチェックの表示がされません。 require(form.php);にするとform.phpが表示されるのですがURLを見るとconfirm.phpの状態になっております。 header("Location: form.php");を使用してのエラーチェックをしたいのですが、どのように記述したらよろしいのでしょうか? 上記の内容でどなたかご教授いただけないでしょうか? 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • XPathの関数「text()="value"」のダブルコーテーションをエスケープする方法は?

    お世話になります。 現在、XPathに関するプログラムを制作しています。 入力されたXPathを解析し、解析した内容に応じて特定の処理をさせるというものなのですが、text() 関数の解析で躓いています。 text()="value" ここまではわかります。 text()='value1"value2\value3' 上のケースでは、どのように記述すればいいのでしょうか? シングルコーテーションで括るという解では、シングルコーテーションとダブルコーテーションが混在している場合に対応できません。 そのプログラムではクオート文字をダブルコーテーションに限定しているので、ダブルコーテーションのエスケープ方法を探しています。 現在はバックスラッシュ(\)によるエスケープ処理で対応しています。 text()="value1\"value2\\value3" しかし、Firefox拡張「XPath Checker」で調べるとバックスラッシュによるエスケープ処理は働いていないため、 この方法は正しくない気がしています。 プログラムとしては問題なく動作していますが、XPath記法に沿っていないのは落ち着きません。 何かヒントとなる情報はないでしょうか?

    • ベストアンサー
    • XML
  • VBA シングルクォーテーションと=の入力

    文字が入っているセルの前後にに文字を追加するマクロ ="=aaa"と入力したい ダブルクォーテーションとイコールを追加したいのですが ↓のとおり作ってみたもののうまくいきません。 range(a1).Value = " = " & """ " = " & .Value" これだとダメですか??

  • メール送信時の不具合

    以下a.html→b.html→c.phpのフローでテキストエリアに入力された文章がc.php内で一行しか表示されませんでした。 全文表示したいのですが、どうすれば良いのでしょうか?ちなみにhtmlファイル内でもphpは使える環境になっています。サーバはロリポップです。 どなたか助けて下さい。よろしくお願い致します。 ■a.htmlファイル <form method=post action="b.html"> 内容:<br> <textarea name="comment" rows="5" cols="70"></textarea> <br> <input type="submit" value="確認"> <input type="reset" value="リセット"> </form> ■b.htmlファイル 内容:<?php echo $comment;?><br> で送信致します。<br> 宜しいですか?<br><br> <form method="POST" action="c.php"> <input type="hidden" name="comment" value=<?php print($comment);?>> <input type="submit" value="送信" /> </form> ■c.php <?php $comment=$_POST['comment']; echo $comment; ?>

    • ベストアンサー
    • PHP
  • フォームタグについて

    二つのフォームタグを一つのボタンで送信したいのですが、可能でしょうか? <form action="http://aaa/" method="post"> <input type="hidden" name="comment" value="テキスト "/> <input type="hidden" name="mode" value="com_w" /> <input type="hidden" name="no" value="1" /> <input type="submit" value="登録" /></form> <form action="http://bbb/" method="post"> <input type="hidden" name="comment" value="テキスト "/> <input type="hidden" name="mode" value="com_w" /> <input type="hidden" name="no" value="2" /> <input type="submit" value="登録" /></form> 同じデータをもっているフォームですが、送信するページが別々になっています。 この二つのフォームを一つの送信ボタンで送信できますでしょうか? 色々と調べましたがわかりません。 よろしくお願いいたします。

  • シングルクォーテーションとダブルクォーテーションについて

    今、AccessVBAを本を見ながら勉強している初心者です。 フォームから入力されたコードに検索をしたいのですが、 Dim cnCrrDB As ADODB.Connection Dim rsKokyaku As New ADODB.Recordset ・ ・ ・ rsKokyaku.Open "Select * From 顧客マスタ Where _ 顧客コード='" & txtKokyakuCode & "'", _ cnCrrDB, adOpenStatic, adLockOptimistic とあり、[顧客マスタ]テーブルから一致する顧客コードを検索したい。っということは わかるのですが、 顧客コード='" & txtKokyakuCode & "'", のあたりの意味が、、、不明 ちなみにtxtKokyakuCodeというのは  コードを入力するための テキストボックスの名前です。 シングルクォーテーションとダブルクォーテーションを どうゆうふうに扱っているのか 教えてくださーい。 お願いします!!(わかりづらくてすみません)