root/trunk/install/php/m.php

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

作り掛けの機能をコミットしてしまったのを修正

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