130 lines
3.1 KiB
PHP
130 lines
3.1 KiB
PHP
|
<?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;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
?>
|