• 締切済み

フォームの文字列変換ができない

http://morecute.bex.jp/music/user_manager/bbs_nayu/master/index9_utility01.php このフォームでAmazonの商品コードを入力すると 商品コードが埋め込まれたURLが自動生成されフォームに出力されるようにしていたのですが、 現在動きません。 このphpのソースは↓です。 <form action="index9_utility01.php"> <input type="text" name="moji" size="80" value="<?echo "&lt;a href=&quot;http://www.amazon.co.jp/gp/aw/rd.html?a=".$moji."&amp;uid=NULLGWDOCOMO&amp;url=/gp/aw/d.html&amp;lc=msn&amp;at=morecutebz0e-22&amp;dl=1&quot;&gt;アルバム情報&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.jp/e/ir?t=morecutebz0e-22&l=msn&o=9&a=".$moji."&quot; width=1 height=1 border=0&quot; /&gt;" ?>"> <input type=submit value=sub> <font size=-1>商品コードを入力 </form> 数年前(2006年頃)はこれで問題なく出力できていたのですが・・・ phpのバージョンが変わって動かなくなったのでしょうか? サーバはXREA、及びCoreserver、PHPバージョンは 5.2.5/5.3.8 です。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

$moji にはどこで何をセットしているのでしょうか? 以前はregister_globalsが on だったということなのかもしれません。php4.2.0(2002年4月)以降は off がデフォルトですが、onにして運用していた可能性もあります。 http://php.net/manual/ja/security.globals.php

