Advertisement
Guest User

Untitled

a guest
May 31st, 2018
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.85 KB | None | 0 0
  1. <?php
  2. include 'dbc.php';
  3. $err = array();
  4. foreach($_GET as $key => $value) {
  5. $get[$key] = filter($value);
  6. }
  7. if ($_POST['doLogin']=='Login')
  8. {
  9. foreach($_POST as $key => $value) {
  10. $data[$key] = filter($value);
  11. }
  12.  
  13. $user_email = $data['usr_email'];
  14. $pass = $data['pwd'];
  15.  
  16. if (strpos($user_email,'@') === false) {
  17. $user_cond = "user_name='$user_email'";
  18. } else {
  19. $user_cond = "user_email='$user_email'";
  20.  
  21. }
  22. $result = mysql_query("SELECT `id`,`pwd`,`full_name`,`approved`,`user_level`,`date`,`data_expira` FROM users WHERE $user_cond AND `banned` = '0'") or die (mysql_error());
  23. $num = mysql_num_rows($result);
  24. if ( $num > 0 ) {
  25.  
  26. list($id,$pwd,$full_name,$approved,$user_level,$data_sqlret,$date_expira) = mysql_fetch_row($result);
  27.  
  28. $data = date('Y-m-d');
  29. if ($date_expira < $data){
  30. echo "<script>alert('VENCIDO')</script>";
  31. mysql_query("UPDATE users SET approved = '0' WHERE full_name='$full_name'");
  32. $err[] = "Venceu";
  33. }
  34.  
  35. if(!$approved) {
  36. $err[] = "Conta não Ativada";
  37. }
  38.  
  39. if ($pwd === PwdHash($pass,substr($pwd,0,9))) {
  40. if(empty($err)){
  41.  
  42. session_start();
  43. session_regenerate_id (true);
  44. $_SESSION['user_id']= $id;
  45. $_SESSION['user_name'] = $full_name;
  46. $_SESSION['user_level'] = $user_level;
  47. $_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);
  48. $stamp = time();
  49. $ckey = GenKey();
  50. mysql_query("update users set `ctime`='$stamp', `ckey` = '$ckey' where id='$id'") or die(mysql_error());
  51. if(isset($_POST['remember'])){
  52. setcookie("user_id", $_SESSION['user_id'], time()+60*60*24*COOKIE_TIME_OUT, "/");
  53. setcookie("user_key", sha1($ckey), time()+60*60*24*COOKIE_TIME_OUT, "/");
  54. setcookie("user_name",$_SESSION['user_name'], time()+60*60*24*COOKIE_TIME_OUT, "/");
  55. }
  56. header("Location: painel.php");
  57. }
  58. }
  59. else
  60. {
  61. $err[] = "Login Invalido";
  62. }
  63. } else {
  64. $err[] = "não Existe Login";
  65. }
  66. }
  67.  
  68. ?>
  69. <html>
  70. <head>
  71. <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
  72. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  73. <meta name="description" content="">
  74. <meta name="author" content="TECHNOLOGY CHECKER">
  75. <meta name="keyword" content="PHP SCRIPT, CHECKER LOJAS, TESTADORES PRIV8, CHECKER CC, CONSULTAS">
  76. <title>TECHNOLOGY CHECKER V3.0 - MADE IN BRAZIL PRIV8</title>
  77. <link href="assets/css/bootstrap.css" rel="stylesheet">
  78. <link href="assets/font-awesome/css/font-awesome.css" rel="stylesheet" />
  79. <link href="assets/css/style.css" rel="stylesheet">
  80. <link href="assets/css/style-responsive.css" rel="stylesheet">
  81. </head>
  82. <body>
  83. <div id="login-page">
  84. <div class="container">
  85. <form class="form-login" method="POST" action="index.php">
  86. <h2 class="form-login-heading">ACESSO AO SISTEMA</h2>
  87.  
  88. <div class="login-wrap">
  89. <input name="usr_email" placeholder="Usuario" type="text" class="form-control" id="txtbox" placeholder="Usuario" autofocus>
  90. <br>
  91. <input name="pwd" type="password" placeholder="Senha" class="form-control" id="txtbox" placeholder="Senha">
  92. <br>
  93. <center>
  94. <?php
  95. if(!empty($err)) {
  96. echo "<div class=\"msg\">";
  97. foreach ($err as $e) {
  98. echo "$e <br>";
  99. }
  100. echo "</div>";
  101. }
  102. ?>
  103. </center>
  104. <br>
  105. <input name="doLogin" class="btn btn-theme btn-block" type="submit" id="doLogin3" value="Login">
  106. <hr>
  107. <div class="registration">
  108. Serviços Abaixo Disponiveis.<br/>
  109. <a class="" href="forgot.php">
  110. Trocar Senha / Recuperar
  111. </a>
  112. </div>
  113.  
  114. </div>
  115. <script src="http://static.tumblr.com/8l2gpxb/lcllulgcn/snowstorm.js"></script>
  116. <center>
  117.  
  118. <p>
  119. <a href="http://achecker.ca/checker/index.php?uri=referer&gid=WCAG2-AA"><img src="http://achecker.ca/images/icon_W2_aa.jpg" alt="WCAG 2.0 (Level AA)" height="32" width="102" /></a></p><a href="http://www.siteblindado.com"><img src="http://s3-sa-east-1.amazonaws.com/selo.siteblindado.com/seals_aw/siteblindado.com/siteblindado.gif" alt="Website Security Test" border="0" /></a>
  120. </center>
  121.  
  122. </form>
  123.  
  124. </div>
  125. </div>
  126. <script src="assets/js/jquery.js"></script>
  127. <script src="assets/js/bootstrap.min.js"></script>
  128. <script type="text/javascript" src="assets/js/jquery.backstretch.min.js"></script>
  129. <script>
  130. $.backstretch("http://www.yogareal.com.au/wp-content/uploads/2014/11/Merry-Christmas-Wallpapers-2014-3.jpg", {speed: 500});
  131. </script>
  132. <!-- Histats.com START (hidden counter)-->
  133. <script type="text/javascript">document.write(unescape("%3Cscript src=%27http://s10.histats.com/js15.js%27 type=%27text/javascript%27%3E%3C/script%3E"));</script>
  134. <a href="http://www.histats.com" target="_blank" title="web page hit counter" ><script type="text/javascript" >
  135. try {Histats.start(1,3110055,4,0,0,0,"");
  136. Histats.track_hits();} catch(err){};
  137. </script></a>
  138. <noscript><a href="http://www.histats.com" target="_blank"><img src="http://sstatic1.histats.com/0.gif?3110055&101" alt="web page hit counter" border="0"></a></noscript>
  139. <!-- Histats.com END -->
  140. <EMBED SRC="https://www.vagalume.com.br/cancoes-de-natal/" AUTOSTART="TRUE" LOOP="TRUE" WIDTH="1" HEIGHT="1" ALIGN="CENTER"></EMBED>
  141. </body>
  142. </html>
  143.  
  144. ====================================================================================================================================================
  145.  
  146.  
  147.  
  148. O register.php assim :
  149.  
  150.  
  151.  
  152.  
  153.  
  154. <?php
  155.  
  156. /*************** PHP LOGIN SCRIPT V 2.0*********************
  157.  
  158. ***************** Auto Approve Version**********************
  159.  
  160. (c) Balakrishnan 2009. All Rights Reserved
  161.  
  162.  
  163.  
  164. Usage: This script can be used FREE of charge for any commercial or personal projects.
  165.  
  166.  
  167.  
  168. Limitations:
  169.  
  170. - This script cannot be sold.
  171.  
  172. - This script may not be provided for download except on its original site.
  173.  
  174.  
  175.  
  176. For further usage, please contact me.
  177.  
  178.  
  179.  
  180. ***********************************************************/
  181.  
  182.  
  183.  
  184.  
  185.  
  186. include 'dbc.php';
  187.  
  188.  
  189.  
  190. $err = array();
  191.  
  192.  
  193.  
  194. if($_POST['doRegister'] == 'Register')
  195.  
  196. {
  197.  
  198. /******************* Filtering/Sanitizing Input *****************************
  199.  
  200. This code filters harmful script code and escapes data of all POST data
  201.  
  202. from the user submitted form.
  203.  
  204. *****************************************************************/
  205.  
  206. foreach($_POST as $key => $value) {
  207.  
  208. $data[$key] = filter($value);
  209.  
  210. }
  211.  
  212.  
  213.  
  214.  
  215.  
  216. /************************ SERVER SIDE VALIDATION **************************************/
  217.  
  218. /********** This validation is useful if javascript is disabled in the browswer ***/
  219.  
  220.  
  221.  
  222. if(empty($data['full_name']) || strlen($data['full_name']) < 4)
  223.  
  224. {
  225.  
  226. $err[] = "ERRO - Nome inválido . Por favor, indique 3 ou mais caracteres para o seu nome";
  227.  
  228. //header("Location: register.php?msg=$err");
  229.  
  230. //exit();
  231.  
  232. }
  233.  
  234.  
  235.  
  236. // Validate User Name
  237.  
  238. if (!isUserID($data['user_name'])) {
  239.  
  240. $err[] = "ERRO - nome de usuário inválido . Ele pode conter alfabeto, número e sublinhado.";
  241.  
  242. //header("Location: register.php?msg=$err");
  243.  
  244. //exit();
  245.  
  246. }
  247.  
  248.  
  249.  
  250. // Validate Email
  251.  
  252. if(!isEmail($data['usr_email'])) {
  253.  
  254. $err[] = "ERRO - E-mail inválido.";
  255.  
  256. //header("Location: register.php?msg=$err");
  257.  
  258. //exit();
  259.  
  260. }
  261.  
  262. // Check User Passwords
  263.  
  264. if (!checkPwd($data['pwd'],$data['pwd2'])) {
  265.  
  266. $err[] = "ERRO - senha ou incompatibilidade inválido . Digite 5 caracteres ou mais";
  267.  
  268. //header("Location: register.php?msg=$err");
  269.  
  270. //exit();
  271.  
  272. }
  273.  
  274.  
  275.  
  276. $user_ip = $_SERVER['REMOTE_ADDR'];
  277.  
  278.  
  279.  
  280. // stores sha1 of password
  281.  
  282. $sha1pass = PwdHash($data['pwd']);
  283.  
  284.  
  285.  
  286. // Automatically collects the hostname or domain like example.com)
  287.  
  288. $host = $_SERVER['HTTP_HOST'];
  289.  
  290. $host_upper = strtoupper($host);
  291.  
  292. $path = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
  293.  
  294.  
  295.  
  296. // Generates activation code simple 4 digit number
  297.  
  298. $activ_code = rand(1000,9999);
  299.  
  300.  
  301.  
  302. $usr_email = $data['usr_email'];
  303.  
  304. $user_name = $data['user_name'];
  305.  
  306.  
  307.  
  308. /************ USER EMAIL CHECK ************************************
  309.  
  310. This code does a second check on the server side if the email already exists. It
  311.  
  312. queries the database and if it has any existing email it throws user email already exists
  313.  
  314. *******************************************************************/
  315.  
  316.  
  317.  
  318. $rs_duplicate = mysql_query("select count(*) as total from users where user_email='$usr_email' OR user_name='$user_name'") or die(mysql_error());
  319.  
  320. list($total) = mysql_fetch_row($rs_duplicate);
  321.  
  322.  
  323.  
  324. if ($total > 0)
  325.  
  326. {
  327.  
  328. $err[] = "ERRO - O nome de usuário / e-mail já existe. Por favor, tente novamente com o nome de usuário e e-mail diferente .";
  329.  
  330. //header("Location: register.php?msg=$err");
  331.  
  332. //exit();
  333.  
  334. }
  335.  
  336. /***************************************************************************/
  337.  
  338.  
  339.  
  340. if(empty($err)) {
  341.  
  342.  
  343.  
  344. $sql_insert = "INSERT into `users`
  345.  
  346. (`full_name`,`user_email`,`pwd`,`address`,`tel`,`fax`,`website`,`date`,`users_ip`,`activation_code`,`country`,`user_name`
  347.  
  348. )
  349.  
  350. VALUES
  351.  
  352. ('$data[full_name]','$usr_email','$sha1pass','$data[address]','$data[tel]','$data[fax]','$data[web]'
  353.  
  354. ,now(),'$user_ip','$activ_code','$data[country]','$user_name'
  355.  
  356. )
  357.  
  358. ";
  359.  
  360.  
  361.  
  362. mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());
  363.  
  364. $user_id = mysql_insert_id($link);
  365.  
  366. $md5_id = md5($user_id);
  367.  
  368. mysql_query("update users set md5_id='$md5_id' where id='$user_id'");
  369.  
  370. // echo "<h3>Thank You</h3> We received your submission.";
  371.  
  372.  
  373.  
  374. if($user_registration) {
  375.  
  376. $a_link = "
  377.  
  378. *****ACTIVATION LINK*****\n
  379.  
  380. http://$host$path/activate.php?user=$md5_id&activ_code=$activ_code
  381.  
  382. ";
  383.  
  384. } else {
  385.  
  386. $a_link =
  387.  
  388. "A sua conta é * PENDENTE DE APROVAÇÃO * e será ativado em breve o administrador.
  389.  
  390. ";
  391.  
  392. }
  393.  
  394.  
  395.  
  396. $message =
  397.  
  398. "Olá \n
  399.  
  400. Obrigado por registrar conosco. Aqui estão os detalhes de login...\n
  401.  
  402.  
  403.  
  404. User ID: $user_name
  405.  
  406. Email: $usr_email \n
  407.  
  408. Passwd: $data[pwd] \n
  409.  
  410.  
  411.  
  412. $a_link
  413.  
  414.  
  415.  
  416. Obrigado
  417.  
  418.  
  419.  
  420. Administrator
  421.  
  422. $host_upper
  423.  
  424. ______________________________________________________
  425.  
  426. THIS IS AN AUTOMATED RESPONSE.
  427.  
  428. ***DO NOT RESPOND TO THIS EMAIL****
  429.  
  430. ";
  431.  
  432.  
  433.  
  434. mail($usr_email, "Detalhes Login", $message,
  435.  
  436. "From: \"Member Registration\" <auto-reply@$host>\r\n" .
  437.  
  438. "X-Mailer: PHP/" . phpversion());
  439.  
  440.  
  441.  
  442. header("Location: thankyou.php");
  443.  
  444. exit();
  445.  
  446.  
  447.  
  448. }
  449.  
  450. }
  451.  
  452.  
  453.  
  454. ?>
  455.  
  456. <html xmlns="http://www.w3.org/1999/xhtml">
  457.  
  458. <head>
  459.  
  460. <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
  461.  
  462. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  463.  
  464. <meta name="description" content="">
  465.  
  466. <meta name="author" content="TECHNOLOGY CHECKER">
  467.  
  468. <meta name="keyword" content="PHP SCRIPT, CHECKER LOJAS, TESTADORES PRIV8, CHECKER CC, CONSULTAS">
  469.  
  470. <title>TECHNOLOGY CHECKER V3.0 - MADE IN BRAZIL PRIV8</title>
  471.  
  472. <link href="assets/css/bootstrap.css" rel="stylesheet">
  473.  
  474. <link href="assets/font-awesome/css/font-awesome.css" rel="stylesheet" />
  475.  
  476. <link href="assets/css/style.css" rel="stylesheet">
  477.  
  478. <link href="assets/css/style-responsive.css" rel="stylesheet">
  479.  
  480.  
  481.  
  482. </head>
  483.  
  484. <script>
  485.  
  486. $(document).ready(function(){
  487.  
  488. $.validator.addMethod("username", function(value, element) {
  489.  
  490. return this.optional(element) || /^[a-z0-9\_]+$/i.test(value);
  491.  
  492. }, "Username must contain only letters, numbers, or underscore.");
  493.  
  494.  
  495.  
  496. $("#regForm").validate();
  497.  
  498. });
  499.  
  500. </script>
  501.  
  502.  
  503.  
  504.  
  505.  
  506. </head>
  507.  
  508.  
  509.  
  510. <body>
  511.  
  512. <table width="100%" border="0" cellspacing="0" cellpadding="5" class="main">
  513.  
  514. <tr>
  515.  
  516. <td colspan="3">&nbsp;</td>
  517.  
  518. </tr>
  519.  
  520. <tr>
  521.  
  522. <td width="160" valign="top"><p>&nbsp;</p>
  523.  
  524. <p>&nbsp; </p>
  525.  
  526. <p>&nbsp;</p>
  527.  
  528. <p>&nbsp;</p>
  529.  
  530. <p>&nbsp;</p></td>
  531.  
  532. <td width="732" valign="top"><p>
  533.  
  534. <?php
  535.  
  536. if (isset($_GET['done'])) { ?>
  537.  
  538. <h2>Obrigado!</h2><a href="login.php">login here</a>";
  539.  
  540. <?php exit();
  541.  
  542. }
  543.  
  544. ?></p>
  545.  
  546.  
  547.  
  548. <h3 class="titlehdr">CADASTRAMENTO DE LOGIN</h3>
  549.  
  550. <p>O registro é rápido! Por favor, note que os campos marcados <span class="required">*</span>
  551.  
  552. São necessarios.</p>
  553.  
  554. <?php
  555.  
  556. if(!empty($err)) {
  557.  
  558. echo "<div class=\"msg\">";
  559.  
  560. foreach ($err as $e) {
  561.  
  562. echo "* $e <br>";
  563.  
  564. }
  565.  
  566. echo "</div>";
  567.  
  568. }
  569.  
  570. ?>
  571.  
  572.  
  573.  
  574. <div class="main">
  575.  
  576. <div class="login-form">
  577.  
  578. <h1>CADASTRAMENTO</h1>
  579.  
  580.  
  581.  
  582. <form action="register.php" method="post" name="regForm" id="regForm" >
  583.  
  584. <table width="100%" border="0" cellpadding="3" cellspacing="3" class="forms">
  585.  
  586. <tr>
  587.  
  588. <td colspan="2">Nome<span class="required"><font color="#CC0000">*</font></span>
  589.  
  590. <input name="full_name" type="text" id="full_name" size="40" class="required"></td>
  591.  
  592. </tr>
  593.  
  594. <tr>
  595.  
  596. <td colspan="2">&nbsp;</td>
  597.  
  598. </tr>
  599.  
  600. <tr>
  601.  
  602. <td colspan="2">Cep<span class="required"><font color="#CC0000">*</font></span>
  603.  
  604. <input name="address" type="text" id="address" class="required"></td>
  605.  
  606. </tr>
  607.  
  608. <tr>
  609.  
  610. <td>Pais <font color="#CC0000">*</font></span>
  611.  
  612. <td>
  613.  
  614. </br>
  615.  
  616. <select name="country" class="required" id="select8">
  617.  
  618. <option value="" selected></option>
  619.  
  620. <option value="Brasil">Brasil</option>
  621.  
  622. </select></td>
  623.  
  624. </br>
  625.  
  626. </br>
  627.  
  628. </br>
  629.  
  630. </tr>
  631.  
  632. </br>
  633.  
  634. <tr>
  635.  
  636. <td>Telefone<span class="required"><font color="#CC0000">*</font></span>
  637.  
  638. </td>
  639.  
  640. <td><input name="tel" type="text" id="tel" class="required"></td>
  641.  
  642. </tr>
  643.  
  644. <tr>
  645.  
  646. <td>Fax </td>
  647.  
  648. <td><input name="fax" type="text" id="fax">
  649.  
  650. </td>
  651.  
  652. </tr>
  653.  
  654. <tr>
  655.  
  656. <td>Site </td>
  657.  
  658. <td><input name="web" type="text" id="web" class="optional defaultInvalid url">
  659.  
  660. <span class="example">http://www.example.com</span></td>
  661.  
  662. </tr>
  663.  
  664. <tr>
  665.  
  666. <td>Login<span class="required"><font color="#CC0000">*</font></span></td>
  667.  
  668. <td><input name="user_name" type="text" id="user_name" class="required username" minlength="5" >
  669.  
  670. <input name="btnAvailable" type="button" id="btnAvailable"
  671.  
  672. onclick='$("#checkid").html("Please wait..."); $.get("checkuser.php",{ cmd: "check", user: $("#user_name").val() } ,function(data){ $("#checkid").html(data); });'
  673.  
  674. value="Check Availability">
  675.  
  676. <span style="color:red; font: bold 12px verdana; " id="checkid" ></span>
  677.  
  678. </td>
  679.  
  680. </tr>
  681.  
  682. <tr>
  683.  
  684. <td>Email<span class="required"><font color="#CC0000">*</font></span>
  685.  
  686. </td>
  687.  
  688. <td><input name="usr_email" type="text" id="usr_email3" class="required email">
  689.  
  690. </tr>
  691.  
  692. <tr>
  693.  
  694. <td>Senha<span class="required"><font color="#CC0000">*</font></span>
  695.  
  696. </td>
  697.  
  698. <td><input name="pwd" type="password" class="required password" minlength="5" id="pwd">
  699.  
  700. </tr>
  701.  
  702. <tr>
  703.  
  704. <td>Confirme Senha<span class="required"><font color="#CC0000">*</font></span>
  705.  
  706. </td>
  707.  
  708. <td><input name="pwd2" id="pwd2" class="required password" type="password" minlength="5" equalto="#pwd"></td>
  709.  
  710. </tr>
  711.  
  712. <tr>
  713.  
  714. <td colspan="2">&nbsp;</td>
  715.  
  716. </tr>
  717.  
  718. </table>
  719.  
  720. <p align="center">
  721.  
  722. <input name="doRegister" type="submit" id="doRegister" value="Register">
  723.  
  724. </p>
  725.  
  726. </form>
  727.  
  728. </td>
  729.  
  730. </table>
  731.  
  732.  
  733.  
  734. </body>
  735.  
  736. </html>
  737.  
  738.  
  739. =================================================================================================================
  740.  
  741.  
  742.  
  743. o dbc.php ficou assim :
  744.  
  745.  
  746.  
  747. <?php
  748. /*************** PHP LOGIN SCRIPT V 2.3*********************
  749. (c) Balakrishnan 2010. All Rights Reserved
  750.  
  751. Usage: This script can be used FREE of charge for any commercial or personal projects. Enjoy!
  752.  
  753. Limitations:
  754. - This script cannot be sold.
  755. - This script should have copyright notice intact. Dont remove it please...
  756. - This script may not be provided for download except from its original site.
  757.  
  758. For further usage, please contact me.
  759.  
  760. /******************** MAIN SETTINGS - PHP LOGIN SCRIPT V2.1 **********************
  761. Please complete wherever marked xxxxxxxxx
  762.  
  763. /************* MYSQL DATABASE SETTINGS *****************
  764. 1. Specify Database name in $dbname
  765. 2. MySQL host (localhost or remotehost)
  766. 3. MySQL user name with ALL previleges assigned.
  767. 4. MySQL password
  768.  
  769. Note: If you use cpanel, the name will be like account_database
  770. *************************************************************/
  771.  
  772. define ("DB_HOST", "--------dados sigilosos----------"); // set database host
  773. define ("DB_USER", "----------dados sigilosos------------"); // set database user
  774. define ("DB_PASS","------------dados sigilosos------------"); // set database password
  775. define ("DB_NAME","----------dados sigilosos----------"); // set database name
  776.  
  777. $link = @mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("SERVIDOR EM MANUTENCAO! VOLTAMOS EM BREVE...");
  778. $db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database");
  779.  
  780. /* Registration Type (Automatic or Manual)
  781. 1 -> Automatic Registration (Users will receive activation code and they will be automatically approved after clicking activation link)
  782. 0 -> Manual Approval (Users will not receive activation code and you will need to approve every user manually)
  783. */
  784. $user_registration = 1; // set 0 or 1
  785.  
  786. define("COOKIE_TIME_OUT", 10); //specify cookie timeout in days (default is 10 days)
  787. define('SALT_LENGTH', 9); // salt for password
  788.  
  789. //define ("ADMIN_NAME", "admin"); // sp
  790.  
  791. /* Specify user levels */
  792. define ("ADMIN_LEVEL", 5);
  793. define ("USER_LEVEL", 1);
  794. define ("GUEST_LEVEL", 0);
  795.  
  796.  
  797.  
  798. /*************** reCAPTCHA KEYS****************/
  799. $publickey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
  800. $privatekey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
  801.  
  802.  
  803. /**** PAGE PROTECT CODE ********************************
  804. This code protects pages to only logged in users. If users have not logged in then it will redirect to login page.
  805. If you want to add a new page and want to login protect, COPY this from this to END marker.
  806. Remember this code must be placed on very top of any html or php page.
  807. ********************************************************/
  808.  
  809. function page_protect() {
  810. session_start();
  811.  
  812. global $db;
  813.  
  814. /* Secure against Session Hijacking by checking user agent */
  815. if (isset($_SESSION['HTTP_USER_AGENT']))
  816. {
  817. if ($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT']))
  818. {
  819. logout();
  820. exit;
  821. }
  822. }
  823.  
  824. // before we allow sessions, we need to check authentication key - ckey and ctime stored in database
  825.  
  826. /* If session not set, check for cookies set by Remember me */
  827. if (!isset($_SESSION['user_id']) && !isset($_SESSION['user_name']) )
  828. {
  829. if(isset($_COOKIE['user_id']) && isset($_COOKIE['user_key'])){
  830. /* we double check cookie expiry time against stored in database */
  831.  
  832. $cookie_user_id = filter($_COOKIE['user_id']);
  833. $rs_ctime = mysql_query("select `ckey`,`ctime` from `users` where `id` ='$cookie_user_id'") or die(mysql_error());
  834. list($ckey,$ctime) = mysql_fetch_row($rs_ctime);
  835. // coookie expiry
  836. if( (time() - $ctime) > 60*60*24*COOKIE_TIME_OUT) {
  837.  
  838. logout();
  839. }
  840. /* Security check with untrusted cookies - dont trust value stored in cookie.
  841. /* We also do authentication check of the `ckey` stored in cookie matches that stored in database during login*/
  842.  
  843. if( !empty($ckey) && is_numeric($_COOKIE['user_id']) && isUserID($_COOKIE['user_name']) && $_COOKIE['user_key'] == sha1($ckey) ) {
  844. session_regenerate_id(); //against session fixation attacks.
  845.  
  846. $_SESSION['user_id'] = $_COOKIE['user_id'];
  847. $_SESSION['user_name'] = $_COOKIE['user_name'];
  848. /* query user level from database instead of storing in cookies */
  849. list($user_level) = mysql_fetch_row(mysql_query("select user_level from users where id='$_SESSION[user_id]'"));
  850.  
  851. $_SESSION['user_level'] = $user_level;
  852. $_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);
  853.  
  854. } else {
  855. logout();
  856. }
  857.  
  858. } else {
  859. header("Location: index.php");
  860. exit();
  861. }
  862. }
  863. }
  864.  
  865.  
  866.  
  867. function filter($data) {
  868. @$data = trim(htmlentities(strip_tags($data)));
  869.  
  870. if (get_magic_quotes_gpc())
  871. $data = stripslashes($data);
  872.  
  873. $data = mysql_real_escape_string($data);
  874.  
  875. return $data;
  876. }
  877.  
  878.  
  879.  
  880. function EncodeURL($url)
  881. {
  882. $new = strtolower(ereg_replace(' ','_',$url));
  883. return($new);
  884. }
  885.  
  886. function DecodeURL($url)
  887. {
  888. $new = ucwords(ereg_replace('_',' ',$url));
  889. return($new);
  890. }
  891.  
  892. function ChopStr($str, $len)
  893. {
  894. if (strlen($str) < $len)
  895. return $str;
  896.  
  897. $str = substr($str,0,$len);
  898. if ($spc_pos = strrpos($str," "))
  899. $str = substr($str,0,$spc_pos);
  900.  
  901. return $str . "...";
  902. }
  903.  
  904. function isEmail($email){
  905. return preg_match('/^\S+@[\w\d.-]{2,}\.[\w]{2,6}$/iU', $email) ? TRUE : FALSE;
  906. }
  907.  
  908. function isUserID($username)
  909. {
  910. if (preg_match('/^[a-z\d_]{5,20}$/i', $username)) {
  911. return true;
  912. } else {
  913. return false;
  914. }
  915. }
  916.  
  917. function isURL($url)
  918. {
  919. if (preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)) {
  920. return true;
  921. } else {
  922. return false;
  923. }
  924. }
  925.  
  926. function checkPwd($x,$y)
  927. {
  928. if(empty($x) || empty($y) ) { return false; }
  929. if (strlen($x) < 4 || strlen($y) < 4) { return false; }
  930.  
  931. if (strcmp($x,$y) != 0) {
  932. return false;
  933. }
  934. return true;
  935. }
  936.  
  937. function GenPwd($length = 7)
  938. {
  939. $password = "";
  940. $possible = "0123456789bcdfghjkmnpqrstvwxyz"; //no vowels
  941.  
  942. $i = 0;
  943.  
  944. while ($i < $length) {
  945.  
  946.  
  947. $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
  948.  
  949.  
  950. if (!strstr($password, $char)) {
  951. $password .= $char;
  952. $i++;
  953. }
  954.  
  955. }
  956.  
  957. return $password;
  958.  
  959. }
  960.  
  961. function GenKey($length = 7)
  962. {
  963. $password = "";
  964. $possible = "0123456789abcdefghijkmnopqrstuvwxyz";
  965.  
  966. $i = 0;
  967.  
  968. while ($i < $length) {
  969.  
  970.  
  971. $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
  972.  
  973.  
  974. if (!strstr($password, $char)) {
  975. $password .= $char;
  976. $i++;
  977. }
  978.  
  979. }
  980.  
  981. return $password;
  982.  
  983. }
  984.  
  985.  
  986. function logout()
  987. {
  988. global $db;
  989. session_start();
  990.  
  991. $sess_user_id = strip_tags(mysql_real_escape_string($_SESSION['user_id']));
  992. $cook_user_id = strip_tags(mysql_real_escape_string($_COOKIE['user_id']));
  993.  
  994. if(isset($sess_user_id) || isset($cook_user_id)) {
  995. mysql_query("update `users`
  996. set `ckey`= '', `ctime`= ''
  997. where `id`='$sess_user_id' OR `id` = '$cook_user_id'") or die(mysql_error());
  998. }
  999.  
  1000. /************ Delete the sessions****************/
  1001. unset($_SESSION['user_id']);
  1002. unset($_SESSION['user_name']);
  1003. unset($_SESSION['user_level']);
  1004. unset($_SESSION['HTTP_USER_AGENT']);
  1005. session_unset();
  1006. session_destroy();
  1007.  
  1008. /* Delete the cookies*******************/
  1009. setcookie("user_id", '', time()-60*60*24*COOKIE_TIME_OUT, "/");
  1010. setcookie("user_name", '', time()-60*60*24*COOKIE_TIME_OUT, "/");
  1011. setcookie("user_key", '', time()-60*60*24*COOKIE_TIME_OUT, "/");
  1012.  
  1013. header("Location: index.php");
  1014. }
  1015.  
  1016. // Password and salt generation
  1017. function PwdHash($pwd, $salt = null)
  1018. {
  1019. if ($salt === null) {
  1020. $salt = substr(md5(uniqid(rand(), true)), 0, SALT_LENGTH);
  1021. }
  1022. else {
  1023. $salt = substr($salt, 0, SALT_LENGTH);
  1024. }
  1025. return $salt . sha1($pwd . $salt);
  1026. }
  1027.  
  1028. function checkAdmin() {
  1029.  
  1030. if($_SESSION['user_level'] == ADMIN_LEVEL) {
  1031. return 1;
  1032. } else { return 0 ;
  1033. }
  1034.  
  1035. }
  1036.  
  1037. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement