アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めまして。私は某i mode用のサイトを運営している管理者です。最近はサイトの訪問者数が増え、コンテンツも色々と増やしているのですが、チャットのcgiが無記名でも入れるようになっているのです。それで、無記名はは入れないようにするやり方と、荒らし対策で携帯の端末情報を取得するやり方を教えて頂きたいと思いこちらに書き込ませて頂きました。わかる方、良かったら教えて頂ければありがたいです。初心者で大変申し訳ありませんが、どうぞ宜しくお願い致します。後、これからcgiを更に詳しく勉強したいとも思ってますので、おすすめのcgiの本などもありましたら教えて下さい。宜しくお願い致します。

A 回答 (2件)

個体識別ですが、Docomoの場合は



http://www.nttdocomo.co.jp/p_s/imode/make/tag/in …
の「utn」属性を参考にしてください。

vodafoneは
http://www.dp.j-phone.com/dp/tech_svc/info/usera …
のUserAgentに含まれるSerialが完全ユニークな番号です。

EZWEBは「サブスクライバID」というものがあります。
環境変数「HTTP_X_UP_SUBNO」にて取得できると思います。

CGIのソースですが、どうも私のPerlの知識では提示された分だけではわかりません(^^; ごめんなさい
    • good
    • 0

CGIと言ってもPerlとかPHPとかいろいろな言語があり、具体的にこうすれば良い、というのは実際のプログラムを見ないとわかりません。


名前を記入するフォームからデータを受け取ったら、プログラム内で、「記入されているかどうか」をチェックすればよい、としかお答えできません(^^;

携帯の端末情報ですが、環境変数「HTTP_USER_AGENT」で取得できます。
http://specters.net/cgipon/
モバイルCGIの部分が参考になりますよ。

ただし携帯では一般的に利用者を特定する個体識別は完全にはできません(絶対に無理という意味ではないですが)
キャリアによっては携帯の製造番号を取得できるものもありますが。

この回答への補足

一応内容を記しておきます。記入されているかどうかをチェックすればよい…。すみませんよくわかりません…(´・ω・`)

後、固体識別はよく掲示板に書き込む時に携帯情報を送信しますか?と出る所があるのですが、それを表示したいのでやり方を知っている方がいらっしゃれば…と思いまして(´Д⊂

chat本体のcgi


print "Content-type: text/html\n\n" ;
print<<HTMHEAD ;
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/htnml; charset=x-sjis">
<TITLE></TITLE>
</HEAD>
<CENTER>
<br>
<A HREF="$help_url">使い方</A><BR>
</CENTER>
HTMHEAD

for($i=0 ; $i<$room_num ; $i++){
$memfile=sprintf("%s%d.mem",$room_name,$i+1) ;
$roomcgi=sprintf("%s%s%d.cgi",$room_path,$room_name,$i+1) ;
$para_m=0 ;
$para_n=0 ;
if(-e "$memfile"){
&memfileCheck() ;
}
&dispCondition($i+1) ;
}
#
# 待ち合わせ用の掲示板を付ける場合は、ここをアクティブにする
#
#print "<HR><CENTER>\n" ;
#print "<A HREF=\"chbbs.cgi\">伝言板</A>" ;
print "<HR></CENTER>\n" ;
print "[<A HREF=\"$ret_url\">戻る</A>]\n" ;
print "$cgi_ver\n" ;
print "</BODY></HTML>\n" ;

exit(1) ;

sub memfileCheck
{
open(IN,"$memfile") ;
$buff=<IN> ;
($dum1,$para_n,$para_m,$dum2)=split(/=/,$buff) ;
if($para_n){
$buff=<IN> ;
$buff=<IN> ;
($dum1,$mst_t1,$mst_t2,$dum2)=split(/=/,$buff) ;
$buff=<IN> ;
($dum1,$mst_nam,$mst_msg,$dum2)=split(/=/,$buff) ;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time) ;
$now=$sec+($min*60)+($hour*3600)+($mday*86400) ;
$timelst=(6000-($now-$mst_t1)) ;
$timenot=(300-($now-$mst_t2)) ;
if($timelst<0 || $timenot<0){
$para_n=0 ;
$para_m=0 ;
}
}
close(IN) ;
}

sub dispCondition #($rnumb)
{
local($rnumb)=@_ ;
if($para_m==0){
$para_m=30 ;
}
print "<HR>\n" ;
print "Room$rnumb " ;
if($para_n==0){
print "[<A HREF=\"$roomcgi\">入室</A>]<BR>\n" ;
print "<FONT COLOR=blue>空室</FONT>\n" ;
}
elsif($para_n<$para_m){
print "[<A HREF=\"$roomcgi\">入室</A>]<BR>\n" ;
print "[$para_n/$para_m] $mst_nam<BR>\n" ;
print "$mst_msg\n" ;
}
else{
print "<BR><FONT COLOR=red>使用中</FONT>\n" ;

補足日時:2004/10/17 16:04
    • good
    • 0

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