#!/usr/bin/perl # ↑一行目のパスはサーバーによって違います。サーバに合わせて変更してください。 # このperlは、perl4に対応していません。 # # ------------------------------------------------------------- # # ローマ字なまえ相性占い ver1.2 # 2000/06/18 by Mamiko.S(http://www.nmt.ne.jp/~mamiko/) # 2000/06/24 Edit by Tor World (http://www.torworld.com/) # 2004/05/01 L-mode、EzWeb、AirH"Phone、Dot-i に対応 # # 著作権表示は絶対に消さないで使ってください。 # このプログラムを用いた結果、利用者に万一何らかの損害が生じても作者は責任を負えません。 # スクリプトの再配布や有償で他人に設置するといった行為は固く禁じます。 # # ------------------------------------------------------------- # タイトル $title = "出会いLOVEのローマ字名前相性占い 恋愛編"; # 戻りたいページのURL $back = "http://www.p-deai.net/top.html"; #タイトルの文字色 $t_color = "#FF0000"; #目次の文字色 $f_color = "#9999FF"; # BODYタグ $bground = ""; $bgcolor = "#FFFFEC"; $text = "#3333FF"; $link = "#6666FF"; $vlink = "#9999FF"; $alink = "#FF0000"; # テーブル色 $table_color = "#CCCCFF"; # -------------------(初期設定ここまで)------------------ $script_name = $ENV{'SCRIPT_NAME'}; # --- 占いの実行 @love =(['B','A','E','D','A','F','B','B','E'],['E','C','C','B','D','A','D','C','D'],['D','F','D','E','A','B','E','C','C'],['A','C','F','D','F','E','F','E','F'],['F','D','A','C','C','E','A','D','B'],['A','E','B','E','B','A','C','F','D'],['F','C','B','F','D','B','E','D','A'],['B','E','A','C','C','D','B','E','F'],['A','C','F','D','F','B','E','A','C']); %mystery = ('a' => '10','b' => '11','c' => '5','d' => '21','e' => '9', 'f' => '1','g' => '12','h' => '6','i' => '17','j' => '14', 'k' => '16','l' => '0','m' => '13','n' => '19','o' => '4', 'p' => '22','q' => '0','r' => '15','s' => '2','t' => '7', 'u' => '3','v' => '0','w' => '8','x' => '0','y' => '20', 'z' => '18'); # 入力データの取得 if($ENV{'REQUEST_METHOD'} eq 'GET') { $query_string=$ENV{'QUERY_STRING'}; }else{ read(STDIN, $query_string,$ENV{'CONTENT_LENGTH'}); } &qs; &furiwake; if ($qs{'ACTION'} eq 'execute'){ if(!$qs{'GIRL'} || !$qs{'BOY'}){ &error('入力エラー','記入漏れがあります。女性、または男性のお名前をローマ字で入力してください。'); } &fortune;&result;&output;} else{&form;} exit 0; # --- 占い実行 sub fortune{ $girl = 0; $girl_sum = 0; $girl_ = 0; $boy = 0; $boy_sum = 0; $boy_ = 0; #初期値設定 $len = length($qs{'GIRL'}); for($i = 0; $i < $len; $i++){ $str = substr($qs{'GIRL'},$i,1); $girl_sum = $girl_sum + $mystery{$str}; # $girl_sumにgirl配列のすべての数字を足した数が入る #print "GIRL[$i]($str) = $mystery{$str}
"; } #print "GIRL(合計) = $girl_sum
"; $girl = $girl_sum; while(1 < length($girl)){ for($h = 0; $h < length($girl); $h++){ $girl[$h] = substr($girl,$h,1); $girl_ = $girl_ + $girl[$h]; } $girl = $girl_; # girlにgirl_の値を代入。 $girl_ = 0; } $len = length($qs{'BOY'}); for($i = 0; $i < $len; $i++){ $str = substr($qs{'BOY'},$i,1); $boy_sum = $boy_sum + $mystery{$str}; #print "BOY[$i]($str) = $mystery{$str}
"; } $boy = $boy_sum; while(1 < length($boy)){ for($h = 0; $h < length($boy); $h++){ $boy[$h] = substr($boy,$h,1); $boy_ = $boy_ + $boy[$h]; } $boy = $boy_; # boyにboy_の値を代入。 $boy_ = 0; #print "BOY = $boy
"; } $love = $love[$boy-1][$girl-1]; # loveに結果が入る } # --- 占い結果 sub result{ if($love eq 'A'){ $head = '2人はベストカップルです!'; $result1 = "これ以上の組み合わせは考えられないほどの最高の相性です!お互いが相手のことを大切で必要な存在だと強く感じ、人間的にも尊敬し合えるニ人です。周りからも祝福されて、うらやましがられるほどのお似合いなカップルです。"; $result2 = "もうお二人はすでに仲良しなのでは?だけどもっと仲良くなりたい場合は、いっしょにできることをやってみましょう。二人で飲み会の幹事をやったり、同じ目標を持って勉強したりスポーツしたり・・・。そうしたら少しずつ、お互いの存在がなくてはならないものに変化していくでしょう。"; $result3 = "思い切ってあなたの気持をはっきり伝えましょう。電話やEメールではなく、直接逢って素直に伝えるのがベストです。"; $result4 = "いつまでも変わらない気持でおつきあいできるふたり。いつもお互い自然体で居られます。だけど、お互い甘えすぎないように注意し、主体性を持って。デートは静かな公園や図書館で・・・行きたいところややりたいことなど、希望ははっきり相手に伝えて。何をやっても二人なら楽しいですが、目的を持って行動しましょう。"; } elsif ($love eq 'B'){ $head = '2人はベタベタの熱愛カップルです!'; $result1 = "出会った瞬間、またはふとしたきっかけで一気に恋に落ち、お互い相手一筋になっていきます。そのまま結婚、なんてこともありえます。ラブラブすぎて周りから敬遠されるかも?"; $result2 = "第一印象からお互い気になる存在です。まずは相手に視線を投げ、笑いかけてみましょう。そしたら相手もあなたのことを意識し始めるでしょう。それからどんどん話し掛けていけば、すぐに仲良くなれるはず。"; $result3 = "積極的にアタックしましょう。冗談っぽく「好き!」って言ってみるのもいいでしょう。周りのひとの協力もあればなおベストです。"; $result4 = "二人っきりで盛り上がりっぱなしのカップルですが、お互いの家族や友人を大切にすることも大事です。まわりの人たちとうまく付き合えるように気をつけて。デートは遊園地や映画館が◎。二人の世界を満喫しましょう。しかし、楽しいからといってハメをはずさないことが大切です。ケジメはきちんとつけましょう。また、必要以上に詮索や束縛をしてはいけません。ヤキモチをやきすぎないで相手のことを信じましょう。"; } elsif ($love eq 'C'){ $head = '2人はいつも仲良し。友達カップルです。'; $result1 = "なんでも話せて、いっしょに居るととても落ち着く、そんな二人です。趣味や好み、性格や容姿も似ていて、「兄弟みたい」、周りからも言われます。相手の喜びや苦しみをわかちあえるカップルでしょう。"; $result2 = "あまり積極的にアピールするのは避けたほうがいいでしょう。自然に少しずつ仲良くなるのが◎。相手が落ち込んでいるときにそっと元気づけてあげてください。少し仲良くなってきたらあなたのプライベートなことや悩みを相手に打ち明けてみましょう。"; $result3 = "あなたが好きな人からして欲しいアプローチ方法を考えればきっとわかるはず。美しい環境で二人っきりのときをねらえばきっと上手くいくでしょう。"; $result4 = "似た者同士なのでついズルズルとした交際になりそうです。友達のように付き合うのもいいですが、たまには男と女としての緊張感も必要。女性は、メイクや服装をガラリと変えてドキッ!とさせてみては。初めは楽しかったデートもだんだんマンネリ化が心配です。たまには違ったプランのデートで相手を驚かせて。フレッシュな演出がベター。"; } elsif ($love eq 'D'){ $head = '2人はケンカもするけど、仲良しカップルです。'; $result1 = "仲がいいときと悪いときの差が激しいカップルです。さっきまでいい雰囲気だったのに急にケンカしちゃったり・・・。波のある刺激的なお付き合いになるでしょう。"; $result2 = "つい憎まれ口をきいたりいじわるしちゃったりからかったり・・・なんてことはありませんか? ふざけ合うのも楽しいですが、恋を進めるためにはさりげない優しさで相手の力になってあげましょう。"; $result3 = "手紙とかきちんとした感じは避けて、冗談っぽく「好き!」って伝えてみましょう。短いEメールでも○。そのほうが受け入れてもらいやすいでしょう。"; $result4 = "隠し事や嘘は二人を遠ざけます。なんでも話し合ってお互いの信頼感を深め合いましょう。いつも自分を磨く努力は忘れずに。デートはきちんと計画を立て、健康的な場所で。お金を使いすぎないように注意しましょう。ケンカは二人にとって日常茶飯事ですが、必ずルールを守って。ひとつのことにいつまでもこだわりつづけると悪い方向へ流れていきます。"; } elsif ($love eq 'E'){ $head = '何となくお互いイライラするカップルになりそうです…'; $result1 = "なんとなくお互いギクシャクしてしまいがち。まだまだ心のつかめない相手だと感じていませんか? お互いの気持が通じにくい二人なので、落ち着いた良い関係になるには時間と努力が必要です。常にお互い協力し合い、思いやることが大切です。"; $result2 = "まずは、相手と頻繁に会うために周りの人の協力が必要です。みんなで楽しく遊んだり、お話したりしてさりげなく相手と仲良くなっていきましょう。あなたはいつも明るく元気にふるまって。"; $result3 = "手紙にあなたの気持をシンプルに綴って直接渡しましょう。そのほうが気持は伝わりやすいはず。Eメールや電話は避けたほうが良いでしょう。"; $result4 = "話し合うことは大切ですが、あなたの理想を相手に押し付けてはいけません。相手の気持ちがわからないなら、相手のペースや性格を注意深く観察し、理解しようと努めて。相手を見守ってあげるぐらいの気持が必要です。美しい景色、おいしい食事など、デートはよく考えて計画を。二人っきりのデートもいいけど、友達といっしょなのも盛り上がって楽しいでしょう。"; } elsif ($love eq 'F'){ $head = 'すれ違うこともあるようですが…'; $result1 = "気持ちが一方通行になりがちです。タイミングにずれがあり、お互いの気持が見えにくい二人です。相性は良いといえないカップルですが、あなたの努力次第でなんとかなるでしょう。"; $result2 = "相手の趣味や好みはちゃんと把握しておいてください。相手の好きなことには自分も関心を持ち、情報収集する必要があります。相手が好きな趣味の話をしていたら、話を上手く合わせられるように。"; $result3 = "テストが悪かった、病気になった、失恋したー相手がダメージを受けているときがチャンスです。お見舞いや電話で優しさを見せて。相手が元気になったときに、そっと気持ちを伝えれば良いでしょう。"; $result4 = "なかなか上手くいかなくてイライラしてしまいそう。相手に合わせる努力をいつも忘れずに。我慢が多くなりますが、好きなら負けずにがんばって。デートは相手の行きたいところを優先しましょう。約束の時間に遅れるのは×、健康状態にも気を付けて。ただし、相手の重荷にならない程度にがんばってください。"; } if ($head) { $result = "$result1$br$br$hr$br"; $result .= "$font_s■片思いの場合−アプローチ方法 $font_e$br$br"; $result .= "$result2$br$br$hr$br"; $result .= "$font_s■片思いの場合−交際のきっかけ $font_e$br$br"; $result .= "$result3$br$br$hr$br"; $result .= "$font_s■長続きする交際の秘訣は? $font_e$br$br"; $result .= "$result4$br$br"; } else { $head = "ごめんなさい!"; $result = "ごめんなさい。エラーになりました。ちょっとわかりません。。。(^^;;;;;"; } } # --- 結果出力 sub output{ &header; if ($furiwake eq 'mobile') { print "$hr
占い結果
$hr"; print "ふたりの恋愛を占いました。$head"; print "$hr$br$result$hr"; print "$emoji[1]もう一度占う$br"; print "$emoji[0]ホームに戻る"; } elsif ($furiwake eq "ezweb") { $time=time; print "
占い結果

"; print "ふたりの恋愛を占いました。$head
"; print "$hr$br$result$hr"; print "もう一度占う$br"; print "ホームに戻る"; print ""; } else { print "ホーム > $title > 占い結果

\n"; print "
$head

\n"; print "$qs{'GIRL'} さん(秘数$girl)と $qs{'BOY'} くん(秘数$boy) ふたりの恋愛を占いました。\n"; print "


$result
\n"; print "
\n"; } &foot; exit; } # --- QueryStringからのデータを受け取る(半角英字のみ) sub qs{ #入力データのデコード for(split(/&/,$query_string)){ tr/+//; tr/ //; s/%([\dA-Fa-f][\dA-Fa-f])/pack("C",hex($1))/ge; ($key,$value)=split(/=/,$_,2); $value=~ s///g; $value=~s/\r\n/\n/g; $value=~s/\r/\n/g; $value=~s/\n//g; $value =~ tr/A-Z/a-z/; $value =~ s/([^a-zA-Z])+//g; $qs{$key}=$value; } } # --- 初期画面 sub form{ &header; if ($furiwake eq 'mobile') { print "$hr
名前占い
$hr"; print "ヨーロッパで古くから伝わる相性占いです。名前の持つ「音」の組み合わせで2人の恋愛相手としての相性を占います。"; print "$hr"; print "男性と女性の名前をそれぞれ半角ローマ字で入力してください。$br$br"; print "
"; print ""; if ($type) { print ""; } print "男性の名前$br$br$br"; print "女性の名前$br$br$br"; print "
"; print ""; print "
$br
"; print "$hr"; print "$emoji[0]ホームに戻る"; } elsif ($furiwake eq "ezweb") { $time = time; print ""; print ""; print "
名前占い

"; print "ヨーロッパで古くから伝わる相性占いです。名前の持つ「音」の組み合わせで2人の恋愛相手としての相性を占います。"; print "男性と女性の名前をそれぞれ半角ローマ字で入力してください。

"; print "男性の名前
"; print "\$male
"; print "女性の名前
"; print "\$female
"; print "占い結果をみる
"; print "ホームに戻る$hr"; print "CGI提供:
Mamiko'sPage
EditTor World"; print ""; print ""; print ""; print "男性の名前:
"; print "
"; print ""; print ""; print "女性の名前:
"; print "
"; } else { print "ホーム > $title

\n"; print "
\n"; print "$title\n"; print "

\n"; print "\n"; print "\n"; print "
\n"; print " ・ヨーロッパで古くから伝わる相性占いです。
\n"; print " ・なまえの持つ「音」の組み合わせで2人の相性を占います。
\n"; print " ・ここでは恋愛相手としての相性を占います。
\n"; print " ・女性と男性の名前をそれぞれローマ字で入力してください。
\n"; print "
\n"; print "

\n\n"; print "\n"; print "
\n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print "
● 女性のおなまえを半角ローマ字で入力してください。
例:ながさわ ななこ → nagasawananako、あやせ あや → ayaseaya
 
● 男性のおなまえを半角ローマ字で入力してください。
例:たかはし かずや → takahashikazuya、かわむら たくや → kawamuratakuya
 
\n"; print " \n"; print " \n"; print "
\n"; print "
\n"; print "\n"; print "
\n"; } &foot; exit; } ;###################################### ;## --- ブラウザによって処理分け --- ## ;###################################### sub furiwake { $ackey = "accesskey"; $type = $qs{'type'}; $hr = "
"; $br = "
"; $method = "POST"; $font_s = ""; $font_e = ""; $agent = $ENV{"HTTP_USER_AGENT"}; if ($agent =~ /DoCoMo|L-mode/i){ @emoji = ("","","","","","","","","","","}","~"); $furiwake = "mobile"; $mobile = "imode"; $input_abc = " istyle=\"3\""; } elsif ($ENV{HTTP_X_JPHONE_COLOR} || $ENV{HTTP_X_JPHONE_DISPLAAY} || $ENV{HTTP_X_JPHONE_MSNAME} || $ENV{HTTP_X_JPHONE_SOUND} || $agent =~ /J-PHONE/) { @emoji = ("","","","","","","","","","","\$G_","→"); $method = "GET"; $mobile = "jsky"; $furiwake = "mobile"; $input_abc = " mode=alphabet"; $ackey = "directkey"; $hr = "
"; } elsif ($agent =~ /ASTEL/i) { @emoji = ("オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","・",""); $furiwake = "mobile"; $mobile = "astel"; $input_abc = " astyle=\"3\""; } elsif ($agent =~ /^UP\.Browser/i) { $font_s = ""; $font_e = ""; $furiwake = "ezweb"; $mobile = "ezweb"; $ackey = "ACCESSKEY"; $hr = "--------------
"; } elsif ($agent =~ /KDDI\-/i || $agent =~ /UP\.Browser/i) { @emoji = ("0.","1.","2.","3.","4.","5.","6.","7.","8.","9.","認証","→"); $furiwake = "mobile"; $mobile = "xhtml"; $input_abc = " format=\"*x\""; $hr = "
"; $br = "
"; } elsif ($agent =~ /DDIPOCKET/) { @emoji = ("0.","1.","2.","3.","4.","5.","6.","7.","8.","9.","認証","→"); $furiwake = "mobile"; $mobile = "airH"; } else { @emoji = ("[0]","[1]","[2]","[3]","[4]","[5]","[6]","[7]","[8]","[9]","認証","→"); $font_s = ""; $font_e = ""; $input_abc = ""; if ($type eq "mobile") { $furiwake = "mobile"; $pc = "yes"; $t_type = "&type=mobile"; } else { $furiwake = "pc"; } } } ;################################## ;## --- 各ページのヘッダ設定 --- ## ;################################## sub header { if ($furiwake eq "mobile" && $pc ne "yes") { print "Content-type: text/html; charset=Shift_JIS\n\n"; print ""; print ""; print "$title"; print ""; } elsif ($furiwake eq "ezweb") { print "Content-type: text/x-hdml; charset=Shift_JIS\n\n"; print "\n"; } else { print "Content-type: text/html; charset=Shift_JIS\n\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "$title\n"; print "\n"; print "\n"; if ($bground) { print "\n"; } else { print "\n"; } } } ;################################################################### ;## --- 各ページのフッタ設定(著作権表示の削除・改変は禁止!) ---## ;################################################################### sub foot { if ($furiwake eq "mobile" && $pc ne "yes") { if ($mobile eq "jsky") { print "$hr$br
"; print " "; } else { print "$hr$br
$br"; print "
"; } print ""; } elsif ($furiwake eq "ezweb") { print "
"; } else { print "
\n"; print "
\n"; print " "; print "
\n"; print "\n"; } exit; } ;####################################### ;## --- エラー発生時のサブルーチン ---## ;####################################### sub error { &header; if ($furiwake eq "mobile") { print "$hr
$_[0]
$hr"; print "$_[1]"; print "$hr"; print "$emoji[0]トップに戻る"; } ## --- EzWeb版ページ生成 elsif ($furiwake eq "ezweb") { print "\n
$_[0]

\n$_[1]\n\n"; } else { print "ホーム > $title > $_[0]

\n"; print "
$_[0]
\n"; print "
\n"; print "
\n"; print "$_[1]\n"; print "


\n"; } &foot; exit; }