• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:外部PHPファイルをHTMLに呼び出しでランダム・・・)

HTMLでランダムな画像リンクを表示する方法とは?

このQ&Aのポイント
  • 外部のPHPファイルをHTMLで呼び出してランダムな画像リンクを表示したい場合、関連性を持たせるためにはどのような方法があるのでしょうか?また、この仕様が可能かどうかも知りたいです。
  • 目的は、HTMLのみを使用してサーバ上でランダムな画像リンクを表示することですが、この実装には難しさがあります。何かアドバイスや解決策があれば教えてください。
  • 外部のPHPファイルをHTMLに呼び出してランダムな画像リンクを表示する方法について詳しく教えてください。関連性を持たせる方法や、この仕様が実現可能かどうかも知りたいです。

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

  • ベストアンサー
回答No.3

回答番号No.2のMocchi113です。 実はこのOKWAVE、ZIP圧縮ファイルが添付できないことが、投稿後にわかってしまいました。。。すみません。 というわけなので、Cookieまわりのサンプルコードをここに載せておきます。画像は適当に、GDライブラリを使って出力しました。 ------index.html------ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Sample</title> </head> <body> <h1>Sample</h1> <p><a href="links.php"><img src="images.php" alt="random" /></a></p> </body> </html> ------images.php------ <?php header("content-type: image/png"); setcookie('hogehoge', 'fugafuga'); $image = imagecreate(100,100); $back = imagecolorallocate($image, 0, 0, 0); $red = imagecolorallocate($image, 255, 0, 0); imagepolygon( $image, array( 10, 80, 80,80, 80, 10 ), 3, $red ); imagepng($image); imagedestroy($image); ?> ------links.php------ <?php echo $_COOKIE['hogehoge']; ?>

その他の回答 (2)

回答No.2

結論から言いますが、できます。 セッションを使う方法が出ていますが、Coockieを使う方法もありです。 今回はこの方法を説明します。 HTMLファイルがレンダリングする際、image.phpは呼び出されますが、link.phpは呼び出されません。link.phpはリンクをクリックすると呼び出されます。この時間差を今回はうまく使うことにしましょう。 image.phpでCoockieを発行するようにします。すると、htmlのレンダリング時点で、このCookieはウェブブラウザに保存されます。ユーザがリンクをクリックしてlink.phpを呼び出すとき、このCoockieも同時にサーバに送信されるので、link.phpでCookie情報を利用して、動的にHTMLを出力したり、PHPのredirectで別ページに飛ばすこともできます。 さてCoockieの中身ですが、「http://」を除いたURLでもよいですし、もし画像とURLはペアになっているので、このペアにIDをつけたら、そのIDでもかまわなくなります。それはあなたの作り方次第ですね。 とまぁ、こんな感じです。 サンプルを添付しておきますね。サンプルはFirefox 3.0、Opera9.0、Internet Explorer 6.0、8.0で動作確認済みです。といっても、image.phpでCookieを送って、link.php呼び出し時にそのCookieを画面に出力しているだけなんですけど。 私も今回、src呼び出しの画像でCookieが送信&ブラウザで保存できることがわかって、とっても有益でした。お互い頑張っていきまっしょい!!

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

そりゃ、バラバラなプログラムならバラバラになるでしょう。 そのままのHTML記述のまんまでURLとimageを連携させたいのであれば、 リンクと画像ファイル名を紐付けするようなロジックを書けばいいだけです。 例えば、 link.php内で、ランダムに選んでSESSIONに保存させておく。 image.phpでSESSIONを読んで関連する画像を表示させる。 あくまでも例えばね ---link.php $_SESSION['image'] = rand(1,100); --- ---image.php $imageFileName = $_SESSION['image'].".jpeg" --- みたいな感じ。 ただし、上記のソースをそのまま丸ごとコピーしても動きません。 Session関連の使い方を リファレンスマニュアルを熟読して利便性と危険性を理解してから使ってください。

関連するQ&A