dhv.php
changeset 36 221663a01729
child 37 5bb06da69cb4
equal deleted inserted replaced
35:c2ac2609bd56 36:221663a01729
       
     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>