Advertisement
Guest User

Untitled

a guest
Jan 9th, 2012
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.74 KB | None | 0 0
  1.     public function doSubmit() {
  2.         if(!empty($_POST)) {
  3.         $titles = $_POST['title'];
  4.         $urls = $_POST['url'];
  5.         $types = $_POST['type'];
  6.         $sname = $_POST['sname'];
  7.         $surl = $_POST['surl'];
  8.         $email = $_POST['email'];
  9.             if(empty($titles[0]) || empty($urls[0]) || empty($types[0]) || empty($sname) || empty($surl) || empty($email)) {
  10.                 $this->error = 'Some fields were not set, please check you filled in all details.';
  11.             } else {
  12.                 $surl = $this->purl(str_replace("www.","",$surl),"host");
  13.                 $durl = $this->purl(str_replace("www.","",$urls[0]),"host");
  14.                 $subContinue = true;
  15.                 if($this->blackorwhite == "black" && @mysql_num_rows(mysql_query("SELECT url FROM wcddl_blacklist WHERE url = '".mysql_real_escape_string($surl)."'"))) {
  16.                     $subContinue = false;
  17.                     $this->error = 'You have been blacklisted for the reasons ^^ then <a href="/contact.php">email</a> the admin for more information.';
  18.                 }
  19.                 if($surl != $durl) {
  20.                     $subContinue = false;
  21.                     $this->error .= 'Download URL does not match Site URL.';
  22.                 }
  23.                 $this->processHook("submitChecks");
  24.                 $checksPass = array(
  25.                     'status' => $subContinue,
  26.                     'site' => array(
  27.                         'sname' => $sname,
  28.                         'surl' => $surl,
  29.                         'email' => $email
  30.                     ),
  31.                     'downloads' => array(
  32.                         'titles' => $titles,
  33.                         'urls' => $urls,
  34.                         'types' => $types
  35.                     )
  36.                 );
  37.                 // Var names getting lengthy here :o
  38.                 $subContinueHook = $this->processDataHook("submitChecksPass",$checksPass);
  39.                 $subContinue = isset($subContinueHook['status']) ? $subContinueHook['status'] : $subContinue;
  40.                 if($subContinue) {
  41.                     $inserted = array('details' => array(), 'downloads' => array());
  42.                     $checkSite = mysql_query("SELECT id FROM wcddl_sites WHERE url = '".mysql_real_escape_string($surl)."'");
  43.                     if(@mysql_num_rows($checkSite)) {
  44.                         $checkSite = mysql_result($checkSite,0);
  45.                     } else {
  46.                         $checkSite = false;
  47.                         $pass=alphanumericPass();  
  48.                             mysql_query("INSERT INTO wcddl_sites (name,url,email,password) VALUES ('".mysql_real_escape_string($sname)."','".mysql_real_escape_string($surl)."','".mysql_real_escape_string($email)."','".md5($pass)."')");
  49.  
  50.                         sendwelcomeemail($email,$surl,$pass);
  51.                         }
  52.                     $sid = ($checkSite) ? $checkSite : mysql_insert_id();
  53.                     $inserted['details'] = array(
  54.                         "sname" => $sname,
  55.                         "surl" => $surl,
  56.                         "email" => $email,
  57.                         "sid" => $sid
  58.                     );
  59.  
  60.                     // 24 hour mod start, rewritten and optimized by Chris.
  61.                     //Get time and call for last 24 hr time stamp.
  62.                     $Time = time();
  63.                     $Day = (60*60*24);
  64.                     $Time = ($Time - $Day);
  65.                    
  66.                     $Site = mysql_real_escape_string($_POST['sname']);
  67.                    
  68.                     //Lookup site and get its ID for next 2 queries
  69.                     $querySite = ("SELECT * FROM wcddl_sites WHERE name='$Site'");
  70.                     $resultSite = mysql_query($querySite);
  71.                     $rowSite = mysql_fetch_array($resultSite);
  72.                    
  73.                     //Get number of downloads already stored within last 24hrs
  74.                     $queryDownloads = ("SELECT * FROM wcddl_downloads WHERE sid='$rowSite[id]' and dat > '$Time'");
  75.                     $resultDownloads = mysql_query($queryDownloads);
  76.                     $countDownloads = mysql_num_rows($resultDownloads);
  77.                    
  78.                     //Get number of downloads in queue already stored within last 24hrs
  79.                     $queryQueue = ("SELECT * FROM wcddl_queue WHERE sid='$rowSite[id]'");
  80.                     $resultQueue = mysql_query($queryQueue);
  81.                    
  82.                     if (!$countQueue = mysql_num_rows($resultQueue)) {
  83.                         //If nothing in queue and mysql_num_rows returns false, set to 0
  84.                         $countQueue = 0;
  85.                     }
  86.                    
  87.                     //Get total count of everything submitted in last 24 hrs (inc queued items that have been submitted anytime)
  88.  
  89.                     $totalCount = ($countQueue + $countDownloads);
  90.                    
  91.                     for($i=0;$i<=count($titles)-1;$i++) { // loop thru the input fields
  92.                         if(!$this->allow_dupes) { // check for dupe titles or urls
  93.                             unset($downDupe);
  94.                             $downDupe = mysql_query("SELECT COUNT(*) FROM wcddl_downloads WHERE url = '".mysql_real_escape_string($urls[$i])."'");
  95.                             $downDupe = mysql_result($downDupe,0);
  96.                             if($downDupe < 1)
  97.                                 unset($downDupe);
  98.                         } // dupe check end
  99.                        
  100.                         //Check each row of fields is set
  101.                         if(!empty($titles[$i]) && !empty($urls[$i]) && !empty($types[$i]) && (in_array(strtolower($types[$i]),$this->allowed_types) || in_array($types[$i],$this->allowed_types)) && !isset($downDupe)) {
  102.                            
  103.                             //If total submitted items more than allowed.
  104.                             if ($totalCount >= $this->Limit) {
  105.                                 //Print error, break out and process no more
  106.                                 $this->Output = '<center><div class="error_message">You can not submit any more downloads as you have reached your daily limit.</div></center>';
  107.                                 break;
  108.                                 }
  109.  
  110.                             //All set so insert details.
  111.                             mysql_query("INSERT INTO wcddl_queue (sid,title,type,url) VALUES ('".mysql_real_escape_string($sid)."','".mysql_real_escape_string($titles[$i])."','".mysql_real_escape_string($types[$i])."','".mysql_real_escape_string($urls[$i])."')");
  112.                            
  113.                             $totalCount++;
  114.                            
  115.                             $amountLeft = ($this->Limit - $totalCount);
  116.                             $this->Output = '<center><div class="success_message">'.$totalCount.' downloads were successfully submitted in the last 24 hours!<br>
  117.                             You have '.$amountLeft.' of '.$this->Limit.' submissions left.</div></center>';
  118.                             // 24 hour mod end, rewritten and optimized by Chris.
  119.                             $inserted['downloads'][] = array(
  120.                                 "title" => $titles[$i],
  121.                                 "url" => $urls[$i],
  122.                                 "type" => $types[$i],
  123.                             );
  124.                         }
  125.                     }
  126.                     $subSuccessHook = $this->processDataHook("submitSuccess",$inserted);
  127.                     $subSuccess = '<center><div class="success_message">Downloads submitted successfully!</div></center>';
  128.                 }
  129.             }
  130.         }
  131.         $this->processHook("submitEnd");
  132.         return $subSuccess;
  133.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement