phpについて質問です。

ttp://www.mac68k.com/viewtopic.php?topic=47&forum=8&12
こちらを利用させてもらおうとしたのですが、エラーになってしまいます。
(最初のも2ページ目の改造版?も)
22行目にエラーがあるようですが…php初心者なのでさっぱりわかりません。動くようにするにはどうすればいいでしょうか?サーバーのバージョンPHP 4.3.3です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/06/30 22:01:16
  • 終了:--

回答(8件)

id:tahishi No.1

tahishi回答回数30ベストアンサー獲得回数02004/06/30 22:25:42

ポイント6pt

エラーメッセージがわからないので、予想です。

たぶんphpのコンパイル時に--with-gdでconfigureが通っていないので、getimagesize()が未定義になっていると考えられます。

どんなエラーがでてました?

id:korokuro

ありがとうございます。

Parse error: parse error in /var/www/home/(サーバー).php on line 22

このようなエラーでした。

2004/06/30 23:29:16
id:banzo No.2

banzo回答回数36ベストアンサー獲得回数02004/06/30 22:47:47

ポイント6pt

print ”<p><img src=”images/$num.jpg” $size[3]>

”;

が間違いで”〜”内にある”がエスケープされていないからかと。

正:

print ”<p><img src=¥”images/$num.jpg¥” $size[3]>

”;

id:korokuro

ありがとうございます。

¥つけてみたんですけど…やっぱりエラーは変わらずです。

2004/06/30 23:33:25
id:picoline No.3

picoline回答回数17ベストアンサー獲得回数02004/06/30 23:14:31

ポイント6pt

確かに実行してみると、

Parse error: parse error, unexpected T_STRING in /www/junlab/test.php on line 22

というエラーが出ました。

これは22行目のprint文内でIMGタグ内の「”」をエスケープしていないために起こります。そこで「”」を「¥”」と書き換えてやると正しく動作するようです。

id:korokuro

ありがとうございます。ポイント切れで見るのが遅くなりました。

2004/07/02 16:11:58
id:tahishi No.4

tahishi回答回数30ベストアンサー獲得回数02004/06/30 23:35:59

ポイント6pt

的が外れてました。

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].”>

”;

で直るでしょう。

id:ozonepapa No.5

ozonepapa回答回数288ベストアンサー獲得回数02004/06/30 23:48:49

ポイント30pt

数箇所変更しました。

<?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>

id:korokuro

ありがとうございます。

画像ビューという文字などページは表示されるのですが、またエラーです。

Warning: getimagesize(images/.jpg): failed to open stream: No such file or directory in /var/www/home/(サーバー)/public_html/view.php on line 17

2004/07/02 16:20:13
id:mina_blue No.6

mina_blue回答回数14ベストアンサー獲得回数02004/07/01 00:45:00

ポイント6pt

回答2の質問/コメントから推測すると、print・・・となっているので、1ページ目のview.php(view2.phpの方ではなくて←echoを使用)の22行目にエラーがあると考えてよろしいでしょうか。

22行目は、</body> タグの辺りでしょうか。

となると、ファイルの編集時に、余計な制御文字などが混入した可能性があると思います。改行コードとか、見えない文字(空白など)が悪さしていませんか?

WindowsとUnix間で(Shift-JISとEUC間で)データを受け渡す時、変なコードが混入しがちですので、FTPなどで、ファイルをローカルに持ってきて、バイナリーエディターで覗いてみると良いのではないかと思います。

それでだめな場合は、1行ずつ、あるいは、1単語ずつ

文字を削って、エラーチェックをし、また元に戻す、という地道な作業で、原因を絞り込むのが早いと思います。

参考として、PHPのFAQページを載せておきます・・・

id:korokuro

ありがとうございます

2004/07/02 16:20:42
id:ozonepapa No.7

ozonepapa回答回数288ベストアンサー獲得回数02004/07/02 23:44:01

ポイント6pt

イメージファイルは、正しい場所に置かれていますでしょうか?

/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

id:korokuro

ファイルの位置は大丈夫だと思います。

確認しました。viewは.txtで動くのですか!?

.phpに変えたんですけど…だから駄目なんでしょうか?

2004/07/02 23:53:36
id:picoline No.8

picoline回答回数17ベストアンサー獲得回数02004/07/03 02:23:47

ポイント60pt

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さんのお役に立てれば幸いです。

id:korokuro

picoline様、皆様ありがとうございました。

表示されました!

2004/07/03 06:19:41

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません