• 締切済み

PHPで以下のような占いプログラムを作るには

 PHPを使って以下のような占いプログラムを組みたいのですが、なかなか思うようにいきません。部分的でもいいので、どう記述すればいいのか教えてください。 1,名前をテキストボックスに入力し、血液型をラジオボタンで選択後、送信ボタンを押す 2,入力した名前と血液型を表示し、占いの結果(大吉・中吉・小吉・凶のいずれかの画像)を表示。その下に各運勢に対応したメッセージと今日の日付、ラッキーナンバー、ラッキーカラーを表示 3,日付が変わるまで、同じ血液型を選択した場合は上記の結果が変わらない (A型を選んで大吉が出た場合、日付が変わるまでは何度やっても大吉が出る)  フォームから受け取った名前の表示くらいはすぐに分かったんですが・・・・・・配列を使えばいいんでしょうか?  ちなみに画像などの素材はすでに用意できています。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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の引数に関しては適当に工夫してください

rusya
質問者

補足

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

すると、全ての回答が全文表示されます。

関連するQ&A