• ベストアンサー

HTML文をなんとか隠蔽したいのですが

こんにちは。ぜひ教えていただければ幸いです。 以下のようなソースを作りました。(行頭の数字は便宜上つけた行番号ですので、実際のソースには含まれません) (PHP Ver.4.3.11 , OS / FedoraCore3 , ファイル名"hoge.php"として保存、実行) 1 <html> 2 <FORM METHOD="post" action="<?php print $_SERVER['PHP_SELF']; ?>" NAME="form"> 3 if ($hoge != ""){ 4 <INPUT TYPE="hidden" NAME="hoge" VALUE="<?php print($hoge); ?>">} 5 </html> 以上を実行すると、 if ($hoge != ""){ } のようにブラウザ(IE6)上にソースの一部が露出してしまいます。 そこで、「PHPで隠蔽できないだろうか」と思い、以下のように加工しました。 (加工前) 3 if ($hoge != ""){ 4 <INPUT TYPE="hidden" NAME="hoge" VALUE="<?php print($hoge); ?>">} (加工後) 3 <?php if ($hoge != ""){?> 4 <INPUT TYPE="hidden" NAME="hoge" VALUE="<?php print($hoge); ?>"> <?php}?> が、以下のようなエラーになってしまいます。 Parse error: parse error, unexpected '}' in もし、このプログラムで、ソースをうまく隠すことができる方法を ご存知でしたら、ぜひ教えていただければ嬉しく思います。 よろしくお願いします。

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

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

  • ベストアンサー
  • funaho
  • ベストアンサー率58% (43/74)
回答No.2

>(加工後) >3 <?php if ($hoge != ""){?> >4 <INPUT TYPE="hidden" NAME="hoge" VALUE="<?php print($hoge); ?>"> <?php}?> の4行目の「<?php}?>」の「<?php」と「}」の間にスペースが有りません。それで、エラーになってます。「<?php }?>」とすればうまくいきます。

longstop
質問者

お礼

さっそくありがとうございます!うまくいきました!! 本当はお二人に20pt差し上げたい所ですが、システム上、本当に申し訳ありません。

その他の回答 (1)

回答No.1

× <?php}?> ○ <?php }?>

longstop
質問者

お礼

さっそくありがとうございます!うまくいきました!!

関連するQ&A

  • for文でpostの値を受け取る方法

    以下のようなコードで、postで投げられた値を、for文で、添え字を組み立てて受け取って表示したいのですが、添え字の生成が間違っているのか、うまくいきません。 何を修正すればよいか教えてください。 <form action="" method="post"> <input type="hidden" value="A" name="name_0"> <input type="hidden" value="B" name="name_1"> <input type="hidden" value="C" name="name_2"> <input type="hidden" value="D" name="name_3"> <input type="submit"> </form> <?php for($i =0; $i < 4; $i++){ if (!empty($_POST['name_$i'])) { print $_POST['name_$i']; } } ?>

    • ベストアンサー
    • PHP
  • 以下のソースの改善点を教えてください。

    以前こちらで、アンケートツールを作成したいと書き込み、以下のような返答を頂きました。 理想としていた吐き出し方法で、まさにこれ!といった感じだったのですが、 職場のPCで入力した所、エラーが出てしまい反応しませんでした。 (メールでの送信等ができないので、すべて手打ちで作成しました) エラー内容を確認し忘れてしまったのですが。。 以前他のソースで動作確認をした際も正常に作動せず、 その時は、IEでは作動しにくいソースが使われていると指摘されました。 以下のソースでエラーが起きてしまう原因として、入力ミス以外に、 考えられる原因はありますでしょうか。 ブラウザはIEです。 <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script> function update(form) { form.hoge4.value = form.hoge0.value + '\n'; if(form.hoge1[0].checked) { form.hoge4.value += form.hoge1[0].value + '\n'; } else if (form.hoge1[1].checked) { form.hoge4.value += form.hoge1[1].value + '\n'; } else if (form.hoge1[2].checked) { form.hoge4.value += form.hoge1[2].value + '\n'; } else if (form.hoge1[3].checked) { form.hoge4.value += form.hoge1[3].value + '\n'; } if(form.hoge2[0].checked) { form.hoge4.value += form.hoge2[0].value + '\n'; } else { form.hoge4.value += form.hoge2[1].value + '\n'; } } </script> </head> <body> <form action=""> <p>氏名:<input type="text" name="hoge0" value=""></p> <p> <input type="checkbox" name="hoge1" value="A型">A <input type="checkbox" name="hoge1" value="B型">B <input type="checkbox" name="hoge1" value="AB型">AB <input type="checkbox" name="hoge1" value="O型">O </p> <p> <input type="radio" name="hoge2" value="男">男 <input type="radio" name="hoge2" value="女">女 </p> <textarea name="hoge4" value="" rows="5" cols="40"></textarea> <br> <button type="button" onclick="update(this.form);">内容反映</button> <input type="reset" value="リセット"> </form> </body> </html>

  • フォームで同じ複数のnameで違うvalueの送信

    始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは 一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、 phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、 どうすればいいのでしょうか?・・・以下タグです。 昨日から、ここから先に進めません。。 先輩方助けてください、本当によろしくお願いします。 <form action="http://hoge.net/hoge/hogecheck.php" method="post"> <input type="hidden" name="site" value="hoge"> <input name="id" type="text" id="idform" maxlength="10" /> <input type="hidden" name="kin" value="3000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="5000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="10000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="20000"> <input type="image" src="buybtn.gif" /> </form>

    • ベストアンサー
    • Java
  • 買い物カゴとHTML

    こんにちは。質問があります。 当方、現在、商品を登録する以下のようなソースがもらえる タイプのショッピングカートを使っています。 またこのソースにはボタンがすでに付属されています。(ソースを貼るとボタンもあります) 現在HPビルダー9にてHPを作成しているのですが このボタンの代わりにHPビルダーで書いた文字を クリックするとこのボタンの代わりになるように (リンク先に移行し買い物カゴに商品が入るように)したいと考えています。どのようにすればいいのでしょうか? <FORM action='http://www.e-shops2.jp/kago2/****_order_new.php' method='post' target='_blank' style='margin:0;font-size:10pt'> <INPUT type='submit' value='カゴに入れる'> <INPUT type='hidden' name='button' value='追加'> <INPUT type='hidden' name='sy' value='*********'> <INPUT type='hidden' name='sh' value='***'> </FORM> <BR>

  • postのタイムラグ

    以下のソースでPOSTの値が取れないときがあるので困っています。 具体的にはページを表示してから30秒程度待ってからの クリックじゃないとPOSTの値が取れません。 GETの場合はページ表示後すぐにボタンをクリックしても大丈夫でした。 原因が分からず途方に暮れています。 お知恵をお貸しください。 PHP Version 5.2.3 <?php $P_data = $_POST["pg"]; print("POST=>".$P_data."<BR>"); $G_data = $_GET["pg"]; print("GET=>".$G_data."<BR>"); print <<< DOC_END <html> <head> </head> <body> DOC_END; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=1>"; echo"<input type=submit value=あ>"; echo"</form>"; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=2>"; echo"<input type=submit value=い>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=3>"; echo"<input type=submit value=う>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=4>"; echo"<input type=submit value=え>"; echo"</form>"; print <<< END </body> </html> END; ?>

    • 締切済み
    • PHP
  • php内のformのvalueに変数の値をいれたい

    どうぞよろしくお願いします。 php内のformのvalueに変数の値をいれたいのですが、下記の様に書くと<?=$a?> がそのままソースに出てしまいます。 どの様に書けば変数の値をvalueに格納できるでしょうか? <?php $a='abcd'; print'<form method="post" action="abc.php">'; print'<input type="hidden" name="a" value="<?=$a?>">'; print'</form>'; ?>

  • 既存プログラムを改造したら動かなくなってしまったのですが、その原因は

    PHP4で外注で作ったPHPの一部を流用しようとしているのですが、 個人的好みで、タグ混在型を極力さけたいので以下の変更案のように 簡素化してみました。 しかし、実行してみると、IE6に下記の生テキストが展開されてしまいます。 Var1" VALUE=""><input type="text" name="1 元プログラムの方ですと、下記のように正しく展開されるのですけど。 <input type="text" name="Var1" value=""> 変更案の何がいけないのでしょうか。 ■元プログラム <?php define("MyTeisu", "Var1"); // HTMLエスケープして表示 function HtmlEsc ( $data ) { echo( htmlspecialchars( nl2br( $data ) ) ); } $KM=MyTeisu; if($mode=="1"){ HtmlEsc( number_format($g_FORM[ $KM ][ "VALUE" ]) ); ?> <input type="hidden" name="<?php print($KM); ?>" VALUE="<?php HtmlEsc( $g_FORM[ $KM ][ "VALUE" ] ); ?>"> <?php } else { ?> <input type="text" name="<?php print($KM); ?>" VALUE="<?php HtmlEsc( $g_FORM[ $KM ][ "VALUE" ] ); ?>"> <?php } ?> ■変更案→途中の「<?php」を極力除去 $KM=MyTeisu; if($mode=="1"){ HtmlEsc( number_format($g_FORM[ $KM ][ "VALUE" ]) ); echo "<input type=\"hidden\" name=\"" . print($KM) . "\" value=\"" . HtmlEsc( $g_FORM[ $KM ][ "VALUE" ] ) . "\">"; } else { echo "<input type=\"text\" name=\"" . print($KM) . "\" value=\"" . HtmlEsc( $g_FORM[ $KM ][ "VALUE" ] ) . "\">"; }

    • ベストアンサー
    • PHP
  • swich文を使ったメールフォームの作成について。

    <?php // Error indicate. $error_msg = '未入力...'; /*--- Form mode ---*/ $mode = isset($_POST["mode"]) ? htmlspecialchars($_POST["mode"]) : "input"; /*--- 入力項目 ---*/ $mail = (isset($_POST["mail"]) && $_POST["mail"]!=$error_msg) ? htmlspecialchars($_POST["mail"]) : ""; switch ($mode) { /*--- 入力画面 ---*/ case 'input': echo' <html> <body> <form enctype="multipart/form-data" action="inquiry.php" method="post"> <input type="hidden" name="mode" value="check" /> <div>* メールアドレス<input name="mail" type="text" value="'.$mail.'" size="" /></div> <div><input type="submit" value="確認する" /></div> </form> </body> </html> '; break; /*--- 入力チェック画面 ---*/ case 'check': //----------------------------------------- // 入力チェック。 //----------------------------------------- //User Mail. if ($mail == "") {//未入力処理。 $mail ='<font color="red">'.$error_msg.'</font>'; $error = 1; } else if ( ereg("^[^@]+@[^.]+\..+", $mail) == false ){//書式処理。 $mail ='メールアドレスの書式が正しくありません。'; $error = 1; } else { $mail = $_POST["mail"]; } if ($mail != "") {// 全角を半角に。 $mail = mb_convert_kana($_POST["mail"], "a", "utf-8"); } echo' <html> <body> <h1>ご入力内容をご確認してください。</h1> <div>* メールアドレス<br />'.$mail.'</div> '; /*--- 未入力画面 ---*/ if($error == 1) { echo' <div> <form action="inquiry.php" method="post"> <input type="hidden" name="mode" value="input" /> <input type="hidden" name="mail" value="'.$mail.'" /> <input type="submit" value="戻る" /> </form> </div> </body> </html> '; } /*--- 送信可能画面 ---*/ if($error == 0) { echo' <form action="inquiry.php" method="post"> <input type="hidden" name="mode" value="send" /> <input type="hidden" name="mail" value="'.$mail.'" /> <input type="submit" value="送信" /> </form> <form action="inquiry.php" method="post"> <input type="hidden" name="mail" value="'.$mail.'" /> <input type="submit" value="戻る"> </form> </body> </html> '; } /*--- 送信画面 --*/ case 'send': } /* swich文を中心にメールフォームを作っています。 入力画面で「$mail」には、入力内容、未入力の場合、エラー文が代入されます。 再び、入力画面に戻ると、当然ですが、入力欄には、エラー文が表示されてしまいます。 $mailを空にして入力画面に戻せば良いのですが、正しい入力や多少のミス入力した場合等、 ユーザが入力した値を、入力欄に戻したいと思っています。 どのような処理をすれば良いのでしょうか? 皆様、ご回答の方、どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • hidden属性だけのフォーム

    hidden属性だけのフォームというのはちゃんと動作しますか? 自分のソースでは動作せず、送り先のPHPスクリプトでvar_dump()すると、$_POST['']の中身が NULL になってました。送信やリセットボタンを作らずに送信できるとすれば、どんな ソースになりますか? <?php echo '<form name="form1" method="POST" action="../../disp_access.php">'; echo '<input type="hidden" name="from" value="1">'; // どのページから飛んできたかを示す echo '<input type="hidden" name="browser" value="'.$referer.'">'; echo '<input type="hidden" name="ip" value="'.$ip.'">'; echo '</form>'; ?>

    • ベストアンサー
    • HTML
  • if文を入れるとcgiが動きません。【Ruby】

    下記のプログラムは正常動作します。 #部、name1に文字列が入っていたら動作するプログラムを 追加すると、ブラウザが白紙になります。エラーなしです。 間違いを教えてください。このファイルはhoge.cgiです。 #!/usr/bin/ruby print "Content-type: text/html\n\n" require "cgi-lib" input = CGI.new #if name1 #print "name is ", name1 #end print <<-"EOB" <form method="POST" action="./hoge.cgi"> name<input type="text" name="name1" size="10"> <input type="submit" value="send"> </form> </body> </html> EOB

専門家に質問してみよう