|
1 <? |
|
2 // image create is done on the fly |
|
3 if (isset($_REQUEST["png"])) { |
|
4 list($donate, $refund, $nn) = explode(":", trim($_REQUEST["png"])); |
|
5 $sum = $donate + $refund + $nn; |
|
6 |
|
7 $donate = $donate/$sum; |
|
8 $refund = $refund/$sum; |
|
9 $nn = $nn/$sum; |
|
10 |
|
11 // dimensions |
|
12 $width = 300; |
|
13 $height = $width / 3; |
|
14 |
|
15 $pie_width = $height * 0.9; |
|
16 $pie_height = $pie_width; |
|
17 |
|
18 $pie_x = $height / 2; |
|
19 $pie_y = $pie_x; |
|
20 $text_x = $pie_width * 1.2; |
|
21 |
|
22 // Image and colors |
|
23 $im = imagecreatetruecolor($width, $height); |
|
24 $c_donate = imagecolorallocate($im, 255, 0, 0); |
|
25 $c_refund = imagecolorallocate($im, 0, 225, 0); |
|
26 $c_nn = imagecolorallocate($im, 150, 150, 150); |
|
27 $bg = imagecolorallocate($im, 255, 255, 255); |
|
28 |
|
29 // background |
|
30 imagefill($im, 0, 0, $bg); |
|
31 imagecolortransparent($im, $bg); |
|
32 $a = 0.0; |
|
33 if ($donate > 0) imagefilledarc($im, |
|
34 $pie_x, $pie_y, $pie_width, $pie_height, |
|
35 $a, $a += $donate*360, $c_donate, IMG_ARC_PIE); |
|
36 if ($refund > 0) imagefilledarc($im, |
|
37 $pie_x, $pie_y, $pie_width, $pie_height, |
|
38 $a, $a += $refund*360, $c_refund, IMG_ARC_PIE); |
|
39 if ($nn > 0) imagefilledarc($im, |
|
40 $pie_x, $pie_y, $pie_width, $pie_height, |
|
41 $a, $a += $nn*360, $c_nn, IMG_ARC_PIE); |
|
42 |
|
43 imagestring($im, 5, $text_x, 0 + 0.1*$height, sprintf("Elbtalflieger %.1f%%", $donate*100), $c_donate); |
|
44 imagestring($im, 5, $text_x, 1*$height/3 + 0.1*$height, sprintf("Erstattung %.1f%%", $refund*100), $c_refund); |
|
45 imagestring($im, 5, $text_x, 2*$height/3 + 0.1*$height, sprintf("keine Angabe %.1f%%", $nn*100), $c_nn); |
|
46 |
|
47 |
|
48 header("Content-Type: image/png"); |
|
49 imagepng($im); |
|
50 exit; |
|
51 } |
|
52 |
|
53 // Template vars |
|
54 $T = array("verified" => false, |
|
55 "givenname" => null, |
|
56 "surname" => null, |
|
57 "dhv" => null, |
|
58 "stats" => array("donate" => 0, |
|
59 "refund" => 0, |
|
60 "nn" => 0), |
|
61 "email" => null, |
|
62 "pass" => null, |
|
63 ); |
|
64 |
|
65 if (isset($_REQUEST["email"])) { |
|
66 $dbh = new PDO("sqlite:var/db.sqlite3", "", ""); |
|
67 |
|
68 // sanitze the request variables |
|
69 foreach ($_REQUEST as &$v) $v = trim($v); |
|
70 |
|
71 // check access and state of current user |
|
72 $sth = $dbh->prepare("SELECT givenname, surname, dhv FROM db WHERE email = :email AND pass = :pass"); |
|
73 $sth->execute(array("email" => $_REQUEST["email"], "pass" => $_REQUEST["pass"])); |
|
74 |
|
75 $T["email"] = htmlspecialchars($_REQUEST["email"]); |
|
76 $T["pass"] = htmlspecialchars($_REQUEST["pass"]); |
|
77 |
|
78 if ($o = $sth->fetchObject()) { |
|
79 $T["verified"] = true; |
|
80 foreach (array("givenname", "surname", "dhv") as $k) $T[$k] = $o->{$k}; |
|
81 |
|
82 if (isset($_REQUEST['dhv'])) { |
|
83 $sth = $dbh->prepare("UPDATE db SET dhv = ? WHERE email = ?"); |
|
84 switch ($_REQUEST['dhv']) { |
|
85 case "donate": $T['dhv'] = "donate"; $v = 0; break; |
|
86 case "refund": $T['dhv'] = "refund"; $v = 1; break; |
|
87 default: $v = NULL; |
|
88 } |
|
89 if (isset($v)) $sth->execute(array($v, $T['email'])); |
|
90 } else { |
|
91 switch($T['dhv']) { |
|
92 case NULL: break; |
|
93 case 0: $T['dhv'] = "donate"; break; |
|
94 case 1: $T['dhv'] = "refund"; break; |
|
95 } |
|
96 } |
|
97 |
|
98 // check overall stats |
|
99 $sth = $dbh->query("SELECT dhv FROM db"); |
|
100 while ($o = $sth->fetchObject()) { |
|
101 switch($o->{"dhv"}) { |
|
102 case NULL: $T["stats"]["nn"]++; break; |
|
103 case 0: $T["stats"]["donate"]++; break; |
|
104 case 1: $T["stats"]["refund"]++; break; |
|
105 } |
|
106 } |
|
107 } |
|
108 } |
|
109 |
|
110 //if (isset($T)) { print "<pre>\n"; var_dump($T); print "</pre>"; } |
|
111 |
|
112 |
|
113 ?> |
|
114 <html> |
|
115 <head> |
|
116 <meta http-equiv="Content-Type" content="text/html;charset=UTF8" /> |
|
117 <style type="text/css"> |
|
118 <!-- |
|
119 form * label { display:block; float:left; width:12ex; } |
|
120 --> |
|
121 </style> |
|
122 </head> |
|
123 <body> |
|
124 |
|
125 [<a href='<?=$_SERVER["PHP_SELF"]?>'>HOME</a>] |
|
126 |
|
127 <h1>Retterpackkurs 15.10.2011</h1> |
|
128 |
|
129 <p> |
|
130 Wie ihr wißt, zahlt der DHV für jedes Mitglied an den ausrichtenden |
|
131 Verein einen Zuschuß von etwas über 11€. Die Frage ist jetzt, was |
|
132 machen wir mit diesem Zuschuß. |
|
133 |
|
134 <? if (!$T['verified']) { ?> |
|
135 <p> |
|
136 |
|
137 <? if (isset($_REQUEST["email"])) { ?> |
|
138 <font color=red>Deine Angaben sind so leider nicht richtig. Bitte |
|
139 prüfe sie noch mal, oder kontaktiere |
|
140 <a href="mailto:hs+retter@schlittermann.de">hs+retter@schlittermann.de</a> |
|
141 </font> |
|
142 <? } else { ?> |
|
143 Bitte verwende Deine Mailadresse und den Code aus der Mail, die Du |
|
144 erhalten hast, um Deinen Wunsch entsprechend einzutragen. |
|
145 <? } ?> |
|
146 |
|
147 <p> |
|
148 <form> |
|
149 <p> |
|
150 <label for=email>Mail-Adresse:</label> |
|
151 <input id=email name=email type=text value="<?=$T["email"]?>"/><br> |
|
152 <label for=pass>Code:</label> |
|
153 <input id=pass name=pass type=text value="<?=$T["pass"]?>"/></br> |
|
154 <input type=submit value=OK name=_ok /> |
|
155 </form> |
|
156 |
|
157 <? } else { ?> |
|
158 |
|
159 <p> |
|
160 Bitte Deine Entscheidung (Du kannst sie bis einschließlich 31. Oktober |
|
161 2011 jederzeit ändern):</br> |
|
162 <form> |
|
163 <input id=dhv_donate type=radio name=dhv value="donate" |
|
164 <?=$T['dhv']=="donate"?"checked":""?> onChange='submit()'/> |
|
165 <label for=dhv_donate> |
|
166 Die Elbtalflieger erhalten diese 11€ als Spende. Und Du drei |
|
167 Windenschlepps für umsonst. |
|
168 </label></br> |
|
169 |
|
170 <input id=dhv_refund type=radio name=dhv value="refund" |
|
171 <?=$T['dhv']=="refund"?"checked":""?> onChange='submit()'/> |
|
172 <label for=dhv_refund> |
|
173 Ich möchte das Geld erstattet haben. |
|
174 </label></br> |
|
175 |
|
176 <input type=hidden name=email value='<?=$T['email']?>'/> |
|
177 <input type=hidden name=pass value='<?=$T['pass']?>'/> |
|
178 |
|
179 <!-- <input type=submit value="OK"/> --> |
|
180 </form> |
|
181 |
|
182 <p> |
|
183 Zu Deiner Orientierung haben wir hier die aktuelle Entscheidungsquote |
|
184 dargestellt: |
|
185 |
|
186 <p> |
|
187 <img src='<?=$_SERVER["PHP_SELF"]?>?png=<?=implode(":", $T["stats"])?>' width=20% float=right/> |
|
188 |
|
189 <? } ?> |
|
190 |
|
191 <? if($T['dhv'] == 'refund') { ?> |
|
192 |
|
193 <p> |
|
194 Für die Erstattung des Geldes nimm bitte Kontakt mit |
|
195 <a href="mailto:hs+retter@schlittermann.de">Heiko Schlittermann</a> |
|
196 auf, wir benötigen die Bankverbindung, auf die wir den Betrag |
|
197 überweisen sollen. |
|
198 |
|
199 <? } else if ($T['dhv'] == 'donate') { ?> |
|
200 |
|
201 <p> |
|
202 Die <a href="http://www.elbtalflieger.de/">Elbtalflieger</a> sind Dir für diese Spende so dankbar, daß sie Dich |
|
203 zu drei kostenlosen Windenschlepps und einem anschließenden |
|
204 Landebier einladen. |
|
205 |
|
206 <? } ?> |
|
207 |
|
208 |
|
209 <hr/> |
|
210 <div align=right> |
|
211 Scripting <a href="http://schlittermann.de">Heiko Schlittermann</a> |
|
212 </body> |
|
213 </html> |