0

新しいCookieが設定されるたび、またはユーザーがログインおよびログアウトするたびに、フォルダー内の約100枚の画像から5枚の画像を表示できるようにしようとしています。私はすでにJavaScriptを使用して曜日に基づいて異なる画像を表示しようとしましたが、本当に欲しいのは、ユーザーがログインおよびログアウトするたびに変更されるリンクが添付された5つの画像を一度に表示する方法ですか? 誰かが私を書き込み方向に向けることができますか、私はphpが初めてなので、コードの最小の例でも役に立ちますありがとう。

日付に基づいて画像を表示する JavaScript コードを次に示します。これが役立つかどうかわかりません。

<script type="text/javascript" language="JavaScript">
var now = new Date ();
var day = now.getDay();
//the week begins on SUNDAY
if(day == 0) document.write("<p><a href='YOUR-LINK-HERE'><img src='../PTB1/data/adverts/ad0.png' alt='sunday' width='180' height='180' border='0'></a></p><p><a href='YOUR-LINK-HERE'><img src='../PTB1/data/adverts/ad0.png' alt='sunday' width='180' height='180' border='0'></a></p>");
if(day == 1) document.write("<a href='YOUR-LINK-HERE'><img src='../PTB1/data/adverts/ad1.png' alt='monday' width='180' height='180' border='0'></a>");
if(day == 2) document.write("<a href='YOUR-LINK-HERE'><img src='../PTB1/data/adverts/ad2.png' alt='tuesday' width='180' height='180' border='0'></a>");
if(day == 3) document.write("<a href='YOUR-LINK-HERE'><img src='../PTB1/data/adverts/ad3.png' alt='wednesday' width='180' height='180' border='0'></a>");
if(day == 4) document.write("<a href='YOUR-LINK-HERE'><img src='../PTB1/data/adverts/ad4.png' alt='thursday' width='180' height='180' border='0'></a>");
if(day == 5) document.write("<a href='YOUR-LINK-HERE'><img src='../PTB1/data/adverts/ad5.png' alt='friday' width='180' height='180' border='0'></a>");
if(day == 6) document.write("<a href='YOUR-LINK-HERE'><img src='../PTB1/data/adverts/ad6.png' alt='saturday' width='180' height='180' border='0'></a>");
</script>
4

3 に答える 3

1

一連の既知の画像から 5 つのランダムな画像を表示したい場合、これが最善の方法です

$imagepool=array('path1.jpg','path2.jpg', ..... ,'path100.jpg');
for($i=0;$i<5;$i++){
  $randid=floor(rand(0,100));
  echo '<a href="#"><img src="'.$imagepool[$randid].'"></a>';
}

または、これらすべての画像にその命名スキームがあり、それらが順番に並んでいる場合は、画像のリストを定義する必要はありません:

for($i=0;$i<5;$i++){
  $randid=floor(rand(0,100));
  echo '<a href="#"><img src="/path/to/image_'.$randid.'.jpg"></a>';
}
于 2012-11-02T16:44:13.710 に答える
0
<script type="text/javascript" language="JavaScript">
var now = new Date ();
var day = now.getDay();
var images = new Array(7);
var weekday=new Array(7);
images[0] = '../PTB1/data/adverts/ad0.png';
images[1] = '../PTB1/data/adverts/ad1.png';
images[2] = '../PTB1/data/adverts/ad2.png';
images[3] = '../PTB1/data/adverts/ad3.png';
images[4] = '../PTB1/data/adverts/ad4.png';
images[5] = '../PTB1/data/adverts/ad5.png';
images[6] = '../PTB1/data/adverts/ad6.png';
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
weekday[3]="Wednesday";
weekday[4]="Thursday";
weekday[5]="Friday";
weekday[6]="Saturday";
document.write("<p><a href='YOUR-LINK-HERE'><img src='"+images[day]+"' alt='"+weekday[day]+"' width='180' height='180' border='0'></a></p>");
</script>
于 2012-11-02T16:59:19.570 に答える
0

date()strtotime( )を使用して、PHP でも 5 つのリンク/画像を実現できると思います。

<?php
$today = strtotime("today");
$today = date('w',$today);
if ($today==0) echo '<a...><img.../></a>';
if ($today==1) echo '<a...><img.../></a>';
//etc...

ランダムにしたい場合は、ログイン時に PHP で$_SESSION変数を設定して、5 つの画像を変数として保持できると確信しています。ログアウトして再度ログインすると、変数が変更され、5 つの新しい画像/リンクが表示されます (探しているものは何でも)。

これがあなたができることです。変数の php ファイルと、ログインを処理するための php ファイルを作成します。

<?php
    //variables page
    $your_link_array = array("GOOGLE" => "http://www.google.com","Stackoverflow" => "http://www.stackoverflow.com", "Youtube" => "http://www.youtube.com"); //three as an example, but you should make a lot if you want to pull five each time.
    ?>

    <?php 
    //log in page

    if($login=='success'){ //check username/password etc.
      session_start(); //log in successful
      $_SESSION['links'] = array_rand($your_link_array, 5); //pull 5 random variables from your array of links
    }
    ?>

    <?php
    //any other page that has session_start() at the beginning:
    session_start()
    foreach($_SESSION['links'] as $k => $v){ // show the five random links
      echo '<a href="'.$k.'" />'.$v.'</a>';
    } 
    ?>

その他のリソース: array_randforeach

于 2012-11-02T16:59:33.827 に答える