root/trunk/install/php/m.php

リビジョン 77, 6.8 kB (コミッタ: sorshi, コミット時期: 16 年 前)

m.php
 環境ポリシー対応が不十分だったところを修正。

Line 
1 <?php
2 /*
3  Anime recording system foltia
4  http://www.dcc-jpl.com/soft/foltia/
5
6 m.php
7
8 目的
9 番組表を用いない完全手動録画予約を実現します。
10 ケータイなどで予約する場合もここを開くとよさそうです。
11
12 引数
13 startdate:録画開始日 (ex.20051207)
14 starttime:録画開始時刻 (ex.2304)
15 lengthmin:録画尺分
16 recstid:録画局ID
17 pname:番組名
18
19  DCC-JPL Japan/foltia project
20
21 */
22
23 include("./foltialib.php");
24 $con = m_connect();
25 if ($useenvironmentpolicy == 1){
26     if (!isset($_SERVER['PHP_AUTH_USER'])) {
27         header("WWW-Authenticate: Basic realm=\"foltia\"");
28         header("HTTP/1.0 401 Unauthorized");
29         redirectlogin();
30         exit;
31     } else {
32     login($con,$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']);
33     }
34 }//end if login
35
36 $now = date("YmdHi");   
37 $errflag = 0;
38 $pname = "手動録画";
39
40 function printtitle(){
41 print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">
42 <html lang=\"ja\">
43 <head>
44 <meta http-equiv=\"Content-Type\" content=\"text/html; charset=EUC-JP\">
45 <meta http-equiv=\"Content-Style-Type\" content=\"text/css\">
46 <link rel=\"stylesheet\" type=\"text/css\" href=\"graytable.css\"> ";
47
48 print "<title>foltia:番組手動予約</title>
49 </head>";
50 }//end function printtitle()
51
52 printtitle();
53 ?>
54 <body BGCOLOR="#ffffff" TEXT="#494949" LINK="#0047ff" VLINK="#000000" ALINK="#c6edff" >
55 <div align="center">
56 <?php
57 printhtmlpageheader();
58 ?>
59 </div>
60 <p align="left"><font color="#494949" size="6">
61 番組手動予約
62 </font></p>
63 <hr size="4">
64 <?php
65 //値取得
66 $startdate = getgetnumform(startdate);
67 $starttime = getgetnumform(starttime);
68
69 if (($startdate == "") || ($starttime == "")){
70     print "<p align=\"left\">全項目手動指定で予約します。</p>\n";
71 }else{
72
73 $lengthmin = getgetnumform(lengthmin);
74 $recstid = getgetnumform(recstid);
75 $pname = getgetform(pname);
76 //確認
77 $startdatetime = "$startdate"."$starttime";
78 if (foldatevalidation($startdatetime)){
79 //print "valid";
80 }else{
81     $errflag = 1;
82     $errmsg = "日付が不正です。";
83 }
84 if ($lengthmin < 361){
85 //valid
86 }else{
87     $errflag = 2;
88     $errmsg = "録画時間は360分で区切ってください。";
89 }
90 //局確認
91 if ($recstid != ""){
92 $query = "
93 SELECT stationname 
94 FROM foltia_station
95 WHERE stationid = $recstid";
96     $stationvalid = m_query($con, $query, "DBクエリに失敗しました");
97     $stationcount = pg_num_rows($stationvalid);
98
99     if ($stationcount == 1){
100         $recstationname = pg_fetch_row($stationvalid, 0);
101     //valid
102     }else{
103         $errflag = 3;
104         $errmsg = "放送局設定が異常です。";
105     }
106 }
107 //正しければ
108 if ($errflag == 0){
109 //重複があるか?
110 //未チェック
111
112 //デモモードじゃなかったら書き込み
113 $enddatetime = calcendtime($startdatetime,$lengthmin);
114
115 //時刻検査
116 if (($startdatetime > $now ) && ($enddatetime > $now ) && ($enddatetime  > $startdatetime ) ){
117
118 //min pidを探す
119 $query = "SELECT min(pid) FROM  foltia_subtitle ";
120     $rs = m_query($con, $query, "DBクエリに失敗しました");
121     $maxrows = pg_num_rows($rs);
122     if ($maxrows == 0){
123     $insertpid = -1 ;
124     }else{
125     $rowdata = pg_fetch_row($rs, 0);
126     $insertpid = $rowdata[0];
127     $insertpid-- ;
128     }
129 // next 話数を探す
130 $query = "SELECT max(countno) FROM  foltia_subtitle WHERE tid = 0";
131     $rs = m_query($con, $query, "DBクエリに失敗しました");
132     $maxrows = pg_num_rows($rs);
133     if ($maxrows == 0){
134     $nextcno = 1 ;
135     }else{
136     $rowdata = pg_fetch_row($rs, 0);
137     $nextcno = $rowdata[0];
138     $nextcno++ ;
139     }
140
141 //INSERT
142 if ($demomode){
143 }else{
144     $userclass = getuserclass($con);
145     if ( $userclass <= 2){
146     $memberid = getmymemberid($con);
147     
148     $query = "
149     insert into foltia_subtitle  (pid ,tid ,stationid , countno ,subtitle ,
150 startdatetime ,enddatetime ,startoffset , lengthmin , epgaddedby ) 
151     values ( '$insertpid','0','$recstid',
152         '$nextcno','$pname','$startdatetime','$enddatetime','0' ,'$lengthmin', '$memberid')";
153     
154         $rs = m_query($con, $query, "DBクエリに失敗しました");
155     
156     //addatq.pl
157     //キュー入れプログラムをキック
158     //引数 TID チャンネルID
159     //echo("$toolpath/perl/addatq.pl $tid $station");
160     
161         $oserr = system("$toolpath/perl/addatq.pl 0 0");
162     }else{
163         print "EPG予約を行う権限がありません。";
164     }// end if $userclass <= 2
165 }//end if demomode
166
167 print "下記予約を完了いたしました。<br>";
168 //結果表示
169 print "録画開始:";
170 echo foldate2print($startdatetime);
171 print "<br />
172 録画終了:";
173 echo foldate2print($enddatetime);
174 print "<br />
175 録画尺: $lengthmin 分<br />
176 録画局:$recstationname[0]<br />
177 番組名:$pname<br />
178 ";
179 exit();
180 }else{
181 print "時刻が不正なために予約できませんでした。 <br>";
182
183 }
184
185
186 }else{
187     print "入力項目が正しくなさそうです。$errmsg<br />\n";
188 }
189
190 }// 初回表示かデータ処理か
191 ?>
192 <form id="record" name="record" method="get" action="./m.php">
193   <p>放送日:
194     <input name="startdate" type="text" id="startdate" size="9" value="<?=$startdate?>" />
195   年月日 Ex.19800121</p>
196   <p>録画開始時刻:
197     <input name="starttime" type="text" id="starttime" size="5" value="<?=$starttime?>" />
198   時分 Ex.2304  </p>
199   <p>
200     録画尺:
201       <input name="lengthmin" type="text" id="lengthmin" size="4" value="<?=$lengthmin?>"/>
202     分 (最長360分) </p>
203
204   <p>録画局:
205 <?php
206 $query = "
207 SELECT stationid,stationname,stationrecch
208 FROM foltia_station
209 WHERE stationrecch > 0
210 ORDER BY \"stationid\" ASC";
211
212     $stations = m_query($con, $query, "DBクエリに失敗しました");
213     $stationcount = pg_num_rows($stations);
214     
215 if ($stationcount > 0 ){
216     for ($row = 0; $row < $stationcount ; $row++) {
217         $rowdata = pg_fetch_row($stations, $row);
218             if ($recstid == $rowdata[0]){
219             print " <input name=\"recstid\" type=\"radio\" value=\"$rowdata[0]\" checked />  $rowdata[1] ($rowdata[2]ch) \n";
220             }else{
221                 print " <input name=\"recstid\" type=\"radio\" value=\"$rowdata[0]\" />  $rowdata[1] ($rowdata[2]ch) \n";
222             }
223     }
224 }else{
225 print "放送局データベースが正しくセットアップされていません。録画可能局がありません";
226 }
227
228 $query = "
229 SELECT stationid,stationname,stationrecch
230 FROM foltia_station
231 WHERE stationrecch > -2 AND stationrecch < 1
232 ORDER BY \"stationid\" ASC";
233
234     $stations = m_query($con, $query, "DBクエリに失敗しました");
235     $stationcount = pg_num_rows($stations);
236     
237 if ($stationcount > 0 ){
238     for ($row = 0; $row < $stationcount ; $row++) {
239         $rowdata = pg_fetch_row($stations, $row);
240         if ($rowdata[0] != 0){
241             if ($recstid == $rowdata[0]){
242             print " <input name=\"recstid\" type=\"radio\" value=\"$rowdata[0]\" checked />  $rowdata[1] \n";
243             }else{
244                 print " <input name=\"recstid\" type=\"radio\" value=\"$rowdata[0]\" />  $rowdata[1] \n";
245             }
246
247         }
248     }
249 }
250
251 ?>
252   <p>番組名:
253     <input name="pname" type="text" id="pname" value="<?=$pname ?>" />
254   </p>
255 <!-- <p  style='background-color: #DDDDFF'>
256 繰り返し指定-毎週以下の曜日に録画:
257 <input name="weeklyloop" type="radio" value="128" />  日曜 
258 <input name="weeklyloop" type="radio" value="64" />  月曜 
259 <input name="weeklyloop" type="radio" value="32" />  火曜 
260 <input name="weeklyloop" type="radio" value="16" />  水曜 
261 <input name="weeklyloop" type="radio" value="8" />  木曜 
262 <input name="weeklyloop" type="radio" value="4" />  金曜 
263 <input name="weeklyloop" type="radio" value="2" />  土曜 
264  </p>
265  -->
266 <input type="submit" value="予約"> 
267 </form>
268
269 </body>
270 </html>
271
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。
track feed