<?php /* benchReceive.php - example way to handle incoming benchmark data, or how to use JSON php class to mangle data. No benchmark data is stored currently. -- -- Table structure for table `benchmarks` -- CREATE TABLE `benchmarks` ( `id` int(11) NOT NULL auto_increment, `useragent` varchar(242) NOT NULL default '', `dojover` varchar(96) NOT NULL default '', `testNum` int(11) NOT NULL default '0', `dijit` varchar(64) NOT NULL default '', `testCount` int(11) NOT NULL default '0', `testAverage` float NOT NULL default '0', `testMethod` varchar(10) NOT NULL default '', `testTime` bigint(20) NOT NULL default '0', `dataSet` varchar(64) NOT NULL default '', PRIMARY KEY (`id`), KEY `dijit` (`dijit`,`testAverage`), KEY `dataSet` (`dataSet`) ) TYPE=MyISAM; -- -- [end table struct] -- */ if (is_array($_POST)) { $username = ''; $password = ''; $dataBase = ''; $table = ''; mysql_connect("localhost",$username,$password); mysql_select_db($dataBase); require("../../dojo/tests/resources/JSON.php"); $json = new Services_JSON(); // see "escape()" call in benchTest.html $string = $json->decode(urldecode($_POST['key'])); // $string = $json->decode($_POST['key']); print "<h1>Thank YOU!</h1>"; print " <p>Your results have been added to our database. No personal information outside of what you see here has been stored. </p> <p>You can <a href= \"javascript:history.back()\">go back</a> and run more tests, or even better, load up another browser and the submit your tests again! </p> <p>again ... thanks for your time.</p> "; print "<h3>Results Submitted:</h3>"; print "<pre style=\"font:6pt Terminal,sans-serif; border:1px solid #cecece; background-color:#ededed; padding:20px; \">"; $ua = $string->clientNavigator; $dojov = $string->dojoVersion; print "Client: ".$ua."\n"; print "Dojo v".$dojov."\n"; if (is_array($string->dataSet)) { print "\nTest Results:"; // should client serialize a key, or is this safer? $dataSet = md5(serialize($string)); foreach ($string->dataSet as $test) { $data = array( 'dataSet' => $dataSet, 'useragent' => $ua, 'dojover' => $dojov, 'testNum' => $test->testNum, 'testMethod' => $test->testMethod, 'testTime' => $test->testTime, 'testAverage' => $test->testAverage, 'testCount' => $test->testCount, 'dijit' => $test->dijit ); print_r($data); add_rec($table,$data); } } if (is_array($string->errors)) { // not saving errors at this point print "\nErrors:"; foreach ($string->errors as $error) { print_r($error); } } print "</pre>"; } function add_rec($table, $data) { if (!is_array($data)) { return FALSE; } $keys = array_keys($data); $values = array_values($data); $field=0; for ($field;$field<sizeof($data);$field++) { if (!ereg("^[0-9].*$",$keys[$field])) { $sqlfields = $sqlfields.$keys[$field]."=\"".$values[$field]."\", "; } } $sqlfields = (substr($sqlfields,0,(strlen($sqlfields)-2))); if ($query = mysql_query("insert into $table set $sqlfields")) { $id = mysql_insert_id(); return ($id); }else{ return FALSE; } } ?>