関連するQ&A

  • MYSQLからphpで取り出したハイパーリンクのタグが文字列化してしま

    MYSQLからphpで取り出したハイパーリンクのタグが文字列化してしまい機能せず困っています。 キーワードを変えて散々ググったりヤフったりしたのですが、キーワードが悪かったのか答えは在ったのに気付かなかったのか解決策が見つけられませんでした。 phpMyAdminのバージョン3.2.4を使用しています。 取り出したURLはこのようなものです。 <a href="http://www.~">作品名<img src="http://www~" width="" height="" border="" alt="" /></a> これがHTMLソースでは &lt;a href=&quot;http://www.~&quot;&gt;作品名&lt;img src=&quot;http://www~&quot; width=&quot;&quot; height=&quot;&quot; border=&quot;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; こうなっているのが問題だと思うのですがどのように解決したらよいのでしょうか。 質問慣れしていないため回答に必要な情報を出せていないかもしれません そういった場合もお手数ですがご指摘いただけるとありがたく存じます。。 ソース <?php require_once '../Encode.php'; try { $db = new PDO('mysql:host=localhost; dbname=php10', 'phpusr', 'phppass'); $db->exec('SET NAMES utf8'); } catch(PDOException $e) { die('エラーメッセージ:'.$e->getMessage()); } $stt = $db->prepare('SELECT * FROM games ORDER BY fee'); $stt->execute(); ?> <tbody> <?php while ($row = $stt->fetch(PDO::FETCH_ASSOC)) { ?>> <tr> <td colspan="3" height="22">作品名<?php e($row['title']); ?></td> </tr> <tr> <td width="115" rowspan="2">バナー<?php e($row['bannar']); ?></td> <td width="644" height="125" colspan="2">説明・解説<?php e($row['main']); ?></td> </tr> <tr> <td width="321" height="20">その他情報<?php e($row['cost']); ?></td> <td width="321" height="20"><a href="games_edit.php?sid=<?php e($row['sid']); ?>"> 編集</a></td> </tr> </tbody> <?php } ?> </table>

  • 文字実体参照が勝手に変換されてしまう

    簡単な問合せフォームを作成中に文字実体参照に変換した文字が、元に戻されてしまい困っています。簡単なサンプルを作成してみましたが、以下の様な状態です。 1.入力フォームを持ったHTMLに 「<>と&lt;と&gt;」 と入力し、xxx.cgiに渡します。 2.xxx.cgi内で入力文字列を取得し、文字実体参照に変換後<hidden>で値を保持、再度xxx.cgiに<hidden>の文字列を渡すようにします。この時点で入力値は 「&lt;&gt;と&amp;lt;と&amp;gt;」 となります。 3.再度xxx.cgiが呼ばれると、文字実体参照に変換する処理が行われる為、入力値が 「&amp;lt;&amp;gt;と&amp;amp;lt;と&amp;amp;gt;」 となるはずですが、 「&lt;&gt;と&amp;lt;と&amp;gt;」 となってしまいます(変換処理が行われているはずなのに変換されていない)不思議に思って変換前のCGIの引数を確認してみると、 「<>と&lt;と&gt;」 と文字実体参照が元に戻されてしまっています。 ちなみに文字実体参照の変換処理は$valueに対象の文字が入っているとして以下の方法で変換しています。 ---------- $value =~ s/&/&amp;/g; $value =~ s/"/&quot;/g; $value =~ s/</&lt;/g; $value =~ s/>/&gt;/g; $value =~ s/\n/<BR>/g; ---------- こういった現象についてでも何か分かるようでしたら宜しくお願いします。

    • ベストアンサー
    • Perl
  • defineの出力先で文字化け

    define('○○','<a href="http://www.goo.ne.jp" target="_blank">Goo</a>'); とすると出力先のソースで &lt;a href=&quot;http://www.goo.ne.jp&quot; target=&quot;_blank&quot;&gt;○○&lt;/a&gt; となってしまい <a href="http://www.goo.ne.jp" target="_blank">Goo</a> がそのままの形で表示されてしまいます。 どうしてこうなるのでしょうか。

    • ベストアンサー
    • PHP
  • MySQLにHTMLタグを挿入したい

    PHPでつくった登録フォームよりhtmlタグを入力してそれをtext型のフィールドにhtmlタグごと入れたいのですが、うまくいいようにはいりません。 入力 <table border="0" width="80%"><tr>問1 磁気ディスク装置において,磁気ヘッドをある位置から目的の位置に移動させるのに要する時間を何と呼ぶか。</tr><tr> <td><input type="radio" name="1" value="ア">ア  アクセス時間</td><td><input type="radio" name="1" value="イ">イ  サーチ時間</td><td><input type="radio" name="1" value="ウ">ウ  シーク時間</td><td><input type="radio" name="1" value="エ">エ  データ転送時間</td></tr></table><br><hr width="80%"><br> フィールドの保存データ &lt;table border=&quot;0&q uot; width=&quot;80%&quot;&gt;&lt;tr&gt;問1 磁気ディスク装置において,磁気ヘッ ドをある位置から目的の位置に移動させるのに要する時間を何と呼ぶか。&lt;/tr&gt;&lt ;tr&gt; &lt;td&gt;&lt;input type=&quot;radio&quot; name=&quot;1&quot; value=&qu ot;ア&quot;&gt;ア  アクセス時間&lt;/td&gt;&lt;td&gt;&lt;input type=&quot;radio &quot; name=&quot;1&quot; value=&quot;イ&quot;&gt;イ  サーチ時間&lt;/td&gt;&lt ;td&gt;&lt;input type=&quot;radio&quot; name=&quot;1&quot; value=&quot;ウ&quot;& gt;ウ  シーク時間&lt;/td&gt;&lt;td&gt;&lt;input type=&quot;radio&quot; name=&q uot;1&quot; value=&quot;エ&quot;&gt;エ  データ転送時間&lt;/td&gt;&lt;/tr&gt;&l t;/table&gt;&lt;br&gt;&lt;hr width=&quot;80%&quot;&gt;&lt;br&gt; と入ってしまい データベースを参照してhtmlを表示したときには <table border="0" width="80%"><tr>問1 磁気ディスク装置において,磁気ヘッドをある位置から目的の位置に移動させるのに要する時間を何と呼ぶか。</tr><tr> <td><input type="radio" name="1" value="ア">ア  アクセス時間</td><td><input type="radio" name="1" value="イ">イ  サーチ時間</td><td><input type="radio" name="1" value="ウ">ウ  シーク時間</td><td><input type="radio" name="1" value="エ">エ  データ転送時間</td></tr></table><br><hr width="80%"><br> と表示されうまくいきません。

  • 特殊記号が勝手にエスケープされてしまう

    Windows2000 ServerにおいてVBScriptとMicrosoft.XMLDOMを用いてASPスクリプトを作成しています。 XMLで特殊文字<,>,",',&を扱う際には&lt;,&gt;,&quot;,&apos;に置換しなくてはならない事はわかったんですが、 実際にReplaceすると例えば&lt;が&amp;lt;になってしまいます。 置換する順番を変えてもこうなるのでおかしいと重い、&amp;への置換を止めてもです。 しかもこれは読み出すと何事も無かったかのように&amp;lt;が&lt;へと戻っています。 試しに置換を全く行わない状態で 「テスト&'>"」という文字列を保存してみると、 保存先ファイルの中では「テスト&amp;'&gt;&quot;」という状態になっていました。 恐らく&,<,>,"が勝手に置換され、読み出される時には元に戻す処理が行われていると思うんですが、これがどの部分で行われているのかがよくわかりません。 JavaScriptで読み出した際にも同様に復元されていたようなので、MSXMLの仕様なのかなと思うんですが、それを裏付ける資料を見つける事もできませんでした。 XMLにおける特殊記号の扱いについて書いているサイトにも記述が見つからなかったので、もしかしたら凄く基本的な事だったりおかしな質問だったりするのかもしれませんが、ご存知の方がいらっしゃいましたら是非ご教授願いたいです。 参考URLだけでも良いですのでどうかよろしくお願いします。

    • ベストアンサー
    • XML
  • 記号文字の変換について

    CSVファイルで以下 MCODE E0187-348&lt;br&gt;通常定価 73,800円&lt;br&gt;参考定価 44,800円 のように保存している物を PHPで読み込んで表示させると なぜか MCODE E0187-348<br>通常定価 73,800円<br>参考定価 44,800円<br><br> と言う風に表示されます なんで改行されないの???と言うことで ここも色々さがして nl2br()などためしましたが 状態変わらずお手上げ状態です 何か関数あるのでしょうか? どなたか教えてください

    • ベストアンサー
    • PHP
  • Windows98seから

    Niftyのサーバに次のコードを含むパールをDLして 実行(アクセス)するとエラーになります $name =~ s/\&/\&amp;/g; $name =~ s/</\&lt;/g; $name =~ s/>/\&gt;/g;#error $name =~ s/\"/\&quot;/g; #errorの行だけが問題なのですがどうすれば良いでしょうか? $name =~ s/\>/\&gt;/g; にしてもエラーです

    • ベストアンサー
    • Perl
  • 【XML】定義済み実体について

    XMLには定義済み実体(lt, gt, amp, quot, apos)というものが 存在し、明示的に開発者が定義をしなくても実体参照を 行うことができますが、実際、これはどこに定義されているのでしょうか。ご存知の方ご教示ください。

    • 締切済み
    • XML
  • jsp 改行コードで改行させて表示したい

    はじめまして。 PostgreSQLから読み込んだ文字列データを表示させるtomcat+struts+servlet/jspを作成中です。 データの文字列に含まれる改行が、クライアントに表示された際に反映されず困っています。 過去ログも調べ、近い質問はありましたが、僕とは内容が微妙に違うようで、改めて質問させていただきました。 例えば、あるテーブルのある項目に、 A B C というデータ(A,Bそれぞれの後に改行のある3行の文字列)があるとします。 これを読み込みaction form bean(と言うのですか?setter/getterを定義する関数です)を介してjspに埋め込むと、できあがるhtmlでは、 ABC と改行されずに表示されます。 htmlで改行させるには「<BR>」が必要なのかと、データ文字列に0x0dや0x0a、または0x0d+0x0aがあれば「<BR>」に置き換えてaction form bean(?)のsetterに渡してjspを作ると、今度は、 A<BR>B<BR>C と「<BR>」が文字列として表示されます。 htmlをソース表示すると、「A&lt;BR&gt;B&lt;BR&gt;C」で、親切にも「<」「>」をそれぞれ「&lt;」「&gt;」に勝手に置き換えあくまで文字列として表示してくれるようです。 試しに改行コードを「&lt;BR&gt;」に置き換えても予想通りその部分は &lt;BR&gt; とそのまま表示され、そのソースは「&amp;lt;BR&amp;gt;」でした。 「<」や「&lt;」等をそれぞれ「&lt;」「&amp;lt;」のように置き換える作業は、どこが行っているのでしょうか。 また、改行位置で改行させるにはどうすればよろしいでしょう。 OSはwindowsXPです。 無知ゆえに、つまらないことで悪戦苦闘しているのかも知れませんが、経験も浅くてよく解りません。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • 「テキスエリアの選択文字前後に文字挿入」で…

    http://mugi.cc/js/ ↑こちらのページの下のほうにある「テキスエリアの選択文字前後に文字挿入(IE専用) 」で紹介されているスクリプトを用いて、テキストエリア内の選択文字をリンクタグ化(?)することは可能でしょうか。 サンプルでは[B](太字)のボタンのタグ等が、下記のようになっており、文字を選択してから押せば「<B>○○</B>」と表示されます。 <input type=button onclick=ins("<b>","</b>") value=b> 選択した文字列の前と後に文字を挿入なので、前に「<a href="」、後に「" target="_blank">こちら</a>」って入れれば、リンクのタグになるかと思い、下記のように書き換えてみたのですが…ダメでした; <input type=button onclick=ins("&lt;a&nbsp;href=&quot;","&quot;&nbsp;target=&quot;_blank&quot;&gt;こちら&lt;/a&gt;") value=リンク></td> どなたか何故ダメなのか教えて頂けませんでしょうか(>_<) よろしくお願いいたします。

専門家に質問してみよう