Beispiel #1
0
 private function getChallengeData(ISblamPost $p)
 {
     if ($installid = $p->getInstallId()) {
         // !!! must be in sync with challenge.js.php
         $fieldname = 'sc' . abs(crc32($installid));
         $post = $p->getPost();
         if (!empty($post[$fieldname]) && preg_match('!^([a-f0-9]{32})([a-f0-9]+;([a-f0-9]+);([\\d.,]+))((?:;\\d+)*)$!', $post[$fieldname], $r)) {
             return array($installid, $fieldname, $r[1], $r[2], hexdec($r[3]), explode(',', $r[4]), explode(';', $r[5]));
         }
         d("can't find expected field {$fieldname} for challenge");
         foreach ($post as $k => $v) {
             if (preg_match('/^sc\\d+$/', $k)) {
                 d("Found different install id for challenge");
                 return array(0, $k, 0, 0, 0, array(), array());
             }
         }
     } else {
         d("challenge: didn't get install id");
     }
     return NULL;
 }