PHPでの画像出力について

このQ&Aのポイント
  • 初めてのPHP学習者のための画像出力の方法についての質問です。
  • XAMPPを使用している環境で、画像が正しく出力されない問題が発生しています。
  • 特定の画像ファイルを表示させるためのコードやファイルの置き場所についての指定方法を教えてください。
回答を見る
  • ベストアンサー

PHPでの画像出力について

すいません。初めてphpを勉強しているのですが下記の表記で画像が出るはずなんですが 上手く出力されません。(ブラウザfirefoxで確認していますが、画像が見つからないマーク?みたいなのが出ています) 当方XAMPPというのを使っておりまして、echo "<img src=\"K3\">";の部分を単純に文字出力 などに変えるとちゃんと文字が出ます。 出力させたい画像名はk3.jpgです。 画像の置き場所はhtdocsフォルダ内(123.php、test10.phpのファイルがある場所)でいいのですよね? どなたか分かる方いましたらよろしくお願いします。 ファイル名 123.php <FORM ACTION="test10.php" METHOD="POST"> <INPUT type="radio" NAME="ss" VALUE="se">レッド <INPUT type="radio" NAME="ss" VALUE="ch">ブルー <INPUT type="radio" NAME="ss" VALUE="pi" CHECKED>ピンク <INPUT type="submit" VALUE="並び替える"> </FORM> ファイル名 test10.php <?php $_POST['ss']; $a = $_POST['ss']; if( $a == pi ){ echo "<img src=\"K3\">"; } ?>

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

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

  • ベストアンサー
  • 4822
  • ベストアンサー率40% (4/10)
回答No.2

echo "<img src=k3.jpg />"; で駄目ならパスが間違っているかもしれません。 <img src= ここがパスです。 />

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

echo "<img src=\"K3.jpg\">"; ではなくて? それとも、 URLの最後が /K3 だったら K3.jpg にアクセスするようにサーバーが設定されているのでしょうか? あと、ここに書いてあるのは、部分的に抜き出したものですよね?これでファイル全体ではないですよね?(念の為) 確認は、ただブラウザの出力結果だけを見るのではなく、ソースを見て期待通りかどうかも確認しましょう。 Firefoxなら、firebug等の開発用アドオンを入れて詳細に確認するのもいいでしょう。 期待通りのソースになってないなら、プログラムの作り方に 期待通りなのに表示がおかしいなら、「期待するHTML」自体に 問題があることが多いです。

