PageRenderTime 45ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/inc.php

https://bitbucket.org/rbarnard/ruser
PHP | 461 lines | 339 code | 89 blank | 33 comment | 52 complexity | e9fb0e6213d6274270afe9ed86f60e22 MD5 | raw file
  1. <?php
  2. /***************************************************************************
  3. *
  4. * Author : Russell Barnard
  5. * Version : 1.0.0
  6. * Copyright: (C) 2011 Russell Barnard
  7. * Email : russell.j.barnard@gmail.com
  8. *
  9. ***************************************************************************/
  10. function mail_register($too, $Subject, $mess, $fromn, $from){
  11. $to = $too;
  12. $subject = $Subject;
  13. $message = $mess;
  14. $headers = 'MIME-Version: 1.0' . "\r\n";
  15. $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  16. $headers .= 'To: '.$too.' <'.$too.'>' . "\r\n";
  17. $headers .= 'From: '.$fromn.' <'.$from.'>' . "\r\n";
  18. if (empty($too) || empty($Subject) || empty($from) || empty($mess)){
  19. echo 'Please check you completed all fields!';
  20. }else{
  21. $didsend = mail($to, $subject, $message, $headers);
  22. if($didsend){
  23. echo'Email Sent';
  24. }else{
  25. echo 'Email Error';
  26. }
  27. }
  28. }
  29. /***************************************************************************/
  30. class dbConnect
  31. {
  32. /*SET THESE AND BEGIN*/
  33. var $server = "localhost";
  34. var $conn_username = "username";
  35. var $conn_password = "password";
  36. var $database_name = "db_name";
  37. var $connection;
  38. var $select;
  39. /***************************************************************************/
  40. function connect()
  41. {
  42. $this->connection = mysql_connect($this->server,$this->conn_username,$this->conn_password);
  43. $select = mysql_select_db($this->database_name,$this->connection);
  44. }
  45. /***************************************************************************/
  46. function register($username, $email, $password, $redirect)
  47. {
  48. $imiquery = mysql_query("SELECT * FROM `members` WHERE `username` = '".mysql_real_escape_string($username)."'");
  49. $takenyet=mysql_num_rows($imiquery);
  50. if($takenyet != "0"){ $tk = "1";}
  51. $errormessage;
  52. if (empty($username) || empty($email) || empty($password) || $tk == "1" ) {
  53. $error = true;
  54. if(empty($username)){ $errormessage .= '<li>Please Enter a Username.</li>';}
  55. if(empty($email)){ $errormessage .= '<li>Please Enter an Email Address.</li>';}
  56. if(empty($password)){ $errormessage .= '<li>Please Enter a Password.</li>';}
  57. if($tk == "1"){$errormessage .= '<li>That Username Has Been Taken.</li>';}
  58. echo '<div class="error">We seem to have a problem!
  59. <ul>';
  60. echo $errormessage;
  61. echo '</ul></div>';
  62. }else{
  63. if(!$error){
  64. $salt = sha1(md5($password));
  65. $passwordi = md5($salt . $password . $salt);
  66. $sql = "INSERT INTO
  67. `members`
  68. (`username`, `email`, `password`)
  69. VALUES
  70. ('".mysql_real_escape_string($username)."', '".mysql_real_escape_string($email)."', '".$passwordi."')";
  71. }
  72. $result = mysql_query($sql);
  73. $mess = "<h1>Hello, ".$username."</h1>
  74. <p>Your username and password are displayed below for you safe storage.</p>
  75. <p><strong>Username:</strong> <em>".$email."</em><br />
  76. <strong>Password:</strong> <em>".$password."</em></p>
  77. Regards";
  78. if($result){
  79. mail_register($email, "Registration - ".$username, $mess, "Registration", "Email Here");
  80. }
  81. if(!$result){
  82. echo '<div class="error">Something went wrong while registering. Please try again later.'; echo '<p>'.mysql_error().'</p></div>';
  83. }else{
  84. echo '<script type="text/javascript">
  85. window.location = "'.$redirect.'"
  86. </script>';
  87. }
  88. }
  89. }
  90. /***************************************************************************/
  91. function login($username, $password, $redirect)
  92. {
  93. $salt = sha1(md5($password));
  94. $password = md5($salt . $password . $salt);
  95. $sql = "SELECT
  96. `id`, `username`, `email`
  97. FROM
  98. `members`
  99. WHERE
  100. `username` = '".mysql_real_escape_string($username)."'
  101. AND
  102. `password` = '".$password."'";
  103. $result = mysql_query($sql);
  104. if(!$result){
  105. echo '<div class="error">Something went wrong while signing in. Please try again later.</h3>';
  106. }else{
  107. if(mysql_num_rows($result) == 0){
  108. echo '<div class="error">You have supplied a wrong user/password combination. Please try again.</div>';
  109. }else{
  110. $_SESSION['signed_in'] = true;
  111. while($row = mysql_fetch_assoc($result)){
  112. $_SESSION['id'] = $row['id'];
  113. $_SESSION['username'] = $row['username'];
  114. $_SESSION['email'] = $row['email'];
  115. $_SESSION['logged_time'] = time();
  116. }
  117. echo '<script type="text/javascript">
  118. window.location = "'.$redirect.'"
  119. </script>';
  120. }
  121. }
  122. }
  123. /***************************************************************************/
  124. function logout($redirect){
  125. $_SESSION['signed_in'] = NULL;
  126. $_SESSION['id'] = NULL;
  127. $_SESSION['username'] = NULL;
  128. $_SESSION['email'] = NULL;
  129. session_unset();
  130. session_destroy();
  131. echo '<script type="text/javascript">
  132. window.location = "'.$redirect.'"
  133. </script>';
  134. }
  135. /***************************************************************************/
  136. function totals(){
  137. $sql = "SELECT * FROM `uploads`";
  138. $result = mysql_query($sql);
  139. $totalUp = mysql_num_rows($result);
  140. $sqlu = "SELECT * FROM `members`";
  141. $resultu = mysql_query($sqlu);
  142. $totalUs = mysql_num_rows($resultu);
  143. echo '<h2>Total Users: '.$totalUs.' Total Uploads: '.$totalUp.'</h2>';
  144. }
  145. /***************************************************************************/
  146. function profile(){
  147. $sql = "SELECT
  148. *FROM `members` WHERE `id` = '".$_SESSION['id']."'";
  149. $result = mysql_query($sql);
  150. while($row = mysql_fetch_assoc($result)){
  151. echo '<p>
  152. <ul>
  153. <li>Full Name: '.$row['name'].'</li>
  154. <li>Username: '.$row['username'].'</li>
  155. <li>Email: '.$row['email'].'</li>
  156. </ul></p>';
  157. }
  158. }
  159. /***************************************************************************/
  160. function messages(){
  161. $sql = "SELECT DISTINCT `from` FROM `messages` WHERE `to` = '".$_SESSION['id']."' OR `from` = '".$_SESSION['id']."'";
  162. $result = mysql_query($sql);
  163. echo '<p>Messages</p>';
  164. while($row = mysql_fetch_assoc($result)){
  165. $s = "SELECT * FROM `members` WHERE `id` = '".$row['from']."'";
  166. $res = mysql_query($s);
  167. while($r = mysql_fetch_assoc($res)){
  168. echo '<p>
  169. <a href="?page=message&from='.$row['from'].'">'.$r['username'].'</a>
  170. </p>';
  171. }
  172. }
  173. }
  174. /***************************************************************************/
  175. function message($from){
  176. $sent = "SELECT * FROM `messages` WHERE `from` = '".$_SESSION['id']."' AND `to` = '".$from."' ORDER BY `date` DESC";
  177. $recived = "SELECT * FROM `messages` WHERE `to` = '".$_SESSION['id']."' AND `from` = '".$from."' ORDER BY `date` DESC";
  178. $r_sent = mysql_query($sent);
  179. $r_recived = mysql_query($recived);
  180. echo '<p>Messages</p>';
  181. $sentLine;
  182. while($row = mysql_fetch_assoc($r_sent)){
  183. $s = "SELECT * FROM `members` WHERE `id` = '".$row['from']."'";
  184. $res = mysql_query($s);
  185. while($r = mysql_fetch_assoc($res)){
  186. $sentLine .= '<p>
  187. Sent: '.date('d/m/y : H:i:s', strtotime($row['date'])).' - From: '.$r['username'].'
  188. <br />
  189. '.$row['message'].'
  190. </p>';
  191. }
  192. }
  193. $recLine;
  194. while($row = mysql_fetch_assoc($r_recived)){
  195. $s = "SELECT * FROM `members` WHERE `id` = '".$row['from']."'";
  196. $res = mysql_query($s);
  197. while($r = mysql_fetch_assoc($res)){
  198. $recLine .= '<p>
  199. Sent: '.date('d/m/y : H:i:s', strtotime($row['date'])).' - From: '.$r['username'].'
  200. <br />
  201. '.$row['message'].'
  202. </p>';
  203. }
  204. }
  205. echo '<div style="display:inline; float:left; border:1px dotted; margin:3px; padding:3px;">Recived: '.$recLine.'</div>';
  206. echo '<div style="display:inline; float:left; border:1px dotted; margin:3px; padding:3px;">Sent: '.$sentLine.'</div>';
  207. echo '<p style="clear:both">Reply:
  208. <br />
  209. <form method="post" action="?page=newmessage">
  210. <input type="hidden" name="to" value="'.$from.'" />
  211. <textarea name="message"></textarea>
  212. <br />
  213. <input type="submit" value="Send" />
  214. </p>';
  215. }
  216. /***************************************************************************/
  217. function newmessage(){
  218. if($_SERVER['REQUEST_METHOD'] == "POST") {
  219. $sql = "INSERT INTO `messages`(`to`, `from`, `message`) VALUES ('".$_POST['to']."', '".$_SESSION['id']."', '".$_POST['message']."')";
  220. $result = mysql_query($sql);
  221. if($result){
  222. echo '<p>Message Sent</p>';
  223. }else{
  224. echo $result;
  225. echo '<p>Error Sending Message</p>';
  226. }
  227. echo '<p>View <a href="?page=message&from='.$_POST['to'].'">Message</a></p>';
  228. }
  229. echo '<p>
  230. Send Message
  231. <br />
  232. <form method="post" action="?page=newmessage">
  233. <select name="to">';
  234. $s = "SELECT * FROM `members`";
  235. $res = mysql_query($s);
  236. while($r = mysql_fetch_assoc($res)){
  237. echo '<option value="'.$r['id'].'">'.$r['username'].'</option>';
  238. }
  239. echo '</select>
  240. <br />
  241. <textarea name="message"></textarea>
  242. <br />
  243. <input type="submit" value="Send" />
  244. </p>';
  245. }
  246. /***************************************************************************/
  247. function profileform(){
  248. $sql = "SELECT
  249. * FROM `members` WHERE `id` = '".$_SESSION['id']."'";
  250. $result = mysql_query($sql);
  251. while($row = mysql_fetch_assoc($result)){
  252. echo '<p>
  253. <form method="post" action="">
  254. <p>Full Name</p>
  255. <input type="text" name="name" value="'.$row['name'].'" />
  256. <p>Username</p>
  257. <input type="text" name="username" value="'.$row['username'].'" />
  258. <p>Email</p>
  259. <input type="text" name="email" value="'.$row['email'].'" />
  260. <p><input type="submit" value="Update" /></p>
  261. </p>';
  262. }
  263. }
  264. /***************************************************************************/
  265. function editprofile($name, $username, $email, $redirect){
  266. $sql = "UPDATE
  267. `members`
  268. SET
  269. `name` = '".mysql_real_escape_string($name)."', `username` = '".mysql_real_escape_string($username)."', `email` = '".mysql_real_escape_string($email)."'
  270. WHERE
  271. `id` = '".$_SESSION['id']."'";
  272. if(mysql_query($sql)){
  273. echo '<script type="text/javascript">
  274. window.location = "'.$redirect.'"
  275. </script>';
  276. }
  277. }
  278. /***************************************************************************/
  279. function uploads(){
  280. $sql = "SELECT * FROM `uploads` WHERE `uploader` = '".$_SESSION['id']."'
  281. ORDER BY `date` DESC";
  282. $result = mysql_query($sql);
  283. $total = mysql_num_rows($result);
  284. $x = ($total == 1) ? "": "s";
  285. echo '<p>
  286. <h1>You Have Made '.$total.' Upload'.$x.'</h1>
  287. </p>';
  288. while($row = mysql_fetch_assoc($result)){
  289. $showN = str_replace('uploads/', '', $row['path']);
  290. if(!empty($row['description'])){
  291. $desc = '<strong>Description:</strong>'.$row['description'].'<br />';
  292. }else{
  293. $desc = '';
  294. }
  295. echo '<p>View >> <a href="'.$row['path'].'">'.$showN.'</a>
  296. <br />
  297. '.$desc.'
  298. Uploaded: '.$row['date'].'</p>';
  299. }
  300. }
  301. /***************************************************************************/
  302. function upload(){
  303. define ("MAX_SIZE","5000");
  304. function getExtension($str) {
  305. $i = strrpos($str,".");
  306. if (!$i) { return ""; }
  307. $l = strlen($str) - $i;
  308. $ext = substr($str,$i+1,$l);
  309. return $ext;
  310. }
  311. $errors=0;
  312. if(isset($_POST['submit']))
  313. {
  314. $image=$_FILES['image']['name'];
  315. //if it is not empty
  316. if ($image)
  317. {
  318. //get the original name of the file from the clients machine
  319. $filename = stripslashes($_FILES['image']['name']);
  320. //get the extension of the file in a lower case format
  321. $extension = getExtension($filename);
  322. $extension = strtolower($extension);
  323. //if it is not a known extension, we will suppose it is an error and will not upload the file,
  324. //otherwise we will do more tests
  325. if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif") && ($extension != "css") && ($extension != "js") && ($extension != "mp3"))
  326. {
  327. //print error message
  328. echo '<h1>Unknown extension!</h1>';
  329. $errors=1;
  330. }else{
  331. $size=filesize($_FILES['image']['tmp_name']);
  332. if ($size > MAX_SIZE*1024){
  333. echo '<h1>You have exceeded the size limit!</h1>';
  334. $errors=1;
  335. }
  336. //we will give an unique name, for example the time in unix time format
  337. $image_name=time().'.'.$extension;
  338. //the new name will be containing the full path where will be stored (images folder)
  339. $newname="uploads/".$image_name;
  340. //we verify if the image has been uploaded, and print error instead
  341. $copied = copy($_FILES['image']['tmp_name'], $newname);
  342. if (!$copied)
  343. {
  344. echo '<h1>Copy unsuccessfull!</h1>';
  345. $errors=1;
  346. }
  347. }
  348. }
  349. }
  350. if(isset($_POST['submit']) && !$errors)
  351. {
  352. if(!empty($image_name)){
  353. $query = "INSERT INTO `uploads` (`uploader`, `path`, `date`, `description`) VALUES ('".$_SESSION['id']."', 'uploads/".$image_name."', CURRENT_TIMESTAMP, '".$_POST['desc']."');";
  354. }
  355. mysql_query($query) or die('Error, query failed');
  356. echo '<h2>File Uploaded Successfully! <a href="index.php">Continue</a></h2>';
  357. }
  358. echo '<form name="newad" method="post" enctype="multipart/form-data" action="">
  359. <p>Select File
  360. <br />
  361. jpg, jpeg, png, gif, css, js, mp3
  362. </p>
  363. <input type="file" name="image" />
  364. <p>Description</p>
  365. <p>
  366. <textarea name="desc"></textarea>
  367. </p>
  368. <input name="submit" type="submit" value="Upload"/>
  369. </form>';
  370. }
  371. /***************************************************************************/
  372. }