PageRenderTime 68ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 0ms

/index.php

http://thegamesdb.googlecode.com/
PHP | 1885 lines | 1445 code | 242 blank | 198 comment | 480 complexity | 39063abc1e55bb776fef94d79093616d MD5 | raw file
Possible License(s): AGPL-1.0, LGPL-2.1, GPL-2.0, AGPL-3.0, BSD-3-Clause

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. ## Connect to the database
  3. include("include.php");
  4. ## Other Includes
  5. include("extentions/wideimage/WideImage.php"); ## Image Manipulation Library
  6. ## Start session
  7. session_start();
  8. $time = time();
  9. //$message = null;
  10. #####################################################
  11. ## COOKIE STUFF - AUTOMATIC LOGIN
  12. #####################################################
  13. ## Check if the id and pass match a user
  14. if ($cookieid && $cookiepass) {
  15. $cookieid = mysql_real_escape_string($cookieid);
  16. $cookiepass = mysql_real_escape_string($cookiepass);
  17. $query = "SELECT * FROM users WHERE id=$cookieid AND userpass='$cookiepass'";
  18. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  19. $cookieuser = mysql_fetch_object($result);
  20. if ($cookieuser->id) {
  21. $_SESSION['userid'] = $cookieuser->id;
  22. $_SESSION['password'] = $cookieuser->userpass;
  23. $_SESSION['userlevel'] = $cookieuser->userlevel;
  24. $loggedin = 1;
  25. } else {
  26. unset($_SESSION['userid']);
  27. unset($_SESSION['password']);
  28. unset($_SESSION['userlevel']);
  29. $loggedin = 0;
  30. }
  31. }
  32. #####################################################
  33. ## LOGIN FUNCTIONS
  34. #####################################################
  35. $loggedin = 0; ## Just in case
  36. ## If they're attempting to log in
  37. if ($function == 'Log In') {
  38. ## Verify their credentials
  39. $username = mysql_real_escape_string($username);
  40. $password = mysql_real_escape_string($password);
  41. $query = "SELECT * FROM users WHERE username='$username' AND userpass=PASSWORD('$password')";
  42. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  43. $user = mysql_fetch_object($result);
  44. if ($user->lastupdatedby_admin) {
  45. $query = "SELECT * FROM users WHERE id=$user->lastupdatedby_admin";
  46. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  47. $adminuser = mysql_fetch_object($result);
  48. }
  49. ## If their info isn't found, let them know
  50. if (!isset($user->id)) {
  51. $errormessage = 'Incorrect login info.';
  52. $loggedin = 0;
  53. }
  54. ## If their is deactivated let them know
  55. elseif ($user->active == 0) {
  56. $errormessage = 'Your account is de-activated. If you believe this has happened in error contact <a href="mailto:' . $adminuser->emailaddress . '">' . $adminuser->username . '</a>';
  57. $loggedin = 0;
  58. }
  59. ## Otherwise, store their session variables
  60. else {
  61. $_SESSION['userid'] = $user->id;
  62. $_SESSION['password'] = $user->userpass;
  63. $_SESSION['userlevel'] = $user->userlevel;
  64. $loggedin = 1;
  65. if ($user->banneragreement == 1) {
  66. $tab = 'mainmenu';
  67. } else {
  68. $tab = 'agreement';
  69. }
  70. }
  71. ## If they're logged in at this point, store a cookie
  72. if ($loggedin == 1 && $setcookie == 'on') {
  73. setcookie('cookieid', $user->id, time() + 86400 * 365);
  74. setcookie('cookiepass', $user->userpass, time() + 86400 * 365);
  75. }
  76. }
  77. ## If they're attempting to log out
  78. else if ($function == 'Log Out') {
  79. unset($_SESSION['userid']);
  80. unset($_SESSION['password']);
  81. unset($_SESSION['userlevel']);
  82. setcookie('cookieid', "", 0);
  83. setcookie('cookiepass', "", 0);
  84. $loggedin = 0;
  85. $tab = 'mainmenu';
  86. }
  87. ## If they're already logged in
  88. else if (isset($_SESSION['userid'])) {
  89. $loggedin_userid = $_SESSION['userid'];
  90. $loggedin_password = $_SESSION['password'];
  91. ## Verify their credentials
  92. $loggedin_userid = mysql_real_escape_string($loggedin_userid);
  93. $loggedin_password = mysql_real_escape_string($loggedin_password);
  94. $query = "SELECT * FROM users WHERE id=$loggedin_userid AND userpass='$loggedin_password'";
  95. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  96. $user = mysql_fetch_object($result);
  97. ## If their info isn't found, remove session variables
  98. if (!isset($user->id)) {
  99. unset($_SESSION['userid']);
  100. unset($_SESSION['password']);
  101. unset($_SESSION['userlevel']);
  102. $loggedin = 0;
  103. }
  104. ## Otherwise, mark them as logged in
  105. else {
  106. $loggedin = 1;
  107. }
  108. }
  109. ## If they're already logged out
  110. else {
  111. $loggedin = 0;
  112. }
  113. ## Administrator and SuperAdmin variable
  114. global $adminuserlevel;
  115. $adminuserlevel = '';
  116. if ($_SESSION['userlevel'] == 'ADMINISTRATOR' OR $_SESSION['userlevel'] == 'SUPERADMIN') {
  117. $adminuserlevel = 'ADMINISTRATOR';
  118. }
  119. // Logged in Redirect List
  120. $secureArea = array(
  121. //'addgame'
  122. );
  123. if (!$loggedin && in_array($tab, $secureArea)) {
  124. //header("Location:index.php");
  125. $tab = "mainmenu";
  126. $errormessage = "You must be logged in to access that area. <a href=\"$baseurl/?tab=login\">Login</a>";
  127. }
  128. #####################################################
  129. ## Language stuff
  130. #####################################################
  131. ## Get list of languages and store array
  132. global $languages;
  133. global $lid;
  134. $query = "SELECT * FROM languages ORDER BY name";
  135. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  136. while ($lang = mysql_fetch_object($result)) {
  137. $languages[$lang->id] = $lang->name;
  138. }
  139. ## Set the default language
  140. if (!isset($lid)) {
  141. if ($user->languageid) {
  142. $lid = $user->languageid; ## user preferred language
  143. } else {
  144. $lid = 1; ## English
  145. }
  146. }
  147. #####################################################
  148. ## MAIN MENU FUNCTIONS
  149. #####################################################
  150. if ($function == 'Add Game') {
  151. ## Get Platform POSTDATA
  152. //$selectedPlatform = $_POST['Platform'];
  153. ## Check for exact matches for seriesname
  154. $GameTitle = mysql_real_escape_string($GameTitle);
  155. $GameTitle = ucfirst($GameTitle);
  156. $query = "SELECT * FROM games WHERE GameTitle='$GameTitle' AND Platform='$cleanPlatform'";
  157. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  158. ## Insert if it doesnt exist already
  159. if (mysql_num_rows($result) == 0) {
  160. $query = "INSERT INTO games (GameTitle, Platform, created, lastupdated) VALUES ('$GameTitle', '$cleanPlatform', $time, NULL)";
  161. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  162. $id = mysql_insert_id();
  163. // TODO: trace this back and change the name
  164. //seriesupdate($id); ## Update the XML data
  165. // Add Audit
  166. $sql = "INSERT INTO audits values(NULL, {$_SESSION['userid']}, 'created', $id, NULL)";
  167. mysql_query($sql);
  168. $URL = "$baseurl/game/$id/";
  169. header("Location: $URL");
  170. echo $selectedPlatform;
  171. } else {
  172. $errormessage = "Sorry, \"$GameTitle\" Already Exists For That Platform.";
  173. }
  174. }
  175. // Function to auto-redirect to game page if only one result is found
  176. if ($function == "Search")
  177. {
  178. $string = mysql_real_escape_string($string);
  179. $searchQuery = mysql_query("SELECT g.id FROM games as g WHERE g.GameTitle = '$string'");
  180. if (mysql_num_rows($searchQuery) == 1)
  181. {
  182. $searchResult = mysql_fetch_object($searchQuery);
  183. $tab = "game";
  184. $id = $searchResult->id;
  185. }
  186. else
  187. {
  188. $searchQuery = "SELECT g.id FROM games as g WHERE MATCH(g.GameTitle) AGAINST ('$string')";
  189. $arr = array();
  190. preg_match('/[0-9]+/', $string, $arr);
  191. foreach($arr as $numeric)
  192. {
  193. $searchQuery .= " AND g.GameTitle LIKE '%$numeric%'";
  194. }
  195. $searchQuery = mysql_query($searchQuery);
  196. if (mysql_num_rows($searchQuery) == 1)
  197. {
  198. $searchResult = mysql_fetch_object($searchQuery);
  199. $tab = "game";
  200. $id = $searchResult->id;
  201. }
  202. }
  203. }
  204. // Function to update last search/favorites view type in users db table
  205. if ($updateview == "yes")
  206. {
  207. if ($loggedin == 1)
  208. {
  209. if (!empty($searchview))
  210. {
  211. $mode = $searchview;
  212. }
  213. elseif (!empty($favoritesview))
  214. {
  215. $mode = $favoritesview;
  216. }
  217. mysql_query(" UPDATE users SET favorites_displaymode = '$mode' WHERE id = '$user->id' ");
  218. $user->favorites_displaymode = $mode;
  219. }
  220. }
  221. // Function to share page via email
  222. if($function == "Share via Email")
  223. {
  224. // Check that captcha is completed and matches
  225. if($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['captcha']) && $_POST['captcha'] == $_SESSION['captcha'])
  226. {
  227. ##Make userinput safe
  228. $fromname = mysql_real_escape_string($fromname);
  229. $fromaddress = mysql_real_escape_string($fromaddress);
  230. $toaddress = mysql_real_escape_string($toaddress);
  231. $url = mysql_real_escape_string($url);
  232. ## Email it to the user
  233. $from = "$fromname <$fromaddress>";
  234. $host = $mail_server;
  235. $to = "'$toaddress <$toaddress>";
  236. $subject = "TheGamesDB.net - $fromname has shared a link with you";
  237. if($messagecontent != false)
  238. {
  239. $quote = "Message From Your Friend:\n\"$messagecontent\"\n\n";
  240. }
  241. $emailmessage = "TheGamesDB.net \n\n$fromname visited thegamesdb.net and wanted to share a link with you \n\n$quote\nYour Link Details:\n$urlsubject: $url \n\nWe hope you enjoy your visit with us, \n\nTheGamesDB.net Crew.";
  242. $headers = 'From: ' . $from;
  243. mail($to, $subject, wordwrap($emailmessage, 70), $headers);
  244. // Display success message and finish up session
  245. $message = "Message Sent to $toaddress!";
  246. unset($_SESSION['captcha']); /* this line makes session free, we recommend you to keep it */
  247. }
  248. elseif($_SERVER['REQUEST_METHOD'] == "POST" && !isset($_POST['captcha']))
  249. {
  250. $errormessage = "Message was not sent, captcha didn't pass...<br />Please try again and remember to complete the captcha!";
  251. }
  252. }
  253. if ($function == 'Send PM') {
  254. $toQuery = mysql_query(" SELECT id FROM users WHERE username = '$pmto' LIMIT 1");
  255. $to = mysql_fetch_object($toQuery);
  256. $pmmessage = htmlspecialchars($pmmessage, ENT_QUOTES);
  257. if(mysql_query(" INSERT INTO messages (`from`, `to`, `subject`, `message`, `status`, `timestamp`) VALUES ('$user->id', '$to->id', '$pmsubject', '$pmmessage', 'new', FROM_UNIXTIME($time)); ") or die(mysql_error()))
  258. {
  259. $message = "PM Sent to \"$pmto\" Successfully";
  260. }
  261. else
  262. {
  263. $errormessage = "Oops! There was a problem sending your message,<br />Please try again...";
  264. }
  265. }
  266. if ($function == 'Delete PM') {
  267. if(mysql_query(" DELETE FROM messages WHERE messages.id = $pmid AND messages.to = '$user->id' "))
  268. {
  269. $message = "Your message was deleted.";
  270. }
  271. else
  272. {
  273. $errormessage = "There was a problem deleting your message,<br />Please try again...";
  274. }
  275. }
  276. if ($function == "Generate Platform Alias's") {
  277. if($aliasResult = mysql_query(" SELECT p.id, p.name, p.alias FROM platforms AS p WHERE p.alias IS NULL OR p.alias = '' "))
  278. {
  279. $successflag = true;
  280. while($alias = mysql_fetch_object($aliasResult))
  281. {
  282. $platformName = trim($alias->name);
  283. $platformName = strtolower($platformName);
  284. $platformName = str_ireplace(" ", "-", $platformName);
  285. $platformAlias = preg_replace("/[^a-z0-9\-]/", "", $platformName);
  286. if(!mysql_query(" UPDATE platforms SET alias = '$platformAlias' WHERE id = '$alias->id' "))
  287. {
  288. $successflag = false;
  289. }
  290. }
  291. if($successflag == true)
  292. {
  293. $message = "Missing Platform Alias's Generated Successfully";
  294. }
  295. else
  296. {
  297. $errormessage = "There was a problem generating the Platform Alias's,<br />please carefully check the list and try again.";
  298. }
  299. }
  300. else {
  301. $errormessage = "There was a problem generating the Platform Alias's,<br />please carefully check the list and try again.";
  302. }
  303. }
  304. /*
  305. * Game Functions
  306. */
  307. if ($function == 'Save Game') {
  308. $message = null;
  309. $errormessage = null;
  310. $updates = array();
  311. foreach ($_POST AS $key => $value) {
  312. if ($key != 'function' && $key != 'button' && $key != 'newshowid' && $key != 'comments' && $key != 'email' && !strstr($key, 'GameTitle_') && !strstr($key, 'Overview_') && $key != 'comments' && $key != 'requestcomments' && $key != 'requestreason') {
  313. $value = rtrim($value);
  314. $value = ltrim($value);
  315. if ($value) {
  316. $key = mysql_real_escape_string($key);
  317. $value = strip_tags($value, '');
  318. $value = mysql_real_escape_string($value);
  319. array_push($updates, "$key='$value'");
  320. } else {
  321. array_push($updates, "$key=NULL");
  322. }
  323. }
  324. }
  325. array_push($updates, "lastupdated=$time");
  326. ## To keep things simple, we set GameTitle and Overview to the English for now
  327. if ($adminuserlevel == 'ADMINISTRATOR') {
  328. $GameTitle = ltrim($_POST["GameTitle"]);
  329. $GameTitle = rtrim($GameTitle);
  330. if ($GameTitle) {
  331. $GameTitle = mysql_real_escape_string($GameTitle);
  332. array_push($updates, "GameTitle='$GameTitle'");
  333. } else {
  334. array_push($updates, "GameTitle=NULL");
  335. }
  336. }
  337. $Overview = trim($_POST["Overview"]);
  338. if ($Overview) {
  339. $Overview = mysql_real_escape_string($Overview);
  340. array_push($updates, "Overview='$Overview'");
  341. } else {
  342. array_push($updates, "Overview=NULL");
  343. }
  344. ## Join the fields and run the query
  345. $updatestring = implode(', ', $updates);
  346. $newshowid = mysql_real_escape_string($newshowid);
  347. $query = "UPDATE games SET $updatestring WHERE id=$newshowid";
  348. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  349. // Add Audit
  350. if (!empty($updatestring)) {
  351. $sql = "INSERT INTO audits values(NULL, {$_SESSION['userid']}, 'updated', $id, NULL)";
  352. mysql_query($sql);
  353. }
  354. $message .= 'Game saved.';
  355. $id = $newshowid;
  356. //$tab = 'game-edit';
  357. header("Location: $baseurl/game-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  358. exit;
  359. }
  360. if ($function == 'Upload Game Banner') {
  361. $message = null;
  362. $errormessage = null;
  363. $subkey = "graphical";
  364. if(isset($bannerfile))
  365. {
  366. $uploadedfile = $bannerfile;
  367. }
  368. else
  369. {
  370. $uploadedfile = $_FILES['bannerfile']['tmp_name'];
  371. }
  372. ## Check if the image is the right size
  373. list($image_width, $image_height, $image_type, $image_attr) = getimagesize($uploadedfile);
  374. if ($image_width == 760 && $image_height == 140) {
  375. if ($image_type == '2' || $image_type == '3') { ## Check if it's a JPEG or png
  376. if ($image_type == '2') { ## If it's a JPEG name the extesion accordingly
  377. ## Generate the new filename
  378. if ($subkey == 'graphical') {
  379. if (file_exists("banners/$subkey/$id-g.jpg") || file_exists("banners/$subkey/$id-g.png")) {
  380. $filekey = 2;
  381. while (file_exists("banners/$subkey/$id-g$filekey.jpg") || file_exists("banners/$subkey/$id-g$filekey.png")) {
  382. $filekey++;
  383. }
  384. $filename = "$subkey/$id-g$filekey.jpg";
  385. } else {
  386. $filename = "$subkey/$id-g.jpg";
  387. }
  388. }
  389. }
  390. elseif ($image_type == '3') { ## If it's a PNG name the extesion accordingly
  391. ## Generate the new filename
  392. if ($subkey == 'graphical') {
  393. if (file_exists("banners/$subkey/$id-g.jpg") || file_exists("banners/$subkey/$id-g.png")) {
  394. $filekey = 2;
  395. while (file_exists("banners/$subkey/$id-g$filekey.jpg") || file_exists("banners/$subkey/$id-g$filekey.png")) {
  396. $filekey++;
  397. }
  398. $filename = "$subkey/$id-g$filekey.png";
  399. } else {
  400. $filename = "$subkey/$id-g.png";
  401. }
  402. }
  403. }
  404. if ($subkey == 'blank') {
  405. $languageid = '0';
  406. }
  407. ## Rename/move the file
  408. if(isset($bannerfile))
  409. {
  410. if(rename($uploadedfile, "banners/$filename"))
  411. {
  412. $moveSuccess = true;
  413. }
  414. }
  415. else
  416. {
  417. if (move_uploaded_file($uploadedfile, "banners/$filename"))
  418. {
  419. $moveSuccess = true;
  420. }
  421. }
  422. if ($moveSuccess == true)
  423. {
  424. ## Insert database record
  425. $id = mysql_real_escape_string($id);
  426. $subkey = mysql_real_escape_string($subkey);
  427. $query = "INSERT INTO banners (keytype, keyvalue, userid, subkey, dateadded, filename, languageid) VALUES ('series', $id, $user->id, '$subkey', $time, '$filename', '$languageid')";
  428. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  429. ## Reset the missing banner count
  430. $query = "UPDATE games SET bannerrequest=0 WHERE id=$id";
  431. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  432. ## Store the seriesid for the XML updater
  433. seriesupdate($id);
  434. }
  435. } else {
  436. $errormessage = 'Game banners MUST be in either JPG or PNG format.';
  437. }
  438. }
  439. else {
  440. $errormessage = 'Game banners MUST be 760px wide by 140px tall';
  441. }
  442. $message .= "Banner sucessfully added.";
  443. $tab = "game-edit";
  444. //header("Location: $baseurl/game-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  445. //exit;
  446. }
  447. if ($function == 'Delete Game' && $adminuserlevel == 'ADMINISTRATOR') {
  448. ## Prepare SQL
  449. $id = mysql_real_escape_string($id);
  450. $query = "DELETE FROM games WHERE id=$id";
  451. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  452. $query = "DELETE FROM translation_seriesname WHERE seriesid=$id";
  453. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  454. $query = "DELETE FROM translation_seriesoverview WHERE seriesid=$id";
  455. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  456. ## Store the seriesid for the XML updater
  457. seriesupdate($newshowid);
  458. $query = "INSERT INTO deletions (path) VALUES ('data/series/$id')";
  459. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  460. $message = 'Game deleted.';
  461. $id = $newshowid;
  462. $tab = 'mainmenu';
  463. }
  464. if ($function == 'Upload Box Art') {
  465. $message = null;
  466. $errormessage = null;
  467. $id = mysql_real_escape_string($id);
  468. if(isset($bannerfile))
  469. {
  470. $uploadedfile = $bannerfile;
  471. }
  472. else
  473. {
  474. $uploadedfile = $_FILES['bannerfile']['tmp_name'];
  475. }
  476. list($image_width, $image_height, $image_type, $image_attr) = getimagesize($uploadedfile);
  477. $resolution = $image_width . 'x' . $image_height;
  478. if ($image_type == 2 || $image_type == 3)
  479. {
  480. $errormessage = "";
  481. }
  482. else
  483. {
  484. $errormessage = "Your image MUST be either in JPG or PNG format.<br>";
  485. }
  486. ## No errors, so we can process it
  487. if ($errormessage == "")
  488. {
  489. $fileid = 1;
  490. while (file_exists("banners/boxart/original/$cover_side/$id-$fileid.jpg") || file_exists("banners/boxart/original/$cover_side/$id-$fileid.png")) {
  491. $fileid++;
  492. }
  493. ## See if image is jpeg format
  494. if($image_type == 2)
  495. {
  496. $filename = "boxart/original/$cover_side/$id-$fileid.jpg";
  497. }
  498. ## or see if image is png format
  499. elseif($image_type == 3)
  500. {
  501. $filename = "boxart/original/$cover_side/$id-$fileid.png";
  502. }
  503. if(isset($bannerfile))
  504. {
  505. if(rename($uploadedfile, "banners/$filename"))
  506. {
  507. $moveSuccess = true;
  508. }
  509. }
  510. else
  511. {
  512. if (move_uploaded_file($uploadedfile, "banners/$filename"))
  513. {
  514. $moveSuccess = true;
  515. }
  516. }
  517. if ($moveSuccess == true)
  518. {
  519. ## Insert database record
  520. $id = mysql_real_escape_string($id);
  521. $colors = mysql_real_escape_string($colors);
  522. $query = "INSERT INTO banners (keytype, keyvalue, userid, dateadded, filename, languageid, resolution) VALUES ('boxart', $id, $user->id, $time, '$filename', 1, '$resolution')";
  523. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  524. ## Store the seriesid for the XML updater
  525. seriesupdate($id);
  526. }
  527. else
  528. {
  529. }
  530. $message .= "Box art sucessfully added.";
  531. $tab = 'game-edit';
  532. }
  533. //header("Location: $baseurl/game-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  534. //exit;
  535. }
  536. if ($function == 'Upload Fan Art') {
  537. $message = null;
  538. $errormessage = null;
  539. $id = mysql_real_escape_string($id);
  540. if(isset($bannerfile))
  541. {
  542. $uploadedfile = $bannerfile;
  543. }
  544. else
  545. {
  546. $uploadedfile = $_FILES['bannerfile']['tmp_name'];
  547. }
  548. ## Check if the image is the right size
  549. list($image_width, $image_height, $image_type, $image_attr) = getimagesize($uploadedfile);
  550. $resolution = $image_width . 'x' . $image_height;
  551. if ($resolution != '1920x1080' && $resolution != '1280x720') {
  552. $errormessage .= "Your image is not a valid fan art resolution.<br>";
  553. }
  554. if ($image_type != 2) {
  555. $errormessage .= "Your image MUST be in JPG format.<br>";
  556. }
  557. if (($resolution == '1920x1080' && filesize($uploadedfile) / 1024 > 2000) || ($resolution == '1280x720' && filesize($uploadedfile) / 1024 > 600)) {
  558. $errormessage .= "Your image exceeds the size restrictions.<br>";
  559. }
  560. ## No errors, so we can process it
  561. if ($errormessage == "") {
  562. ## Generate the new filename
  563. $fileid = 1;
  564. while (file_exists("banners/fanart/original/$id-$fileid.jpg")) {
  565. $fileid++;
  566. }
  567. $filename = "fanart/original/$id-$fileid.jpg";
  568. if(isset($bannerfile))
  569. {
  570. if(rename($uploadedfile, "banners/$filename"))
  571. {
  572. $moveSuccess = true;
  573. }
  574. }
  575. else
  576. {
  577. if (move_uploaded_file($uploadedfile, "banners/$filename"))
  578. {
  579. $moveSuccess = true;
  580. }
  581. }
  582. if ($moveSuccess == true)
  583. {
  584. ## Calculate the colors
  585. $colors = imagecolors("banners/$filename");
  586. ## Insert database record
  587. $id = mysql_real_escape_string($id);
  588. $colors = mysql_real_escape_string($colors);
  589. $query = "INSERT INTO banners (keytype, keyvalue, userid, dateadded, filename, languageid, resolution, colors) VALUES ('fanart', $id, $user->id, $time, '$filename', 1, '$resolution', '$colors')";
  590. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  591. ## Store the seriesid for the XML updater
  592. seriesupdate($id);
  593. }
  594. $message = "Fan art successfully added";
  595. }
  596. $tab = 'game-edit';
  597. //header("Location: $baseurl/game-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  598. //exit;
  599. }
  600. if ($function == 'Upload Screenshot') {
  601. $message = null;
  602. $errormessage = null;
  603. $id = mysql_real_escape_string($id);
  604. if(isset($bannerfile))
  605. {
  606. $uploadedfile = $bannerfile;
  607. }
  608. else
  609. {
  610. $uploadedfile = $_FILES['bannerfile']['tmp_name'];
  611. }
  612. ## Check if the image is the right size
  613. list($image_width, $image_height, $image_type, $image_attr) = getimagesize($uploadedfile);
  614. $resolution = $image_width . 'x' . $image_height;
  615. if ($image_type != 2) {
  616. $errormessage .= "Your image MUST be in JPG format.<br>";
  617. }
  618. if ((filesize($uploadedfile) / 1024 > 2000)) {
  619. $errormessage .= "Your image exceeds the size restrictions.<br>";
  620. }
  621. ## No errors, so we can process it
  622. if ($errormessage == "") {
  623. ## Generate the new filename
  624. $fileid = 1;
  625. while (file_exists("banners/screenshots/$id-$fileid.jpg") && $errormessage == "") {
  626. if($fileid == 8) {
  627. $errormessage = "This game already has the maximum allowed number of screenshots.<br>Please delete an existing screenshot before attempting to upload another.";
  628. }
  629. $fileid++;
  630. }
  631. if ($errormessage == "") {
  632. $filename = "screenshots/$id-$fileid.jpg";
  633. if(isset($bannerfile))
  634. {
  635. if(rename($uploadedfile, "banners/$filename"))
  636. {
  637. $moveSuccess = true;
  638. }
  639. }
  640. else
  641. {
  642. if (move_uploaded_file($uploadedfile, "banners/$filename"))
  643. {
  644. $moveSuccess = true;
  645. }
  646. }
  647. if ($moveSuccess == true)
  648. {
  649. ## Insert database record
  650. $id = mysql_real_escape_string($id);
  651. $query = "INSERT INTO banners (keytype, keyvalue, userid, dateadded, filename, languageid) VALUES ('screenshot', $id, $user->id, $time, '$filename', 1)";
  652. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  653. ## Store the seriesid for the XML updater
  654. seriesupdate($id);
  655. $message = "Screenshot successfully added";
  656. }
  657. }
  658. }
  659. $tab = 'game-edit';
  660. //header("Location: $baseurl/game-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  661. //exit;
  662. }
  663. if ($function == 'Upload Clear Logo') {
  664. $message = null;
  665. $errormessage = null;
  666. if(isset($bannerfile))
  667. {
  668. $uploadedfile = $bannerfile;
  669. }
  670. else
  671. {
  672. $uploadedfile = $_FILES['bannerfile']['tmp_name'];
  673. }
  674. ## Get image Dimensions, Format Type & Attributes
  675. list($image_width, $image_height, $image_type, $image_attr) = getimagesize($uploadedfile);
  676. ## Check if the image is the right size
  677. if ($image_width == 400 && $image_height <= 250) {
  678. $resolution = $image_width . "x" . $image_height;
  679. ## Check if it's a PNG format image
  680. if ($image_type == '3') {
  681. ## Check if this game already has a ClearLOGO uploaded
  682. if(file_exists("banners/clearlogo/$id.png"))
  683. {
  684. $errormessage = "This game already has a ClearLOGO uploaded.<br>Please delete the current image before attempting to upload another.";
  685. }
  686. else
  687. {
  688. $filename = "clearlogo/$id.png";
  689. ## Rename/move the file
  690. if(isset($bannerfile))
  691. {
  692. if(rename($uploadedfile, "banners/$filename"))
  693. {
  694. $moveSuccess = true;
  695. }
  696. }
  697. else
  698. {
  699. if (move_uploaded_file($uploadedfile, "banners/$filename"))
  700. {
  701. $moveSuccess = true;
  702. }
  703. }
  704. if ($moveSuccess == true)
  705. {
  706. ## Insert database record
  707. $id = mysql_real_escape_string($id);
  708. $query = "INSERT INTO banners (keytype, keyvalue, userid, dateadded, filename, languageid, resolution) VALUES ('clearlogo', $id, $user->id, $time, 'clearlogo/$id.png', 1, '$resolution')";
  709. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  710. $message .= "ClearLOGO sucessfully added.";
  711. }
  712. }
  713. }
  714. else
  715. {
  716. $errormessage = 'ClearLOGO\'s MUST be in PNG format.';
  717. }
  718. }
  719. else
  720. {
  721. $errormessage = 'ClearLOGO\'s MUST be 400 pixels wide by a maximum of 250px tall';
  722. }
  723. $tab = "game-edit";
  724. //header("Location: $baseurl/game-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  725. //exit;
  726. }
  727. if ($function == 'Lock Game') {
  728. ## Prepare SQL
  729. $id = mysql_real_escape_string($id);
  730. $query = "UPDATE games SET locked='yes', lockedby=$user->id WHERE id=$id";
  731. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  732. }
  733. if ($function == 'UnLock Game') {
  734. ## Prepare SQL
  735. $id = mysql_real_escape_string($id);
  736. $query = "UPDATE games SET locked='no', lockedby='' WHERE id=$id";
  737. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  738. }
  739. ## Change A Series Banner's Language
  740. if ($function == 'Change Language' AND $adminuserlevel == 'ADMINISTRATOR') {
  741. ## Prepare SQL
  742. $id = mysql_real_escape_string($id);
  743. $query = "UPDATE banners SET languageid=$languageid WHERE id=$id";
  744. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  745. $message = 'Banner Language Changed.';
  746. }
  747. /*
  748. * Platform Functions
  749. */
  750. if ($function == 'Save Platform') {
  751. $message = null;
  752. $errormessage = null;
  753. $updates = array();
  754. foreach ($_POST AS $key => $value) {
  755. if ($key != 'function' && $key != 'platformid' && $key != 'alias') {
  756. $value = rtrim($value);
  757. $value = ltrim($value);
  758. if ($value) {
  759. $key = mysql_real_escape_string($key);
  760. $value = strip_tags($value, '');
  761. $value = mysql_real_escape_string($value);
  762. $value = htmlspecialchars($value, ENT_QUOTES);
  763. array_push($updates, "$key='$value'");
  764. } else {
  765. array_push($updates, "$key=NULL");
  766. }
  767. }
  768. }
  769. $alias = trim($alias);
  770. $alias = strtolower($alias);
  771. $alias = str_ireplace(" ", "-", $alias);
  772. $alias = preg_replace("/[^a-z0-9\-]/", "", $alias);
  773. if($aliasResult = mysql_query(" SELECT p.id FROM platforms AS p WHERE p.alias = '$alias' AND p.id != $platformid "))
  774. {
  775. if(mysql_num_rows($aliasResult) == 0)
  776. {
  777. array_push($updates, "alias='$alias'");
  778. }
  779. else
  780. {
  781. $errormessage = "Alias ($alias) already exists... please choose another.";
  782. }
  783. }
  784. ## Join the fields and run the query
  785. $updatestring = implode(', ', $updates);
  786. $query = "UPDATE platforms SET $updatestring WHERE id=$platformid";
  787. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  788. // Add Audit
  789. if (!empty($updatestring)) {
  790. //$sql = "INSERT INTO audits values(NULL, {$_SESSION['userid']}, 'updated', $id, NULL)";
  791. //mysql_query($sql);
  792. }
  793. $message .= 'Platform Saved.';
  794. $id = $platformid;
  795. $tab = 'platform-edit';
  796. header("Location: $baseurl/platform-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  797. exit;
  798. }
  799. if ($function == 'Upload Platform Icon') {
  800. $message = null;
  801. $errormessage = null;
  802. $id = mysql_real_escape_string($id);
  803. list($image_width, $image_height, $image_type, $image_attr) = getimagesize($_FILES['iconfile']['tmp_name']);
  804. $resolution = $image_width . 'x' . $image_height;
  805. if ($image_type == 3)
  806. {
  807. $errormessage = "";
  808. }
  809. else
  810. {
  811. $errormessage = "Your image MUST be in PNG format.<br>";
  812. }
  813. ## No errors, so we can process it
  814. if ($errormessage == "")
  815. {
  816. if(!empty($platformAlias))
  817. {
  818. $fileid = $platformAlias . "-" . time();
  819. }
  820. else
  821. {
  822. $fileid = $platformId . "-" . time();
  823. }
  824. $filename = "$fileid.png";
  825. $dimensions = array(16, 24, 32, 48);
  826. $prevIconQuery = mysql_query(" SELECT icon FROM platforms WHERE id = $platformId LIMIT 1 ");
  827. $prevIconResults = mysql_fetch_object($prevIconQuery);
  828. $prevIconFilename = $prevIconResults->icon;
  829. if($prevIconFilename != "console_default.png")
  830. {
  831. foreach($dimensions AS $dim)
  832. {
  833. unlink("images/common/consoles/png$dim/$prevIconFilename");
  834. }
  835. }
  836. include_once('simpleimage.php');
  837. foreach($dimensions AS $dim)
  838. {
  839. $image = new SimpleImage();
  840. $image->load($_FILES['iconfile']['tmp_name']);
  841. $image->resize($dim, $dim);
  842. $image->save("images/common/consoles/png$dim/$filename");
  843. $image = null;
  844. }
  845. if ($errormessage == false) {
  846. ## Insert database record
  847. $query = " UPDATE platforms SET icon = '$filename' WHERE id = $platformId ";
  848. if($result = mysql_query($query))
  849. {
  850. $message .= "Platform Icon Sucessfully Updated.";
  851. }
  852. else
  853. {
  854. $errormessage = "There was a problem whilst updating the database entry for this platform icon.";
  855. }
  856. }
  857. $tab = 'platform-edit';
  858. header("Location: $baseurl/platform-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  859. exit;
  860. }
  861. }
  862. if ($function == 'Upload Platform Box Art') {
  863. $message = null;
  864. $errormessage = null;
  865. $id = mysql_real_escape_string($id);
  866. list($image_width, $image_height, $image_type, $image_attr) = getimagesize($_FILES['bannerfile']['tmp_name']);
  867. $resolution = $image_width . 'x' . $image_height;
  868. if ($image_type == 2 || $image_type == 3)
  869. {
  870. $errormessage = "";
  871. }
  872. else
  873. {
  874. $errormessage = "Your image MUST be either in JPG or PNG format.<br>";
  875. }
  876. ## No errors, so we can process it
  877. if ($errormessage == "")
  878. {
  879. $fileid = 1;
  880. while (file_exists("banners/platform/boxart/$id-$fileid.jpg") || file_exists("banners/platform/boxart/$id-$fileid.png")) {
  881. $fileid++;
  882. }
  883. ## See if image is jpeg format
  884. if($image_type == 2)
  885. {
  886. $filename = "platform/boxart/$id-$fileid.jpg";
  887. }
  888. ## or see if image is png format
  889. elseif($image_type == 3)
  890. {
  891. $filename = "platform/boxart/$id-$fileid.png";
  892. }
  893. if (move_uploaded_file($_FILES['bannerfile']['tmp_name'], "banners/$filename")) {
  894. ## Insert database record
  895. $id = mysql_real_escape_string($id);
  896. $colors = mysql_real_escape_string($colors);
  897. $query = "INSERT INTO banners (keytype, keyvalue, userid, dateadded, filename, languageid, resolution) VALUES ('platform-boxart', $id, $user->id, $time, '$filename', 1, '$resolution')";
  898. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  899. }
  900. $message .= "Platform Art Sucessfully Added.";
  901. $tab = 'platform-edit';
  902. header("Location: $baseurl/platform-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  903. exit;
  904. }
  905. }
  906. if ($function == 'Upload Platform Fan Art') {
  907. $message = null;
  908. $errormessage = null;
  909. $id = mysql_real_escape_string($id);
  910. ## Check if the image is the right size
  911. list($image_width, $image_height, $image_type, $image_attr) = getimagesize($_FILES['bannerfile']['tmp_name']);
  912. $resolution = $image_width . 'x' . $image_height;
  913. if ($resolution != '1920x1080' && $resolution != '1280x720') {
  914. $errormessage .= "Your image is not a valid fan art resolution.<br>";
  915. }
  916. if ($image_type != 2) {
  917. $errormessage .= "Your image MUST be in JPG format.<br>";
  918. }
  919. if (($resolution == '1920x1080' && filesize($_FILES['bannerfile']['tmp_name']) / 1024 > 2000) || ($resolution == '1280x720' && filesize($_FILES['bannerfile']['tmp_name']) / 1024 > 600)) {
  920. $errormessage .= "Your image exceeds the size restrictions.<br>";
  921. }
  922. ## No errors, so we can process it
  923. if ($errormessage == "") {
  924. ## Generate the new filename
  925. $fileid = 1;
  926. while (file_exists("banners/platform/fanart/$id-$fileid.jpg")) {
  927. $fileid++;
  928. }
  929. $filename = "platform/fanart/$id-$fileid.jpg";
  930. if (move_uploaded_file($_FILES['bannerfile']['tmp_name'], "banners/$filename")) {
  931. ## Calculate the colors
  932. $colors = imagecolors("banners/$filename");
  933. ## Insert database record
  934. $id = mysql_real_escape_string($id);
  935. $colors = mysql_real_escape_string($colors);
  936. $query = "INSERT INTO banners (keytype, keyvalue, userid, dateadded, filename, languageid, resolution, colors) VALUES ('platform-fanart', $id, $user->id, $time, '$filename', 1, '$resolution', '$colors')";
  937. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  938. }
  939. $message = "Fan art successfully added";
  940. }
  941. $tab = 'platform-edit';
  942. header("Location: $baseurl/platform-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  943. exit;
  944. }
  945. if ($function == 'Upload Platform Banner') {
  946. $message = null;
  947. $errormessage = null;
  948. ## Check if the image is the right size
  949. list($image_width, $image_height, $image_type, $image_attr) = getimagesize($_FILES['bannerfile']['tmp_name']);
  950. if ($image_width == 760 && $image_height == 140) {
  951. if ($image_type == '2' || $image_type == '3') { ## Check if it's a JPEG or png
  952. if ($image_type == '2') { ## If it's a JPEG name the extesion accordingly
  953. ## Generate the new filename
  954. if (file_exists("banners/platform/banners/$id-1.jpg") || file_exists("banners/platform/banners/$id-1.png")) {
  955. $filekey = 2;
  956. while (file_exists("banners/$id-$filekey.jpg") || file_exists("banners/$id-$filekey.png")) {
  957. $filekey++;
  958. }
  959. $filename = "platform/banners/$id-$filekey.jpg";
  960. } else {
  961. $filename = "platform/banners/$id-1.jpg";
  962. }
  963. }
  964. elseif ($image_type == '3') { ## If it's a PNG name the extesion accordingly
  965. ## Generate the new filename
  966. if (file_exists("banners/$id.jpg") || file_exists("banners/$id.png")) {
  967. $filekey = 2;
  968. while (file_exists("banners/$id-$filekey.jpg") || file_exists("banners/$id-$filekey.png")) {
  969. $filekey++;
  970. }
  971. $filename = "platform/banners/$id-$filekey.png";
  972. } else {
  973. $filename = "platform/banners/$id-1.png";
  974. }
  975. }
  976. ## Rename/move the file
  977. if (move_uploaded_file($_FILES['bannerfile']['tmp_name'], "banners/$filename")) {
  978. ## Insert database record
  979. $id = mysql_real_escape_string($id);
  980. $subkey = mysql_real_escape_string($subkey);
  981. $query = "INSERT INTO banners (keytype, keyvalue, userid, dateadded, filename) VALUES ('platform-banner', $id, $user->id, $time, '$filename')";
  982. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  983. }
  984. } else {
  985. $errormessage = 'Game banners MUST be in either JPG or PNG format.';
  986. }
  987. } else {
  988. $errormessage = 'Game banners MUST be 760px wide by 140px tall';
  989. }
  990. $message .= "Banner sucessfully added.";
  991. header("Location: $baseurl/platform-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  992. exit;
  993. }
  994. if ($function == 'Upload Controller Art') {
  995. $message = null;
  996. $errormessage = null;
  997. ## Get image Dimensions, Format Type & Attributes
  998. list($image_width, $image_height, $image_type, $image_attr) = getimagesize($_FILES['controllerartfile']['tmp_name']);
  999. ## Check if the image is the right size
  1000. if ($image_width == 300 && $image_height == 300) {
  1001. ## Check if it's a PNG format image
  1002. if ($image_type == '3') {
  1003. ## Generate the new filename
  1004. if (file_exists("banners/platform/controllerart/$id.png"))
  1005. {
  1006. unlink("banners/platform/controllerart/$id.png");
  1007. }
  1008. ## Rename/move the file
  1009. if (move_uploaded_file($_FILES['controllerartfile']['tmp_name'], "banners/platform/controllerart/$id.png")) {
  1010. ## Insert database record
  1011. $id = mysql_real_escape_string($id);
  1012. $query = "UPDATE platforms SET controller = '$id.png' WHERE id = $id";
  1013. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  1014. $message .= "Controller art sucessfully added.";
  1015. }
  1016. }
  1017. else
  1018. {
  1019. $errormessage = 'Controller art MUST be in PNG format.';
  1020. }
  1021. } else {
  1022. $errormessage = 'Controller art MUST be 300px wide by 300px tall';
  1023. }
  1024. header("Location: $baseurl/platform-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  1025. exit;
  1026. }
  1027. if ($function == 'Upload Console Art') {
  1028. $message = null;
  1029. $errormessage = null;
  1030. ## Get image Dimensions, Format Type & Attributes
  1031. list($image_width, $image_height, $image_type, $image_attr) = getimagesize($_FILES['consoleartfile']['tmp_name']);
  1032. ## Check if the image is the right size
  1033. if ($image_width == 300 && $image_height == 300) {
  1034. ## Check if it's a PNG format image
  1035. if ($image_type == '3') {
  1036. ## Generate the new filename
  1037. if (file_exists("banners/platform/consoleart/$id.png"))
  1038. {
  1039. unlink("banners/platform/consoleart/$id.png");
  1040. }
  1041. ## Rename/move the file
  1042. if (move_uploaded_file($_FILES['consoleartfile']['tmp_name'], "banners/platform/consoleart/$id.png")) {
  1043. ## Insert database record
  1044. $id = mysql_real_escape_string($id);
  1045. $query = "UPDATE platforms SET console = '$id.png' WHERE id = $id";
  1046. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  1047. $message .= "Console art sucessfully added.";
  1048. }
  1049. }
  1050. else
  1051. {
  1052. $errormessage = 'Console art MUST be in PNG format.';
  1053. }
  1054. } else {
  1055. $errormessage = 'Console art MUST be 300px wide by 300px tall';
  1056. }
  1057. header("Location: $baseurl/platform-edit/$id/?message=" . urlencode($message) . "&errormessage=" . urlencode($errormessage));
  1058. exit;
  1059. }
  1060. if ($function == 'Delete Controller Art') {
  1061. if ($adminuserlevel == 'ADMINISTRATOR')
  1062. {
  1063. if(unlink("banners/platform/controllerart/$id.png"))
  1064. {
  1065. $query = "UPDATE platforms SET controller = NULL WHERE id = $id";
  1066. if($result = mysql_query($query))
  1067. {
  1068. $message .= "Controller art sucessfully deleted.";
  1069. }
  1070. }
  1071. }
  1072. }
  1073. if ($function == 'Delete Console Art') {
  1074. if ($adminuserlevel == 'ADMINISTRATOR')
  1075. {
  1076. if(unlink("banners/platform/consoleart/$id.png"))
  1077. {
  1078. $query = "UPDATE platforms SET console = NULL WHERE id = $id";
  1079. if($result = mysql_query($query))
  1080. {
  1081. $message .= "Console art sucessfully deleted.";
  1082. }
  1083. }
  1084. }
  1085. }
  1086. /*
  1087. * Comments Functions
  1088. */
  1089. function check_input($value)
  1090. {
  1091. // Stripslashes
  1092. if (get_magic_quotes_gpc())
  1093. {
  1094. $value = stripslashes($value);
  1095. }
  1096. // Quote if not a number
  1097. if (!is_numeric($value))
  1098. {
  1099. $value = "'" . mysql_real_escape_string($value) . "'";
  1100. }
  1101. return $value;
  1102. }
  1103. if ($function == 'Add Game Comment') {
  1104. $comment = htmlspecialchars($comment, ENT_QUOTES);
  1105. $userid = check_input($userid);
  1106. $gameid = check_input($gameid);
  1107. $commentQuery = mysql_query(" INSERT INTO comments (userid, gameid, comment, timestamp) VALUES ('$userid', '$gameid', '$comment', FROM_UNIXTIME($time)) ") or die('Query failed: ' . mysql_error());
  1108. }
  1109. if ($function == 'Delete Game Comment') {
  1110. $commentQuery = mysql_query(" DELETE FROM comments WHERE id = $commentid ") or die('Query failed: ' . mysql_error());
  1111. }
  1112. #####################################################
  1113. ## REGISTRATION AND PASSWORD FUNCTIONS
  1114. #####################################################
  1115. if ($function == 'Register') {
  1116. ## Check for exact matches for username
  1117. $username = mysql_real_escape_string($username);
  1118. $userpass1 = mysql_real_escape_string($userpass1);
  1119. $userpass2 = mysql_real_escape_string($userpass2);
  1120. $email = mysql_real_escape_string($email);
  1121. $languageid = mysql_real_escape_string($languageid);
  1122. $uniqueid = strtoupper(substr(md5(uniqid(rand(), true)), 0, 16));
  1123. $query = "SELECT * FROM users WHERE username='$username'";
  1124. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  1125. ## Insert if it doesnt exist already
  1126. if (mysql_num_rows($result) == 0) {
  1127. if ($userpass1 == $userpass2 && $userpass1 != '') {
  1128. if ($email) {
  1129. $query = "INSERT INTO users (username, userpass, emailaddress, languageid, uniqueid) VALUES ('$username', PASSWORD('$userpass1'), '$email', $languageid, '$uniqueid')";
  1130. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  1131. $tab = 'mainmenu';
  1132. $message = '<p style=\"font-size: x-small !important;\"><strong><em>Thank you for registering with TheGamesDB!</em></strong><p>You will receive an email confirmation with your account information shortly. Please proceed to the <a href=\"$baseurl/?tab=login\">Login</a> screen and review our terms and conditions. If you have any questions, please visit our forums. We hope you enjoy your stay!</p>';
  1133. ## Email it to the user
  1134. $from = "TheGamesDB <$mail_username>";
  1135. $host = $mail_server;
  1136. $to = $username . '<' . $email . '>';
  1137. $subject = "Thank you for registering with TheGamesDB.net";
  1138. $emailmessage = "Thank you for registering with TheGamesDB.net.\n\nHere is your new login information:\nusername: $username\npassword: $userpass1\n\nIf you have forgotten your password you can reset it by visiting: http://www.thegamesdb.net/?tab=password\n\nIf you have any questions, please let us know.\n\nTheGamesDB Crew.";
  1139. $headers = 'From: ' . $from;
  1140. mail($to, $subject, wordwrap($emailmessage, 70), $headers);
  1141. } else {
  1142. $errormessage = 'Email address is required.';
  1143. }
  1144. } else {
  1145. $errormessage = 'Passwords do not match or are below the minimum required length.';
  1146. }
  1147. } else {
  1148. $errormessage = 'Username already exists. Please try another.';
  1149. }
  1150. }
  1151. if ($function == 'Reset Password') {
  1152. ## Get their email address and username
  1153. $email = mysql_real_escape_string($email);
  1154. $query = "SELECT emailaddress, username, id FROM users WHERE emailaddress='$email'";
  1155. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  1156. $db = mysql_fetch_object($result);
  1157. ## If we found a match
  1158. if ($db->id) {
  1159. ## Generate a random password
  1160. $newpass = genpassword(8);
  1161. ## Set it in the database
  1162. $newpass = mysql_real_escape_string($newpass);
  1163. $query = "UPDATE users SET userpass=PASSWORD('$newpass') WHERE id='$db->id'";
  1164. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  1165. ## Email it to the user
  1166. $from = "TheGamesDB <$mail_username>";
  1167. $host = $mail_server;
  1168. $to = $db->username . '<' . $db->emailaddress . '>';
  1169. $subject = "Your account information";
  1170. $message = "This is an automated message.\n\nYour GamesDB password has been reset.\n\nHere is your new login information:\nusername: $db->username\npassword: $newpass\n\nIf you have any questions, please let us know.\n\nTheGamesDB Crew\n";
  1171. $headers = 'From: ' . $from;
  1172. mail($to, $subject, wordwrap($message, 70), $headers);
  1173. $message = 'Login information has been sent.';
  1174. } else {
  1175. $errormessage = 'That address cannot be found.';
  1176. }
  1177. }
  1178. if ($function == 'Update User Information') {
  1179. $user->languageid = $languageid;
  1180. ## Update password and email address
  1181. if ($userpass1 == $userpass2 && $userpass1 != '' && $email != '') {
  1182. $userpass1 = mysql_real_escape_string($userpass1);
  1183. $userpass2 = mysql_real_escape_string($userpass2);
  1184. $email = mysql_real_escape_string($email);
  1185. $languageid = mysql_real_escape_string($languageid);
  1186. $favorites_displaymode = mysql_real_escape_string($favorites_displaymode);
  1187. $query = "UPDATE users SET userpass=PASSWORD('$userpass1'), emailaddress='$email', languageid=$languageid, favorites_displaymode='$favorites_displaymode' WHERE id=$user->id";
  1188. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  1189. $message = 'Account was successfully updated.';
  1190. }
  1191. ## Error.. passwords were entered, but don't match
  1192. else if ($userpass1 || $userpass2) {
  1193. $errormessage = 'Passwords do not match.';
  1194. }
  1195. ## Update email address
  1196. else if ($email) {
  1197. $email = mysql_real_escape_string($email);
  1198. $languageid = mysql_real_escape_string($languageid);
  1199. $favorites_displaymode = mysql_real_escape_string($favorites_displaymode);
  1200. $query = "UPDATE users SET emailaddress='$email', languageid=$languageid, favorites_displaymode='$favorites_displaymode' WHERE id=$user->id";
  1201. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  1202. $message = 'Account was successfully updated (no password change).';
  1203. }
  1204. ## Error... empty emailaddress
  1205. else {
  1206. $errormessage = 'Naughty naughty... an email address is required.';
  1207. }
  1208. }
  1209. ## Update Users Image
  1210. if ($function == 'Update User Image') {
  1211. if($_FILES['userimage']['error'] == 0)
  1212. {
  1213. $existingfiles = glob("banners/users/" . $user->id . "*.jpg");
  1214. foreach ($existingfiles as $userfile)
  1215. {
  1216. unlink($userfile);
  1217. }
  1218. $filename = $_FILES['userimage']['name'];
  1219. $image = WideImage::load($_FILES['userimage']['tmp_name']);
  1220. $resized = $image->resize(64, 64);
  1221. $resized->saveToFile("banners/users/" . $user->id . "-" . date("YmdHis") . ".jpg");
  1222. $message = "Successfully Uploaded User Image";
  1223. }
  1224. else
  1225. {
  1226. $errormessage = "There was a problem uploading the image. Try again or use a different image.";
  1227. }
  1228. }
  1229. ## Administrator's User Update Form
  1230. if ($function == 'Admin Update User') {
  1231. ## Prepare the fields
  1232. $form_userlevel = mysql_real_escape_string($form_userlevel);
  1233. $languageid = mysql_real_escape_string($languageid);
  1234. $bannerlimit = mysql_real_escape_string($bannerlimit);
  1235. $form_active = mysql_real_escape_string($form_active);
  1236. ## Update password and all other fields
  1237. if ($userpass1 == $userpass2 && $userpass1 != '' && $email != '' && $username != '') {
  1238. $username = mysql_real_escape_string($username);
  1239. $userpass1 = mysql_real_escape_string($userpass1);
  1240. $userpass2 = mysql_real_escape_string($userpass2);
  1241. $email = mysql_real_escape_string($email);
  1242. $query = "UPDATE users SET username='$username', userpass=PASSWORD('$userpass1'), emailaddress='$email', userlevel='$form_userlevel', languageid='$languageid', bannerlimit='$bannerlimit', active='$form_active', lastupdatedby_admin='$user->id' WHERE id='$id'";
  1243. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  1244. $message = 'Account was successfully updated.';
  1245. }
  1246. ## Error.. passwords were entered, but don't match
  1247. else if ($userpass1 || $userpass2) {
  1248. $errormessage = 'Passwords do not match.';
  1249. }
  1250. ## Update all fields except password
  1251. else if ($email != '' && $username != '') {
  1252. $username = mysql_real_escape_string($username);
  1253. $email = mysql_real_escape_string($email);
  1254. $query = "UPDATE users SET username='$username', emailaddress='$email', userlevel='$form_userlevel', languageid='$languageid', bannerlimit='$bannerlimit', active='$form_active', lastupdatedby_admin='$user->id' WHERE id=$id"

Large files files are truncated, but you can click here to view the full file