root/trunk/install/php/reserveepgcomp.php

リビジョン 122, 4.5 kB (コミッタ: sorshi, コミット時期: 14 年 前)

EPGのDB格納形式を全角英数から半角英数に変更。
EPGタイトルが消えてしまう不具合修正。
DBへ重複登録されてしまう不具合を修正。

Line 
1 <?php
2 /*
3  Anime recording system foltia
4  http://www.dcc-jpl.com/soft/foltia/
5
6 reserveepgcomp.php
7
8 目的
9 EPG番組の予約登録をします。
10
11 引数
12 stationid:録画局ID
13 subtitle:番組名
14 startdatetime:録画開始時刻 (ex.200510070145)
15 enddatetime:録画終了時刻 (ex.200510070215)
16 lengthmin:録画時間(単位:分)
17
18  DCC-JPL Japan/foltia project
19
20 */
21
22 include("./foltialib.php");
23 $con = m_connect();
24
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
37 ?>
38 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
39 <html lang="ja">
40 <head>
41 <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
42 <meta http-equiv="Content-Style-Type" content="text/css">
43 <link rel="stylesheet" type="text/css" href="graytable.css">
44 <body BGCOLOR="#ffffff" TEXT="#494949" LINK="#0047ff" VLINK="#000000" ALINK="#c6edff" >
45
46 <?php
47
48     printhtmlpageheader();
49 ?>
50   <p align="left"><font color="#494949" size="6">番組予約</font></p>
51   <hr size="4">
52 <?php
53
54 /* $stationid = getnumform(stationid);
55 $subtitle = getform(subtitle);
56 $startdatetime = getnumform(startdatetime);
57 $enddatetime = getnumform(enddatetime);
58 $lengthmin = getnumform(lengthmin); */
59 $epgid = getnumform(epgid);
60
61         if ($epgid == "" ) {
62         print "    <title>foltia:EPG予約:Error</title></head>\n";
63         die_exit("登録番組がありません<BR>");
64         }
65 print "    <title>foltia:EPG予約:完了</title>
66 </head>\n";
67 $now = date("YmdHi");   
68 //タイトル取得
69     $query = "
70     SELECT epgid,startdatetime,enddatetime,lengthmin, ontvchannel,epgtitle,epgdesc,epgcategory ,
71     stationname , stationrecch ,stationid
72     FROM foltia_epg , foltia_station
73     WHERE epgid = ? AND foltia_station.ontvcode = foltia_epg.ontvchannel
74     ";
75     $rs = sql_query($con, $query, "DBクエリに失敗しました",array($epgid));
76 $rowdata = $rs->fetch();
77 if (! $rowdata) {
78         die_exit("登録番組がありません。もう一度EPGに戻り操作して下さい。<BR>");
79 }else{
80 $stationid = $rowdata[10];
81 $subtitle = $rowdata[5] . $rowdata[6];
82 $startdatetime = $rowdata[1];
83 $enddatetime = $rowdata[2];
84 $lengthmin = $rowdata[3];
85 }
86
87
88
89 // - DB登録作業
90
91 //時刻検査
92 if (($startdatetime > $now ) && ($enddatetime > $now ) && ($enddatetime  > $startdatetime ) ){
93
94 //min pidを探す
95 $query = "SELECT min(pid) FROM  foltia_subtitle ";
96 //    $rs = m_query($con, $query, "DBクエリに失敗しました");
97     $rs = sql_query($con, $query, "DBクエリに失敗しました");
98     $rowdata = $rs->fetch();
99     if (! $rowdata) {
100     $insertpid = -1 ;
101     }else{
102     $insertpid = $rowdata[0];
103         if ($insertpid > 0){
104         $insertpid = -1;
105         }else{
106         $insertpid-- ;
107         }
108     }
109 // next 話数を探す
110 $query = "SELECT max(countno) FROM  foltia_subtitle WHERE tid = 0";
111 //    $rs = m_query($con, $query, "DBクエリに失敗しました");
112     $rs = sql_query($con, $query, "DBクエリに失敗しました");
113     $rowdata = $rs->fetch();
114     if (! $rowdata) {
115     $nextcno = 1 ;
116     }else{
117     $nextcno = $rowdata[0];
118     $nextcno++ ;
119     }
120
121 //INSERT
122 if ($demomode){
123     print "下記予約を完了いたしました。<br>";
124 }else{
125 $userclass = getuserclass($con);
126 if ( $userclass <= 2){
127 /*
128 pid
129 tid
130 stationid 
131 countno
132 subtitle
133 startdatetime 
134 enddatetime 
135 startoffset 
136 lengthmin 
137 m2pfilename
138 pspfilename
139 epgaddedby 
140
141 */
142
143 $memberid = getmymemberid($con);
144     $query = "
145 insert into foltia_subtitle  (pid ,tid ,stationid , countno ,subtitle ,
146 startdatetime ,enddatetime ,startoffset , lengthmin , epgaddedby )
147 values ( ?,'0',?,?,?,?,?,'0',?,?)";
148 //    $rs = m_query($con, $query, "DBクエリに失敗しました");
149     $rs = sql_query($con, $query, "DBクエリに失敗しました",array($insertpid,$stationid,$nextcno,$subtitle,$startdatetime,$enddatetime,$lengthmin,$memberid));
150
151     //addatq.pl
152     //キュー入れプログラムをキック
153     //引数 TID チャンネルID
154     //echo("$toolpath/perl/addatq.pl $tid $station");
155
156     $oserr = system("$toolpath/perl/addatq.pl 0 0");
157     print "下記予約を完了いたしました。<br>";
158 }else{
159     print "EPG予約を行う権限がありません。";
160 }// end if $userclass <= 2
161 }//end if demomode
162
163
164
165 }else{
166 print "時刻が不正なために予約できませんでした。 <br>";
167
168 }
169
170
171 print "<table width=\"100%\" border=\"0\">\n";
172 print "<tr><td>放送開始</td><td>".htmlspecialchars($startdatetime)."</td></tr>";
173 print "<tr><td>放送終了</td><td>".htmlspecialchars($enddatetime)."</td></tr>\n";
174 print "<tr><td>局コード</td><td>".htmlspecialchars($stationid)."</td></tr>\n";
175 print "<tr><td>尺(分)</td><td>".htmlspecialchars($lengthmin)."</td></tr>\n";
176 print "<tr><td>番組名</td><td>".htmlspecialchars($subtitle)."</td></tr>\n";
177 print "</tbody>\n</table>";
178
179 ?>
180 </body>
181 </html>
182
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。
track feed