Дописана обработка сбойных данных на входе программы
[weathermon.git] / web / setup.php
1 <?php
2
3 error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
4
5 include ('config_local.php');
6
7 if (! ($db = new PDO("mysql:host=$mysql_host;port=$mysql_port;dbname=$mysql_schema",$mysql_user,$mysql_pwd,array( PDO::ATTR_PERSISTENT => false)))) {
8
9   die('Не могу подключиться к БД');
10
11 }  
12
13 $db -> exec('SET CHARACTER SET utf8');
14
15 $selected = [];
16
17 if ($_REQUEST['action']=='submit') {
18
19   foreach($_REQUEST as $key=>$value) {
20   
21     if (strpos($key,'unit_')===0) {
22
23       $group_id=intval(substr($key,5));
24       $unit_id=$value;
25       setcookie('unit_'.$group_id,$unit_id,time()+86400*365*10);
26       $selected[$group_id]=$unit_id;
27       
28     }
29
30   }
31
32 ?>
33 <html>
34 <head>
35   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
36   <meta http-equiv="refresh" content="2; url=index.php">
37   <meta name="GENERATOR" content="Mozilla/4.72 (X11; U; Linux 2.2.12-20smp i686) [Netscape]">
38   <title>WeatherMon (Настройки)</title>
39   <link rel="icon" href="favicon.png" />
40 </head>
41 <body text="black" bgcolor="silver" link="blue" vlink="#000080" alink="#FF0000">
42 <h1 align="center">Сохранено...</h1>
43 </body>
44 <?php
45   
46 } else {
47
48   foreach($_COOKIE as $key=>$value) {
49   
50     if (strpos($key,'unit_')===0) {
51
52       $group_id=intval(substr($key,5));
53       $unit_id=$value;
54       setcookie('unit_'.$group_id,$unit_id);
55       $selected[$group_id]=$unit_id;
56       
57     }
58   
59   }
60
61 ?>
62 <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
63 <html>
64 <head>
65   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
66   <meta name="GENERATOR" content="Mozilla/4.72 (X11; U; Linux 2.2.12-20smp i686) [Netscape]">
67   <title>WeatherMon (Настройки)</title>
68   <link rel="icon" href="favicon.svg" />
69 </head>
70 <body text="black" bgcolor="silver" link="blue" vlink="#000080" alink="#FF0000">
71
72 <?php
73
74   
75 $q = $db -> prepare(
76   'select id,name,(select count(*) from units where unit_group=g.id) cnt from unit_groups g'
77 );
78 $q -> execute();
79           
80 echo '<form action="setup.php" method="get">';
81 while ($row = $q -> fetch(PDO::FETCH_ASSOC)) {
82   $group_id = $row['id'];
83   $group_name = $row['name'];
84   $group_cnt = $row['cnt'];
85   
86   echo '<h3 align="center">'.$group_name.'</h3>';
87
88   $q_p = $db -> prepare(
89     'select id,name from units where unit_group='.$group_id
90   );
91   
92   $q_p->execute();
93
94   echo '<center><select name="unit_'.$group_id.'" size='.$group_cnt.'>';  
95   while ($row_p = $q_p -> fetch(PDO::FETCH_ASSOC)) {
96   
97     if ($selected[$group_id]==$row_p['id']) {
98       echo '<option selected value="'.$row_p['id'].'">'.$row_p['name'].'</option>';
99     } else {
100       echo '<option value="'.$row_p['id'].'">'.$row_p['name'].'</option>';
101     }  
102   
103   }
104   echo '</select></center>';
105 }
106 echo '<input type="hidden" name="action" value="submit">';
107 echo '<p><center><input type="submit" value="Сохранить настройки"></center>';
108 echo '</form>';
109
110 }
111              
112 ?>
113 </body>
114 </html>