関連するQ&A

  • phpの初歩的な事なのですが

    すいません。プログラムを初めて勉強してまして初心者用の解説サイトをざっと読んでたのですが、 根本的な仕組みが分からりません・・。 私は自分のホームページにある写真をボタンで任意の順番に並び替え(新着順など)たいと考えています。それでまず値をの受け渡しの部分を読んでみて、以下のプログラムを書いてみたのですが・・・、 一応解説サイト通り、レッドのボタンを押すとseと表示されました。 しかし、123.phpのようにphpファイルでは困るので、これをhtmlファイルとして使うにはどうしたら 良いのでしょうか?123.htmlとしてファイルを開き、ボタンを押すとtest10.phpファイルをダウンロードしてしまいます。解説サイトは構造文などは詳しいのですが実際の使い方はほとんど書いておらず、 根本的な部分が分かりません。 とりあえず私はラジオボタンが三つあるサイトを作り、レッドのボタンを押すとAの画像、ブルーのボタンを押すとBの画像・・・が表示されるようにしたいのですが上記が分からないため先に進む事ができません。くだらない質問ですがアドバイスいただければ助かります。 (ファイル名 123.php) <FORM ACTION="test10.php" METHOD="POST"> <INPUT type="radio" NAME="ss" VALUE="se">レッド <INPUT type="radio" NAME="ss" VALUE="ch">ブルー <INPUT type="radio" NAME="ss" VALUE="pi" CHECKED>ピンク <INPUT type="submit" VALUE="並び替える"> </FORM> (ファイル名 test10.php) <?php echo $_POST['ss']; ?>

    • ベストアンサー
    • PHP
  • PHPでのCookie

    PHPでクッキーを使い、下記のような入力フォームを作りました。 form.phpで入力→form2.phpで正常出力出来るのですが、 form2.phpで一度更新しないと、結果が画面に表示されません。 これをform2.phpを開いた時点で表示されるようにするには、どのように書けばいいのでしょう。 後1つあります。form.phpで 「テスト&1」と書くと「テスト」としか表示されなく、&とそれ以降が記憶されません。 これはなぜでしょうか? お願いします。 【form.php】 <?PHP parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); ?> <html> <form method="post" action="form2.php"> <?PHP echo "名前1<input type=text name=name1 maxlength=16 size=12 value=$set_name1> <BR>ID<input type=text name=p1 maxlength=8 size=6 value=$set1><BR><BR>"; echo "名前2<input type=text name=name2 maxlength=16 size=12 value=$set_name2> <BR>ID<input type=text name=p2 maxlength=8 size=6 value=$set2>"; ?> <input type="submit" value="実行"> </form> </html> 【form2.php】 <?php if ($_POST) { $city1 = $_POST["p1"]; $city2 = $_POST["p2"]; $city_name1 = $_POST["name1"]; $city_name2 = $_POST["name2"]; setcookie ("city", "set1=$city1&set2=$city2",time()+3600*24*90); setcookie ("city_name", "set_name1=$city_name1&set_name2=$city_name2",time()+3600*24*90); } parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); echo $set_name1; echo $set1; echo $set_name2; echo $set2; ?>

    • ベストアンサー
    • PHP
  • php + javascriptで値の保持

    現在、ラジオボタンによるデータの受け渡しを調べているのですが submitボタンを使わずに、データ遷移がしたいと思い 色々やっているのですが上手く行きません。 これは実現可能なのでしょうか? <input type="radio" name="hoge" value="1" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check1; ?>> <input type="radio" name="hoge" value="2" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check2; ?>> <input type="radio" name="hoge" value="3" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check3; ?>> 上記のソースの様な感じでとりあえずやってみましたが、 「ボタンを押したら即移動」は可能なものの、value値の保持が javascript上でどうやったらいいか分かりません。 ※$check1~3は遷移後のchcked判定の変数です ※test関数においてのvalueを格納する処理が分かりません やはり無難にsubmitボタン+セッション関数等で構築した方が良いのでしょうか?

    • ベストアンサー
    • PHP
  • スマホサイトでの画像をPOST

    スマホサイトで画像アップロードのフォームを作成しています。 5つほど添付できるようにしています。 form.php <form action="./send.php" method="post" enctype="multipart/form-data" novalidate="novalidate"> 画像<br> <?php for($i = 1; $i <= 5; $i++) { echo '<input type="hidden" name="item_img_name[' .$i. ']" value="' .$_SESSION['item_img_name'][$i]. '">'."\n"; echo '<input type="file" name="item_img[' .$i. ']" id="item_img_' .$i. '" value=""><br>'."\n"; } ?> <input type="submit" value="送信"> </form> 以上の内容でフォームを作成しております。 問題なのが、サブミットした際send.phpに切り替わるのがかなり遅く大変困っています。 1つにつき2MGの画像サイズを早くPOSTさせる方法はありませんでしょうか。

    • 締切済み
    • PHP
  • phpがうまく動きません。

    phpで4択のクイズを作りたいのですが 正解のラジオボタンを選んでもカウントされないのと 答え合わせを押すと正解だった箇所を赤く表示したいのですがなんて書けばよいのか どこにそのコードを入れるのかよくわかりません <状態> ・5つのデータがmyadminに保存されています ・データベースの内容は表示されます。 ・答え合わせを押すと正解のラジオボタンを選んだ数が表示されるようにしたいです ・保存ボタンは閉じても答えを保存するためにあります ・q_noは8ケタ固定であり、左から5つ目までは固定であと3桁は999問入れられるよう設定してあります ・q_ansはデータベースに答えの値(1~4)が入れてあります ・データベース名はproblemです <省略> $res_set = mysql_query($sql); while ($row=mysql_fetch_array($res_set)){ ?> <form method="POST" action="H2102.php"> <?php echo $row['q_no'] . " "; ?> <br> <?php echo $row['q_text'] . " "; ?><br><br> <br> <?php echo "ア"; ?> <input type="radio" name="q_ans" value="1"> <?php echo $row['q_point1'] . " "; ?> <br><br><br> <?php echo "イ"; ?> <input type="radio" name="q_ans" value="2"> <?php echo $row['q_point2'] . " "; ?> <br> <br><br> <?php echo "ウ"; ?> <input type="radio" name="q_ans" value="3"> <?php echo $row['q_point3'] . " "; ?> <br><br><br> <?php echo "エ"; ?> <input type="radio" name="q_ans" value="4"> <?php echo $row['q_point4'] . " "; ?> <br><br><br> <br> <input type = "submit" name="save" value="保存"> <?php if(isset($_POST['save'])){ $_SESSION['save'] = $_POST['q_ans']; //保存すると選んだ回答を保存 } ?> <?php } ?> </form> <form method="POST" action="H2102.php"> <input type = "submit" name="ans" value="答え合わせ"> <?php //正解かどうかをチェック if(isset($_POST['ans'])){ $a = $_SESSION['a']; if($row['q_no'] == $_POST['q_no'] && $_POST['q_ans'] || $_SESSION['save'] == $row['q_ans'] ){ $_SESSION['a'] = $a + 1; //q_noが一致かつ保存した値または選んだ解答(値)が一致していれば1問につき1つカウントする $a = $_SESSION['a']; } echo $a; //カウントされているかをチェック } ?> <input type = "submit" name="del" value="カウント初期化"> <?php if(isset($_POST['del'])){ session_unset(); } ?> </form> <br> <?php } ?> 足りない情報があれば追記します

    • 締切済み
    • PHP
  • phpのpostについて

    a.phpの値をb.phpにpostしたいのですがうまく値が渡せません post元にはname属性に変数を用いているのですがpost先でnameをどのように指定したらいいかわかりません <a.php> <form action="foo.php" method="POST"> <div id="button"> <input type="submit" name ="PostGo" value="postTime" style="margin-right:30px;" /> </div> <table> <?php for ($data = 1; $data < 5; $data++) { ?> <tr><td> <select name="test<?php echo $data?>"> <option value=1>1 <option value=2>2 <option value=3>3 <option value=4>4 </select> <?php } ?> </table></form> <b.php> <?php for($i=1;$i<5;$i++){ $test =($_POST['test']);←ここの部分のpostをどう指定したらいいかわかりません echo $test; } ?> ※$_POST['test' + $i] これでも取れませんでした

    • ベストアンサー
    • PHP
  • 困っています。PHPでのC絞込み?

    簡易的なCSVファイルを作成し、それを参考に質問をしていくというHPを作成しています。 2点ほど分からないことがありましたので是非ご教授ください。 test.csvの内容は ai,bb,0 ai,cc,0 au,bb,1 au,dd,1 ao,aa,0 ao,cc,0 ao,dd,0 ao,gg,0 とあります。 最初のページ(test1.php)で・ai ・au ・aoを選ぶページをつくます。 (1) CSVファイルを使用して aiを選択した場合、次のページ(test2.php)での選択肢が・bb ・cc 同様に・auの場合、選択肢は・bb ・dd ・aoの場合、選択肢は・aa ・cc ・dd ・ggと表示したいです。 (2) さらに次のページで CSVを見て 0の場合は(test3.php) 1の場合は(test4.php)と移動したいです。 (1)の方は一応できたのですがプログラムの書き方が適切なのかが不安の為 もっと効率のよい書き方があれば教えてください。 test1.phpはhtmlのみのプルダウンなので略。 test2.phpでの自分の書き方は <form action=●●.php method=POST> <input type=hidden name=test1 value=<?php echo"".$_POST[test1].""?>> <?php $file=file("test.csv");  for($i=0;$file[$i]; $i++){   $data=explode(",",$file[$i]);   if(($_POST[test1]=="ai")&&($data[0]=="ai")){    echo"<input type=radio name=test2 value=".$data[1].">".$data[1]."<br>"; }elseif(($_POST[test1]=="au")&&($data[0]=="au")){ echo"<input type=radio name=test2 value=".$data[1].">".$data[1]."<br>"; }elseif(($_POST[test1]=="ao")&&($data[0]=="ao")){ echo"<input type=radio name=area value=".$data[1].">".$data[1]."<br>"; } } ?> <input type=submit value="次へ"> (2) ●●.phpを新たに作成して そこでincludeかrequireを使用してtest3.phpかtest4.phpに移動 するプログラムを作成しているのですが、うまく移動しません。 案がありましたら是非ご教授ください。 まだプログラムを勉強中なので少し解説をつけていただくとうれしいです。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHPでのクッキー

    PHPでクッキーを使い、下記のような入力フォームを作りました。 form.phpで入力→form2.phpで正常出力出来るのですが、 直接form2.phpへ飛ぶと、クッキーの値がなくなってしまいます。 setcokkieが、何の値もないのを上書きしていることは理解できるのですが、これを上書きせず回避?する方法はありますでしょうか? よろしくお願いします。 【form.php】 <?PHP parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); ?> <html> <form method="post" action="form2.php"> <?PHP echo "名前1<input type=text name=name1 maxlength=16 size=12 value=$set_name1> <BR>ID<input type=text name=p1 maxlength=8 size=6 value=$set1><BR><BR>"; echo "名前2<input type=text name=name2 maxlength=16 size=12 value=$set_name2> <BR>ID<input type=text name=p2 maxlength=8 size=6 value=$set2>"; ?> <input type="submit" value="実行"> </form> </html> 【form2.php】 <?php $city1 = $_POST["p1"]; $city2 = $_POST["p2"]; $city_name1 = $_POST["name1"]; $city_name2 = $_POST["name2"]; setcookie ("city", "set1=$city1&set2=$city2",time()+3600*24*90); setcookie ("city_name", "set_name1=$city_name1&set_name2=$city_name2",time()+3600*24*90); parse_str($_COOKIE["city"]); parse_str($_COOKIE["city_name"]); echo $set_name1; echo $set1; echo $set_name2; echo $set2; ?>

    • ベストアンサー
    • PHP
  • 文字が1バイト分しか出力されない

    よろしくお願いします。 フォームから取得したデータをもとにメッセージを作成し、それを出力させたいと思っています。 サンプルデータを作りました。 ==サンプルここから============================ <?php if($_POST['q1'] != ""){ for($j=1;$j<4;$j++){ $q[$j] = $_POST['q'.$j]; if($q[$j] == "2"){ $q2[$j] = "bad"; }elseif($q[$j] == "4"){ $q2[$j] = "ok"; }elseif($q[$j] == "6"){ $q2[$j] = "good"; } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>テスト</title> </head> <body> <?php for($i=1;$i<4;$i++){ echo $q2[$i]."<br />"; } ?> <form action="testtest.php" method="post"> <input type="radio" name="q1" value="2" />2 <input type="radio" name="q1" value="4" />4 <input type="radio" name="q1" value="6" />6<br /> <input type="radio" name="q2" value="2" />2 <input type="radio" name="q2" value="4" />4 <input type="radio" name="q2" value="6" />6<br /> <input type="radio" name="q3" value="2" />2 <input type="radio" name="q3" value="4" />4 <input type="radio" name="q3" value="6" />6<br /> <input type="submit" value="送信" /> </form> </body> </html> ==サンプルここまで============================ このフォームをtesttest.phpで保存して実行すると、フォームから送られたデータを元に「bad」「ok」「good」のいずれかが表示されなければならないのですが、先頭の一文字である「b」「o」「g」しか出力されません。 「bad」「ok」「good」を日本語にすると、文字化けが起きるので、1バイト分しか出力されていないのではないか?と素人ながらに考えております。 サーバーによってはうまくできることもあり、サーバーのせいかな?とも思っていますが、何か回避策をご存じの方がいらっしゃいましたら、ご教授いただけると幸いです。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 二つのPHPファイルを上手く一つにしたいのですが

    ラジオボタンABCDを選択して上のNEXTボタンを押したとき、回答をSESSIONの配列に蓄えつつ次の問題へ進みたいのですがなかなか上手くいきません。 助けて頂けると嬉しいです。 ちなみに上のtest.phpでは問題を進んだり戻ったりの表示ができ、下のsession.phpではSESSION配列にクリックした分の回答を格納することができます。 //test.php <?php session_start(); ?> <html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <body> <p>&nbsp;</p> <p> <?php $max=$_POST["next"]; if($max==null){ $max=1; }else{ $max++; } ?> </p> <p>&nbsp; </p> <form method="post" action="test.php"> <input TYPE="radio" NAME="name2" VALUE="1" CHECKED>ア <input TYPE="radio" NAME="name2" VALUE="2">イ <input TYPE="radio" NAME="name2" VALUE="3" CHECKED>ウ <input TYPE="radio" NAME="name2" VALUE="4">エ <input type="submit" name="max_1" value="Next"> <input type="button" value="最初から" onClick="location.href='test.php'"> <input type="button" value="Back" onClick="history.back()"> <input type="hidden" name="next" value="<?php print $max?>"> </form> <TEXTAREA readonly cols="100" rows="20" name="e"> <? mb_language("uni"); mb_internal_encoding("utf-8"); //内部文字コードを変更 mb_http_input("auto"); mb_http_output("utf-8"); $db=mysql_connect("localhost","接続ID","パスワード"); mysql_query("SET NAMES utf8",$db); //クエリの文字コードを設定 mysql_select_db("データベース名"); //データベースに接続 if (!$con = mysql_connect("localhost", "接続ID", "パスワード")) { echo "接続失敗" ;   exit ; } //データベースを選択 if (!mysql_select_db("データベース名", $con)) { echo "データベース選択失敗" ;   exit ; } $sikenbango=111; $mondaibango=$max; if (!$res = mysql_query("SELECT * FROM `MONDAI` WHERE SIKENBANGO='$sikenbango' AND MONDAIBANGO='$mondaibango'",$con)) { echo "SQL失敗<BR>" ;   exit ; } //検索した結果を全部表示 while ($row = mysql_fetch_array($res)) { echo $row["mondai"]; echo $row["kaito"]; echo "<BR>" ; } //結果セットの開放 mysql_free_result ($res) ; //データベースから切断 mysql_close($con) ; ?> </textarea> //session.php <?php session_start(); ?> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php if (!isset($_SESSION['answer'])) { $_SESSION['answer'] = array(); } if (isset($_POST['submit'])) {//クリックしたとき $qno = intval($_POST['qno']);//整数が入る if (($qno >= 1)and($qno <=80)) { $_SESSION['answer'][$qno] = $_POST['answer']; // セッションに追加 // データベースへも保存したければここに記述 } } else { $qno = 0; } if ($qno == 80) { print "<pre>"; print_r($_SESSION); print "</pre>"; } else { $qno++; print '<form action="session.php" method="post">' . PHP_EOL; print '<input type="hidden" name="qno" value="' . $qno . '" />' ; print '<input TYPE="radio" NAME="answer" VALUE="1" CHECKED>A'; print '<input TYPE="radio" NAME="answer" VALUE="2">B'; print '<input TYPE="radio" NAME="answer" VALUE="3" CHECKED>C'; print '<input TYPE="radio" NAME="answer" VALUE="4">D'; } print '<input type="submit" name="submit" value="NEXT">' . PHP_EOL; print '</form>' . PHP_EOL; print "<hr />"; print "<pre>"; print_r($_SESSION); print "</pre>"; ?>

    • 締切済み
    • PHP

専門家に質問してみよう