You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
3.1 KiB
129 lines
3.1 KiB
<?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; |
|
} |
|
} |
|
|
|
?>
|
|
|