電子書籍の厳選無料作品が豊富!

 PHPを使って以下のような占いプログラムを組みたいのですが、なかなか思うようにいきません。部分的でもいいので、どう記述すればいいのか教えてください。

1,名前をテキストボックスに入力し、血液型をラジオボタンで選択後、送信ボタンを押す
2,入力した名前と血液型を表示し、占いの結果(大吉・中吉・小吉・凶のいずれかの画像)を表示。その下に各運勢に対応したメッセージと今日の日付、ラッキーナンバー、ラッキーカラーを表示
3,日付が変わるまで、同じ血液型を選択した場合は上記の結果が変わらない
(A型を選んで大吉が出た場合、日付が変わるまでは何度やっても大吉が出る)

 フォームから受け取った名前の表示くらいはすぐに分かったんですが・・・・・・配列を使えばいいんでしょうか?
 ちなみに画像などの素材はすでに用意できています。

A 回答 (1件)

rand()とsrand()の組み合わせになるでしょう。


http://jp.php.net/manual/ja/function.rand.php
http://jp.php.net/manual/ja/function.srand.php

日付によりランダム値を固定するために
日付のIDをとります。
本日の0時現在のUNIX時間を取るのがわかりやすいので
こんなかんじ
$dateid=date(mktime(0,0,0,date("m"),date("d"),date("Y")));

血液型は$_GET["blood"]でえられるとして血液型IDとして
$bloodidをとるとするとsrand($dateid+$blood)すれば、
日付けと血液型が一致すると一定のランダム値を返します。

総じてこんな感じで・・・
<?PHP
$uranai=Array("大吉","中吉","小吉","凶");
switch ($_GET["blood"]){
case "o":
$bloodid++;
case "a":
$bloodid++;
case "b":
$bloodid++;
default:
$bloodid++;
}
$dateid=date(mktime(0,0,0,date("m"),date("d"),date("Y")));
srand($dateid+$bloodid);
$randval = rand(0,3);
print $uranai[$randval];
?>

srandの引数に関しては適当に工夫してください

この回答への補足

 回答ありがとうございます。
 参考にさせていただいたところどうにか動くものを作れたんですが、日付が変わってもう一度動かしてみたらA・B・O・ABで同じ結果になるものが出てしまいました・・・・・・。これはどんな原因が考えられるんでしょう?

補足日時:2006/09/10 02:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!