1. <?php
  2.  
  3. define('INCLUDE_CHECK',true);
  4.  
  5. require 'connect.php';
  6. require 'functions.php';
  7. // Those two files can be included only if INCLUDE_CHECK is defined
  8.  
  9.  
  10. session_name('Login');
  11. // Starting the session
  12.  
  13. session_set_cookie_params(2*7*24*60*60);
  14. // Making the cookie live for 2 weeks
  15.  
  16. session_start();
  17.  
  18. if($_SESSION['id'] && !isset($_COOKIE['Remember']) && !$_SESSION['rememberMe'])
  19. {
  20. // If you are logged in, but you don't have the Remember cookie (browser restart)
  21. // and you have not checked the rememberMe checkbox:
  22.  
  23. $_SESSION = array();
  24. session_destroy();
  25.  
  26. // Destroy the session
  27. }
  28.  
  29.  
  30. if(isset($_GET['logoff']))
  31. {
  32. $_SESSION = array();
  33. session_destroy();
  34.  
  35. header("Location: demo.php");
  36. exit;
  37. }
  38.  
  39. if($_POST['submit']=='Login')
  40. {
  41. // Checking whether the Login form has been submitted
  42.  
  43. $err = array();
  44. // Will hold our errors
  45.  
  46.  
  47. if(!$_POST['username'] || !$_POST['password'])
  48. $err[] = 'All the fields must be filled in!';
  49.  
  50. if(!count($err))
  51. {
  52. $_POST['username'] = mysql_real_escape_string($_POST['username']);
  53. $_POST['password'] = mysql_real_escape_string($_POST['password']);
  54. $_POST['rememberMe'] = (int)$_POST['rememberMe'];
  55.  
  56. // Escaping all input data
  57.  
  58. $row = mysql_fetch_assoc(mysql_query("SELECT id,usr FROM members WHERE usr='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));
  59.  
  60. if($row['usr'])
  61. {
  62. // If everything is OK login
  63.  
  64. $_SESSION['usr']=$row['usr'];
  65. $_SESSION['id'] = $row['id'];
  66. $_SESSION['rememberMe'] = $_POST['rememberMe'];
  67.  
  68. // Store some data in the session
  69.  
  70. setcookie('Remember',$_POST['rememberMe']);
  71. }
  72. else $err[]='Wrong username and/or password!';
  73. }
  74.  
  75. if($err)
  76. $_SESSION['msg']['login-err'] = implode('<br />',$err);
  77. // Save the error messages in the session
  78.  
  79. header("Location: demo.php");
  80. exit;
  81. }
  82. else if($_POST['submit']=='Register')
  83. {
  84. // If the Register form has been submitted
  85.  
  86. $err = array();
  87.  
  88. if(strlen($_POST['username'])<4 || strlen($_POST['username'])>20)
  89. {
  90. $err[]='Your username must be between 3 and 20 characters!';
  91. }
  92.  
  93. if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
  94. {
  95. $err[]='Your username contains invalid characters!';
  96. }
  97.  
  98. if(!checkEmail($_POST['email']))
  99. {
  100. $err[]='Your email is not valid!';
  101. }
  102.  
  103. if(!count($err))
  104. {
  105. // If there are no errors
  106.  
  107. $pass = substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,6);
  108. // Generate a random password
  109.  
  110. $_POST['email'] = mysql_real_escape_string($_POST['email']);
  111. $_POST['username'] = mysql_real_escape_string($_POST['username']);
  112. // Escape the input data
  113.  
  114.  
  115. mysql_query(" INSERT INTO members(usr,pass,email,regIP,dt)
  116. VALUES(
  117.  
  118. '".$_POST['username']."',
  119. '".md5($pass)."',
  120. '".$_POST['email']."',
  121. '".$_SERVER['REMOTE_ADDR']."',
  122. NOW()
  123.  
  124. )");
  125.  
  126. if(mysql_affected_rows($link)==1)
  127. {
  128. send_mail( 'mec.666.mec@gmail.com',
  129. $_POST['email'],
  130. 'Registration System- Your New Password',
  131. 'Your password is: '.$pass);
  132.  
  133. $_SESSION['msg']['reg-success']='We sent you an email with your new password!';
  134. }
  135. else $err[]='This username is already taken!';
  136. }
  137.  
  138. if(count($err))
  139. {
  140. $_SESSION['msg']['reg-err'] = implode('<br />',$err);
  141. }
  142.  
  143. header("Location: demo.php");
  144. exit;
  145. }
  146.  
  147. $script = '';
  148.  
  149. if($_SESSION['msg'])
  150. {
  151. // The script below shows the sliding panel on page load
  152.  
  153. $script = '
  154. <script type="text/javascript">
  155.  
  156. $(function(){
  157.  
  158. $("div#panel").show();
  159. $("#toggle a").toggle();
  160. });
  161.  
  162. </script>';
  163.  
  164. }
  165. ?>
  166.  
  167.  
  168. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  169. <html xmlns="http://www.w3.org/1999/xhtml">
  170.  
  171. <head>
  172. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  173. <title>MEC's Login Demo</title>
  174.  
  175. <link rel="stylesheet" type="text/css" href="demo.css" media="screen" />
  176. <link rel="stylesheet" type="text/css" href="login_panel/css/slide.css" media="screen" />
  177.  
  178. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  179.  
  180. <script src="login_panel/js/slide.js" type="text/javascript"></script>
  181.  
  182. <?php echo $script; ?>
  183. </head>
  184.  
  185. <body>
  186.  
  187. <!-- Panel -->
  188. <div id="toppanel">
  189. <div id="panel">
  190. <div class="content clearfix">
  191. <div class="left">
  192. <h1>The Sliding jQuery Panel</h1>
  193. <h2>A register/login solution</h2>
  194. <p class="grey">sexy isnt it?</p>
  195. <h2>A Big Thanks</h2>
  196. <p class="grey">To some random book i read.</p>
  197. </div>
  198.  
  199.  
  200. <?php
  201.  
  202. if(!$_SESSION['id']):
  203.  
  204. ?>
  205.  
  206. <div class="left">
  207. <!-- Login Form -->
  208. <form class="clearfix" action="" method="post">
  209. <h1>Member Login</h1>
  210.  
  211. <?php
  212.  
  213. if($_SESSION['msg']['login-err'])
  214. {
  215. echo '<div class="err">'.$_SESSION['msg']['login-err'].'</div>';
  216. unset($_SESSION['msg']['login-err']);
  217. }
  218. ?>
  219.  
  220. <label class="grey" for="username">Username:</label>
  221. <input class="field" type="text" name="username" id="username" value="" size="23" />
  222. <label class="grey" for="password">Password:</label>
  223. <input class="field" type="password" name="password" id="password" size="23" />
  224. <label><input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" /> &nbsp;Remember me</label>
  225. <div class="clear"></div>
  226. <input type="submit" name="submit" value="Login" class="bt_login" />
  227. </form>
  228. </div>
  229. <div class="left right">
  230. <!-- Register Form -->
  231. <form action="" method="post">
  232. <h1>Not a member yet? Sign Up!</h1>
  233.  
  234. <?php
  235.  
  236. if($_SESSION['msg']['reg-err'])
  237. {
  238. echo '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
  239. unset($_SESSION['msg']['reg-err']);
  240. }
  241.  
  242. if($_SESSION['msg']['reg-success'])
  243. {
  244. echo '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
  245. unset($_SESSION['msg']['reg-success']);
  246. }
  247. ?>
  248.  
  249. <label class="grey" for="username">Username:</label>
  250. <input class="field" type="text" name="username" id="username" value="" size="23" />
  251. <label class="grey" for="email">Email:</label>
  252. <input class="field" type="text" name="email" id="email" size="23" />
  253. <label>A password will be e-mailed to you.</label>
  254. <input type="submit" name="submit" value="Register" class="bt_register" />
  255. </form>
  256. </div>
  257.  
  258. <?php
  259.  
  260. else:
  261.  
  262. ?>
  263.  
  264. <div class="left">
  265.  
  266. <h1>Members panel</h1>
  267.  
  268. <p>You can put member-only data here</p>
  269. <a href="registered.php">View a special member page</a>
  270. <p>- or -</p>
  271. <a href="?logoff">Log off</a>
  272.  
  273. </div>
  274.  
  275. <div class="left right">
  276. </div>
  277.  
  278. <?php
  279. endif;
  280. ?>
  281. </div>
  282. </div> <!-- /login -->
  283.  
  284. <!-- The tab on top -->
  285. <div class="tab">
  286. <ul class="login">
  287. <li class="left">&nbsp;</li>
  288. <li>Hello <?php echo $_SESSION['usr'] ? $_SESSION['usr'] : 'Guest';?>!</li>
  289. <li class="sep">|</li>
  290. <li id="toggle">
  291. <a id="open" class="open" href="#"><?php echo $_SESSION['id']?'Open Panel':'Log In | Register';?></a>
  292. <a id="close" style="display: none;" class="close" href="#">Close Panel</a>
  293. </li>
  294. <li class="right">&nbsp;</li>
  295. </ul>
  296. </div> <!-- / top -->
  297.  
  298. </div> <!--panel -->
  299.  
  300. <div class="pageContent">
  301. <div id="main">
  302. <div class="container">
  303. <h1>A Cool Login System</h1>
  304. <h2>Easy registration management with PHP &amp; jQuery</h2>
  305. </div>
  306.  
  307. <div class="container">
  308.  
  309. <p>This is a simple site. <strong>Log In | Register</strong> button above. After registration, an email will be sent to you with your new password.</p>
  310. <p><a href="registered.php" target="_blank">View a test page</a>, only accessible by <strong>registered users</strong>.</p>
  311. <p>The sliding jQuery panel, was used in this example,</p>
  312. <p>Hopefully i can build upon this and use it in my website i'm making.</p>
  313. <div class="clear"></div>
  314. </div>
  315.  
  316. <div class="container tutorial-info">
  317. </div>
  318. </div>
  319.  
  320. </body>
  321. </html>
  322.