ttp://www.mac68k.com/viewtopic.php?topic=47&forum=8&12
こちらを利用させてもらおうとしたのですが、エラーになってしまいます。
(最初のも2ページ目の改造版?も)
22行目にエラーがあるようですが…php初心者なのでさっぱりわかりません。動くようにするにはどうすればいいでしょうか?サーバーのバージョンPHP 4.3.3です。
http://php.s3.to/man/function.getimagesize.html
getimagesize
エラーメッセージがわからないので、予想です。
たぶんphpのコンパイル時に--with-gdでconfigureが通っていないので、getimagesize()が未定義になっていると考えられます。
どんなエラーがでてました?
print ”<p><img src=”images/$num.jpg” $size[3]>
”;
が間違いで”〜”内にある”がエスケープされていないからかと。
正:
print ”<p><img src=¥”images/$num.jpg¥” $size[3]>
”;
ありがとうございます。
¥つけてみたんですけど…やっぱりエラーは変わらずです。
確かに実行してみると、
Parse error: parse error, unexpected T_STRING in /www/junlab/test.php on line 22
というエラーが出ました。
これは22行目のprint文内でIMGタグ内の「”」をエスケープしていないために起こります。そこで「”」を「¥”」と書き換えてやると正しく動作するようです。
ありがとうございます。ポイント切れで見るのが遅くなりました。
的が外れてました。
print ”<p><img src=”images/$num.jpg” $size[3]>
”;
を
print ”<p><img src=¥”images/$num.jpg¥” $size[3]>
”;
または
print ”<p><img src=images/$num.jpg $size[3]>
”;
print ”<p><img src=¥”images/”.$numi.”.jpg¥” ”.$size[3].”>
”;
で直るでしょう。
数箇所変更しました。
<?php
$num = $_GET[’num’]; <---追加
echo $num;
?>
中の””を取り除く
print ”<p><img src=images/$num.jpg $size[3]>
”;
以下が変更後のソースです。
参考URLにおいておきました。
ソースファイル
<head>
<title>画像ビュー</title>
</head>
<body bgcolor=”#FFFFFF”>
<center>
<table width=”400”><tr><td bgcolor=blue align=center>
<font color=white>画像ビュー
<?php
$num = $_GET[’num’];
echo $num;
?>
</font>
</td></tr>
<tr><td align=center>
<?php
$size = getimagesize (”images/$num.jpg”);
print ”<p><img src=images/$num.jpg $size[3]>
”;
?>
</td></tr></table>
<a href=”index.html”>もどる</a>
</center>
</body>
</html>
ありがとうございます。
画像ビューという文字などページは表示されるのですが、またエラーです。
Warning: getimagesize(images/.jpg): failed to open stream: No such file or directory in /var/www/home/(サーバー)/public_html/view.php on line 17
回答2の質問/コメントから推測すると、print・・・となっているので、1ページ目のview.php(view2.phpの方ではなくて←echoを使用)の22行目にエラーがあると考えてよろしいでしょうか。
22行目は、</body> タグの辺りでしょうか。
となると、ファイルの編集時に、余計な制御文字などが混入した可能性があると思います。改行コードとか、見えない文字(空白など)が悪さしていませんか?
WindowsとUnix間で(Shift-JISとEUC間で)データを受け渡す時、変なコードが混入しがちですので、FTPなどで、ファイルをローカルに持ってきて、バイナリーエディターで覗いてみると良いのではないかと思います。
それでだめな場合は、1行ずつ、あるいは、1単語ずつ
文字を削って、エラーチェックをし、また元に戻す、という地道な作業で、原因を絞り込むのが早いと思います。
参考として、PHPのFAQページを載せておきます・・・
ありがとうございます
イメージファイルは、正しい場所に置かれていますでしょうか?
/var/www/home/(サーバー)/public_html/images/1.jpg
/var/www/home/(サーバー)/public_html/images/2.jpg
/var/www/home/(サーバー)/public_html/images/3.jpg
ファイルの置かれる位置は以下のようになります。
public_html/
|
+view.txt
|
+images/
|
+1.jpg
+2.jpg
+3.jpg
ファイルの位置は大丈夫だと思います。
確認しました。viewは.txtで動くのですか!?
.phpに変えたんですけど…だから駄目なんでしょうか?
http://jp.php.net/manual/ja/print/index.php
PHP: - Manual
3番目でも回答させて頂いた者です。
前回は何を行うスクリプトかよく確認していなかったのですが、これは「指定された番号を
名前に持つjpegファイルを表示させるスクリプト」という認識でよろしいのでしょうか?
以下に流れが分かりやすいように同じことをするスクリプトを書きましたので、
ご参考になさってください。
# はてなの仕様上、「¥」「”」「’」が全角文字になってしまっているようなので、
# それぞれを半角に置換した後にview.phpとして保存して実行してください。
<html>
<head><title>画像ビュー</title></head>
<body>
<?php
// 「
」の様にデータが送られてきているかどうかのチェック
if(isset($_GET[’num’]))
{
$rawnumber=$_GET[’num’]; // numとして送られてきた生のデータを$rawnumberに代入
print ”<p>numとして’$rawnumber’が送られました(view.php?num=$rawnumber)。</p>”; // デバグ(確認)用
$number=(int)$_GET[’num’]; // 送られてきたデータを整数として$numberに代入
print ”<p>’$rawnumber’は’$number’として解釈します。</p>”; // デバグ(確認)用
$filename=”images/$number.jpg”; // ファイル名のセット(view.php?num=1ならimage/1.jpg)
print ”<p>表示させる画像のファイル名は’$filename’です。</p>”; // デバグ(確認)用
// 画像が存在するかどうかのチェック
if(is_file($filename))
{
$size=getimagesize($filename); // 画像のサイズを取得する
print ”<p>この下に画像が表示されている筈です。</p>”; // デバグ(確認)用
print ”<p><img src=’$filename’ $size[3]></p>”; // imgタグの出力
}
else
{
print ”<p>画像ファイル’$filename’が存在しません。</p>”;
}
}
else
{
// 「
」とかnumが指定されていない場合
print ”<p>numという名前のデータは送られてきていません。</p>”; // デバグ(確認)用
// 規定の一覧の表示
print ”<p><a href=’view.php?num=1’>画像その1</a>(リンク先はview.php?num=1)</p>”;
print ”<p><a href=’view.php?num=2’>画像その2</a>(リンク先はview.php?num=2)</p>”;
print ”<p><a href=’view.php?num=3’>画像その3</a>(リンク先はview.php?num=3)</p>”;
}
?>
</body>
</html>
ちなみに5番目のozonepapaさんのご回答に対するコメントでのエラーは「view.php」をブラウザ
で開くときにnumを指定していなかったため$numが空になってしまっていて表示されていますので
「view.php?num=1」の様に指定してやれば正しく動作します。(スクリプト自体は問題ありません。)
それではこのスクリプトがkorokuroさんのお役に立てれば幸いです。
picoline様、皆様ありがとうございました。
表示されました!
ありがとうございます。
Parse error: parse error in /var/www/home/(サーバー).php on line 22
このようなエラーでした。