• ベストアンサー

CGIからPHPへの書き換え

GuruGuru22の回答

回答No.2

phpの文として解釈されるのは <?php から ?> の間までの記述です。 よって <?php if($Slog[2]){ ?> $Slog[2] =~ s/&gt;/>/g; $Slog[2] =~ s/&lt;/</g; では、最後の文はそのまま出力されます。

sabada
質問者

補足

レスありがとうございます。 <?php if($Slog[2]){ $Slog[2] =~ s/&gt;/>/g; $Slog[2] =~ s/&lt;/</g; ?> や <?php if($Slog[2]){ ?> <?php $Slog[2] =~ s/&gt;/>/g; $Slog[2] =~ s/&lt;/</g; ?> ともして見たんですがこれだと、画面が真っ白になり駄目みたいです。何が間違っているんでしょうか?

関連するQ&A

  • phpで名簿データを出力

    名簿データを開き、一枠に番号・名前・住所・電話・メールを書き出し一列に4名分のデータを並べます。 CGIだと以下の様なイメージかと思いますが、今回はPHPで書くように指示されました。 勉強不足で月曜迄に出来る気がしません。どのように書けば良いかご教示よろしくお願いします。 open (IN,"meibo.txt"); @abc = <IN>; close (IN); print = "<table border=1><tr>\n"; foreach (@abc) {($id,$name,$address,$tel,$mail) = split(/<>/); print <<HTML; <td>$id<br>$name<br>$address<br>$tel<br>$mail</td> HTML $count++; if ($count > 4){print = "</tr><tr>\n"; $count = 0;} } print = "</tr></table>\n";

    • ベストアンサー
    • PHP
  • CGI コメント欄の文章を行替えしたいのです

    お世話になります。 野球スコアボードのCGIなのですが、コメント欄の文章がどうしても1列になってしまい、行替えができません。 文章で<br>を書き加えると、1行分のみしか表示されず、改行の2行目以降が表示されません。   以下の構成でどのようにすれば、文章の行替えが可能になりますか? アドバイスよろしくお願い致します。 <tr><td colspan=\"2\"> <font color=white>スコアボード<center> <table border=\"1\" bgcolor=\"#009933\" cellspacing=0 bordercolor=\"black\"> "; for($i=0;$i<@score;$i++){ print "<tr>"; @team_score=split(/,/,$score[$i]); if($i eq 0){ print "<tr>"; for($s=0;$s<@team_score;$s++){ if($s eq 0){ print "<td width=80> <font color=\"white\"> <center><i>チーム名 </td>"; }else{ print "<td width=\"20\"> <font color=\"white\"> <center><i>$s </td>"; } } print "<td width=40><font color=\"white\"><center><i>合計</td>"; print "</tr><tr>"; } $point=0; for($j=0;$j<@team_score;$j++){ print "<td><font color=\"white\">"; print"<center>"; if($team eq $team_score[$j]){ print "<b>" } print"$team_score[$j]</td>"; if($j eq 0){ }else{ $point=$point+$team_score[$j]; } } if($cnt[$i-1] eq $j || $i eq 0){ print "<td><font color=\"white\"><center>$point</td>"; }else{ print "<td> <font color=\"white\"><center>× </td> <td> <font color=\"white\"><center>$point </td>"; } print "</tr>"; $cnt[$i]=$j; } print "</table><p></td></tr>"; print "<tr><td bgcolor=\"#778899\" height=100> <font color=white>コメント </td> <td bgcolor=\"#f8f8ff\"> $cmt[$p] </td></tr>"; print "</table>"; print "<p><hr width=500><p>"; } } print " </body></html>"; exit;

    • ベストアンサー
    • CGI
  • CGIのカスタマイズについて

    ネットレスキューさんの簡易データベースについて search.cgiの表示部分でテーブルを一つずつ生成させようと思ったのですがエラーが出ます。 どこが悪いのでしょうか? ----------ここから------- foreach $data (@NEW) { ($d,$DATE,$PREF,$NAME,$EMAIL,$HURL,$AGE,$HANDLE,$REM) = split(/\,/,$data); print "<table width="450" border="0" cellspacing="0" cellpadding="0" class="p12_16">\n"; print "<tr>\n"; print "<td colspan="2" bgcolor="#CC0033" height="14"><font color="#FFFFFF">● $NAME</font></td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td width="70">地域</td>\n"; print "<td width="380">$PREF</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td height="14">Eメール</td>\n"; print "<td><a href=\"mailto:$EMAIL\">$EMAIL</a></td>\n"; print "</tr>\n"; ---中略---- print "<td height="14">内容</td>\n"; print "<td>$REM</td>\n"; print "</tr>\n"; print "</table>\n"; if ($next_num ne '') { while (($key,$val) = each %FORM2) { if ($key ne 'FF') { $buf = "$buf&$key=$val"; } } print "<h3>↓<a href=\"search.cgi?$buf&FF=$next_num\">次の$page件</a></h3>\n"; } } print "</body></html>\n\n"; exit; --------------ここまで----- splitの扱い方が良く分っていません。 御存知の方御指導下さいませ。

    • ベストアンサー
    • CGI
  • PHPでMYSQLを使ったログイン

    PHPでMYSQLを使いってログインフォームを作ったのですが 画像の上の方ようなテーブルを作りPHP側のログインフォームでログインしてもらい 画像のusernameの[S]でログインしたらIDとFirst NameとLast NameをPHPで 画像の下の方のように表示するようにしたいのですが echo "<tr><th>ID</th><th>USERNAME</th><th>First Name</th><th>Last Name</th></tr>"; $st = ("select * from kd3musers where username='$username'"); (この間) echo "<tr><td>$id</td><td>$username</td><td>$first_name</td><td>$last_name</td></tr>"; (この間)の中身がわかりません。 別の書き方や、わかる方がいましたらよろしくお願いします

    • ベストアンサー
    • PHP
  • CGIの動作環境に関して

    教えて下さい。 私の作成したapacheの環境では、   print "Content-type: text/plain\n\n"; print "Hello Perl !"; この表記ではダウンロードのポップアップが表示されてしまい、 調べたところ、 print "Content-type: text/html\n\n"; print "<html><h1>Hello Perl !</h1>"; のようにhtml形式にすれば正しく表示されるようになりました。 しかし、自分で作成しておきながら、html形式というものが 良くわかりません。 仮に、以下のような"行動予定表"のようなものを表示させたい場合、 どのように"html形式"で記述すれば良いでしょうか。。。。 # 行動予定表の表示 print "Content-type: text/html\n\n"; print qq! <HTML> <HEAD> <TITLE>行動予定表</TITLE> <META Http-Equiv="Content-Type" Content="text/html;charset=shift-jis"> </HEAD> <BODY link="#0000ff" vlink="#0000ff" alink="#0000ff"> <CENTER> <TABLE BORDER="0" WIDTH="90%"> <TD WIDTH="20%"> <FONT SIZE="4"> <IMG src="../../image/mrd3.gif" width="80" height="27" border="0"> </FONT> </TD> <TD WIDTH="60%" ALIGN="center"> <B><U>行動予定表</U></B> </TD> <TD WIDTH="20%" ALIGN="right"> <FONT SIZE="4"><U>$date</U></FONT> </TD> </TABLE> <FONT COLOR="#FF0000"><B>$error</B></FONT><BR> <TABLE BORDER="1" WIDTH="650" CELLPADDING="2" CELLSPACING="1"> <TR ALIGN="center"> <TD NOWRAP WIDTH="150" BGCOLOR="#DDDDDD"> <FONT SIZE="2"><B>名前</B></FONT> </TD> <TD NOWRAP WIDTH="300" BGCOLOR="#DDDDDD"> <FONT SIZE="2"><B>行  先</B></FONT> </TD> <TD NOWRAP WIDTH="150" BGCOLOR="#DDDDDD"> <FONT SIZE="2"><B>帰社時間</B></FONT> </TD> </TR> !; for($loop = 1;$loop <= $#LIST_NAME;$loop++) { $name = qq!<FONT SIZE="2">$LIST_NAME[$loop]</FONT>!; print qq! <TR> <TD WIDTH="2%" VALIGN="middle" NOWRAP> <A HREF="yotei_d1.cgi?edit=$loop">$name</A> </TD> <TD WIDTH="49%" VALIGN="top"> <FONT SIZE="2">$LIST_NOTE[$loop]{'AM'} </FONT> </TD> <TD WIDTH="49%" VALIGN="top"> <FONT SIZE="2">$LIST_NOTE[$loop]{'PM'} </FONT> </TD> </TR> !; } print qq! </TABLE> </CENTER> <CENTER> <TABLE BORDER="0" WIDTH="750" CELLPADDING="0" CELLSPACING="0"> </TABLE> </CENTER> <HR> <CENTER> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0"> <TR> <TD COLSPAN="3"> <FONT SIZE="2"><B>ご利用のヒント</B></FONT> </TD> </TR> <TR> </TR> <TR> <TD WIDTH="5%"> </TD> <TD WIDTH="15%"> <FONT SIZE="2"><B>■名前</B></FONT> </TD> <TD WIDTH="80%"> <FONT SIZE="2"> 編集したい名前を押すと、登録画面が表示されます。</FONT> </TD> </TR> </TABLE> </CENTER> <P> <CENTER> <P ALIGN="center"> <FONT SIZE=2><I> <A HREF="http://999999">イントラネットトップページへ </A> </I></FONT> </CENTER> </BODY> </HTML> !; 宜しくお願いします。

    • 締切済み
    • CGI
  • 不明の「1」が出る。

    CGIファイルを実行させると必ずといっていいほど、最後に「1」が表れます。 これは一体何なのでしょうか? なぜ出てくるのでしょうか? 現在以下のようなものを作成したのですが、 if条件であってたばあい、表示されたときに、1が複数出てしまって見栄えが悪いです。 これを消す方法を教えてください。 print "<TABLE CELLSPACING=1>\n"; print "<TR>\n"; print "<TD CLASS=TD1 WIDTH=100>名前</TD>\n"; print "<TD CLASS=TD1 WIDTH=100>ふりがな</TD>\n"; print "<TD CLASS=TD1 WIDTH=100>内線番号</TD>\n"; print "</TR>\n"; for ($i=0;$i<$gyou;$i++){ @log = split(/&/,$FILES[$i]); foreach(@log){ ($key,$value) = split(/=/,$_); $FORM{$key} = $value; $FORM{'SYOZOKU'} =~ s/\n$//g; } if ($searchkey eq $FORM{'SYOZOKU'}){ print &ok;} } sub ok{ print "<TR>\n"; print "<TD CLASS=TD1 HEIGHT=20>$FORM{'NAME'}</TD>\n"; print "<TD CLASS=TD1 HEIGHT=20>$FORM{'KANA'}</TD>\n"; print "<TD CLASS=TD1 HEIGHT=20>$FORM{'BANGOU'}</TD>\n"; print "</TR>\n"; } print "</TABLE>\n"; print "</BODY>\n"; print "</HTML>\n";

    • ベストアンサー
    • CGI
  • PHPとCSVでレシピサイトを作る

    こんにちは☆ PHPとCSVでレシピサイトを作ってます。 MYSQLでの構築は知識が足らないのでCSVを用いています。 まず HTMLで下記のように書いて | 略 <a href=\"deatail.php?recipe=1\">作り方</a> カレーライス|30分|★★★★ <a href=\"deatail.php?recipe=2\">作り方</a> シチュー|10分|★★☆☆ deatail.phpで $code = $_GET[\'recipe\']; $code =htmlspecialchars($code); $fp = fopen(\"recipe.csv\", \"r\"); while ($data = fgetcsv($fp, 10000)) { if ($data[0]==$code) { print <<<HTML <table> <tr> <td>$data[1]</td> <td>$data[2]</td> | 略 </tr> recipe.csvはこんな感じです ID,名前,材料,一言 1,カレーライス,玉ねぎ/にんじん/セロリ/にんにく/鶏肉,初心者でも作りやすいよ 2,シチュー food.csv ID,名前,画像, 1,玉ねぎ,<img src=\"tamanegi.gif\"/> 2,にんじん<img src=\"ninjin.gif\"/> 3,セロリ<img src=\"serori.gif\"/> 4,にんにく<img src=\"ninniku.gif\"/> 5,鶏肉<img src=\"toriniku.gif\"/> さらに玉ねぎやにんじんetcの詳細をdeatail.phpに表示させたいんですが、どのようにすればいいのか・・・ 頭が混乱してます(>_<) 一応考えてみたんですが recipe.csvの材料の所に 1,カレーライス,<a href=\"food_deatail.php?food_id=1\">玉ねぎ</a>/<a href=\"food_deatail.php?food_id=2\">にんじん</a>/セロリ/にんにく/鶏肉,初心者でも作りやすいよ <a href=\"food_deatail.php?food_id=1\">玉ねぎ</a>と書いて food_deatail.phpで $code = $_GET[\'food_id\']; $code =htmlspecialchars($code); $fp = fopen(\"food.csv\", \"r\"); while ($data = fgetcsv($fp, 10000)) { if ($data[0]==$code) { print <<<HTML <table> <tr> <td>$data[1]</td> <td>$data[2]</td> こうするしか無いのでしょうか? 何か複雑で頭がコンフューズしております 是非ご教授よろしく願います。

    • ベストアンサー
    • PHP
  • CGI アプリでjava script を動作できますか?

    下記ソースは、.cgi の一部です。 「登録完了」の部分あたりで、 <script src="http://*************"></script> を動作させたいのですが上手くいきません。 正しいやり方をご存知の方、教えてください。 宜しくお願いします。 -------------------------------------- #ヘッター &hf('初期登録受付'); print "\n<center>"if($CP); print "\n<table width=100% height=90%><tr><td align=center valign=middle>"; print "\n<table bgcolor=#EEEEEE width=550 height=30><tr><td align=center>"; print "\n<table>"; print "\n<tr>"; print "\n<td BGCOLOR=#FFCCDD STYLE=FONT-SIZE:14>($ii)■登録完了$rrr</td>"; print "\n<td STYLE=FONT-SIZE:14>&nbsp;$in{'mail'}&nbsp;</td>"; if($in{'close'} ne "off"){ print "\n<td bgcolor='#FFCCDD'><input type=\"button\" value=\"閉じる\" onClick=\"window.close()\"></td>"; }else{ print "\n<td bgcolor='#FFCCDD'><input type=\"button\" onclick=\"location = '?s=$in{'s'}&sub=$in{'sub'}&close=$in{'close'}&type=$in{'type'}'\" value=\"追加登録\"></td>"; } print "\n</tr></table>"; print "\n</td></tr></table>"; print "\n</td></tr></table>"; print "\n</center>"if($CP); print "\n</body></html>";

  • PHPコード表示について

    PHPコードが下記になっています。 文字バケを正常に表示させる方法を教えてください。 <!-- login-box[start] --> <div id="login"> <?php if (isset($_SESSION['sLoginID'])) { ?> <form action="mem_logout.php" method="post"> <table> <tr> <td>。。<font color="#6699ff" size="3">「」 <b>イ餔ホノー</b></font></td> </tr> <tr> <td>。。<?php echo htmlspecialchars($_SESSION['sNickname']); ?>、オ、・/td> </tr> <tr> <td class="sp02"><div id="login_right">・愠ー・、・鹵讀ヌ、ケ。」</div></td> </tr> <tr> <td class="sp02"><div id="login_right"><input type="submit" value="・愠ー・「・ヲ・ネ" /></div></td> </tr> </table> <input type="hidden" name="fLoginID" value="dummy" /> <input type="hidden" name="fPassword" value="dummy" /> </form> <?php } else { ?> <form name="login" action="http://www.haradagr-dp.co.jp/test/mem_check.php" method="post" onsubmit="return loginCheck()"> <input type="hidden" name="fTarget" value="<?php echo $ftarget; ?>"> <table> <tr> <td colspan="2">。。<font color="#6699ff" size="3">「」 <b>イ餔ホノー</b></font></td> </tr> <tr> <td colspan="2" align="center">、ェサ釥キエ・ヨテ讀ヌ、ケ。」<br> ID。ァtestid<br> ・ム・ケ・・シ・ノ。ァtest1234</td> </tr> <tr> <td width="80" valign="bottom" class="login_bold"> ID </td> <td valign="bottom" class="sp02"><div id="login_input"><input type="text" name="fLoginID" size="16" maxlength="16"></div></td> </tr> <tr> <td width="80" valign="bottom" class="login_bold">・ム・ケ・・シ・ノ </td> <td valign="bottom" class="sp02"><div id="login_input"><input type="password" name="fPassword" size="16" maxlength="16"></div></td> </tr> <tr> <td colspan="2" class="sp02"><div id="login_right"><input type="image" src="image/log_in.gif" alt="・愠ー・、・・ width="100" height="20" border="0"></div></td> </tr> <tr> <td colspan="2"><div id="login_right"><font size="1" color="#ea5550">「ィ・ッ・テ・ュ。シ、鰺ュク妤ヒ、キ、ニ、ッ、タ、オ、、。」</font></div></td> </tr> </table> </form> <?php } ?> </div> <!-- login-box[end] --> <br> <div class="links" align="center"> <a href="http://www.haradagr-dp.co.jp/okusuri-navi/sodan.html" target="_blank"><img src="image/bullet250.gif" width="133" height="46" border="0"></a><br> 「ャ「ャ「ャ<br> 、ェフ・フ、マ、ウ、チ、鬢ォ、・/div> <br>

    • ベストアンサー
    • PHP
  • PHPコードをHTML形式に変換

    しょっぱなからお見苦しいコードで申し訳ありません。 <table border="1"> <tr> <td>社員ID</td> <td>社員名</td> <td>部署名</td> <td>役職名</td> </tr> <?php $dsn = 'mysql:dbname=thscontest;host=localhost'; $user = 'root'; $password = ''; $dbh = new PDO($dsn, $user, $password); $sql = 'SELECT e.id, e.name, p.name AS name2, e.offtitle FROM employee e, post p WHERE e.post = p.id GROUP BY e.id'; foreach ($dbh->query($sql) as $row) { echo '<tr>'; print('<td><a href=member.php?id=' . $row['id'] . '>' . $row['id'] . '</a></td>'); print('<td>' . $row['name'] . '</td>'); print('<td>' . $row['name2'] . '</td>'); print('<td>' . $row['offtitle'] . '</td>'); echo '</tr>'; } ?> </table> このコードを表示させソース表示させますと <table border="1"> <tr> <td>社員ID</td> <td>社員名</td> <td>部署名</td> <td>役職名</td> </tr> <tr> <td><a href=member.php?id=hoge>hoge</a></td> <td>東京太郎</td> <td>hoge部署</td> <td>hoge役</td>   </tr>   <tr>[省略]</tr> </table> というHTMLのコードが出力されるわけですが このHTML形式のソースを使いたいのですが処理中に変換をかける方法はありますでしょうか? 御存知の方いらっしゃいましたらよろしくお願いします。

    • ベストアンサー
    • PHP