Advertisement
Guest User

Untitled

a guest
Nov 21st, 2016
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 15.63 KB | None | 0 0
  1. <?php
  2.     session_start();
  3.     include_once("php_includes/check_login_status.php");
  4.     if($user_ok == true){
  5.         header("location: profile.php?u=".$_SESSION["username"]);
  6.         exit();
  7.     }
  8. ?>
  9. <?php
  10.     // Ajax calls this NAME CHECK code to execute
  11.     if(isset($_POST["usernamecheck"])){
  12.         include_once("php_includes/db_connect.php");
  13.         $username = preg_replace('#[^a-z0-9]#i', '', $_POST['usernamecheck']);
  14.         $sql = "SELECT id FROM users WHERE username='$username' LIMIT 1";
  15.         $query = mysqli_query($db_conx, $sql);
  16.         $uname_check = mysqli_num_rows($query);
  17.         if (strlen($username) < 3 || strlen($username) > 16) {
  18.             echo '<strong style="color:#FFF;">3 - 16 characters please</strong>';
  19.             exit();
  20.         }
  21.         if (is_numeric($username[0])) {
  22.             echo '<strong style="color:#F00;">Usernames must begin with a letter</strong>';
  23.             exit();
  24.         }
  25.         if ($uname_check < 1) {
  26.             echo '<strong style="color:#009900;">' . $username . ' is OK</strong>';
  27.             exit();
  28.         } else {
  29.             echo '<strong style="color:#F00;">' . $username . ' is taken</strong>';
  30.             exit();
  31.         }
  32.     }
  33. ?>
  34. <?php
  35.     // Ajax calls this REGISTRATION code to execute
  36.     if(isset($_POST["u"])){
  37.         // CONNECT TO THE DATABASE
  38.         include_once("php_includes/db_connect.php");
  39.         // GATHER THE POSTED DATA INTO LOCAL VARIABLES\
  40.         $f = $_POST['firstname'];
  41.         $l = $_POST['lastname'];
  42.         $u = preg_replace('#[^a-z0-9]#i', '', $_POST['u']);
  43.         $e = mysqli_real_escape_string($db_conx, $_POST['e']);
  44.         $p = $_POST['p'];
  45.         $g = preg_replace('#[^a-z]#', '', $_POST['g']);
  46.         $c = preg_replace('#[^a-z ]#i', '', $_POST['c']);
  47.         // GET USER IP ADDRESS
  48.         $ip = preg_replace('#[^0-9.]#', '', getenv('REMOTE_ADDR'));
  49.  
  50.             // DUPLICATE DATA CHECKS FOR USERNAME AND EMAIL
  51.             $sql = "SELECT id FROM users WHERE username='$u' LIMIT 1";
  52.             $query = mysqli_query($db_conx, $sql);
  53.             $u_check = mysqli_num_rows($query);
  54.             // -------------------------------------------
  55.             $sql = "SELECT id FROM users WHERE email='$e' LIMIT 1";
  56.             $query = mysqli_query($db_conx, $sql);
  57.             $e_check = mysqli_num_rows($query);
  58.  
  59.         // FORM DATA ERROR HANDLING
  60.         if($f = "" || $l = "" || $u == "" || $e == "" || $p == "" || $g == "" || $c == ""){
  61.             echo "The form submission is missing values.";
  62.             exit();
  63.         } else if ($u_check > 0){
  64.             echo "The username you entered is alreay taken";
  65.             exit();
  66.         } else if (strlen($u) < 3 || strlen($u) > 16) {
  67.             echo "Username must be between 3 and 16 characters";
  68.             exit();
  69.         } else if (is_numeric($u[0])) {
  70.             echo 'Username cannot begin with a number';
  71.             exit();
  72.         } else if (strlen($p) < 8) {
  73.             echo 'Your password  must be 8 characters';
  74.             exit();
  75.         } else if ($e_check > 0){
  76.             echo "That email address is already in use in the system";
  77.             exit();
  78.         } else {
  79.         // END FORM DATA ERROR HANDLING
  80.             // Begin Insertion of data into the database
  81.             // Hash the password and apply your own mysterious unique salt
  82.             $p_md5 = md5($p);
  83.             $p_hash = hash('sha512', $p_md5);
  84.             // Add user info into the database table for the main site table
  85.             $sql = "INSERT INTO users (firstname, lastname, username, email, password, gender, country, ip, signup, lastlogin, notescheck)
  86.                                 VALUES('$f', '$l', '$u','$e','$p_hash','$g','$c,'$ip',now(),now(),now())";
  87.                 $query = mysqli_query($db_conx, $sql);
  88.                 $uid = mysqli_insert_id($db_conx);
  89.                 if(!$query) {
  90.                     echo "DB1, FAIL<br>";
  91.                 } else {
  92.                     echo "DB1, Success<br>";
  93.                 }
  94.  
  95.             // Establish their row in the useroptions table
  96.             $sql = 'INSERT INTO useroptions (id, username, background)
  97.                                     VALUES ("$uid", "$u", "original")';
  98.                 $query = mysqli_query($db_conx, $sql);
  99.                 if(!$query) {
  100.                     echo "DB2, FAIL<br>";
  101.                 } else {
  102.                     echo "DB2, Success<br>";
  103.                 }
  104.             // Establish their row in the links table
  105.             $url = "www.elefind.x10.bz/profile.php?u=$u";
  106.             $sql = "INSERT INTO links (link_id, site_id, url, title, subtitle, description, fulltxt, indexdate, size, md5sum, visible, level)
  107.                                 VALUES('', '', '$url', '$u', '$f $l', '', now(), '', '', '', '')";
  108.                 $query = mysqli_query($db_conx, $sql);
  109.                 if(!$query) {
  110.                     echo "DB3, FAIL<br>";
  111.                 } else {
  112.                     echo "DB2, Success<br>";
  113.                 }
  114.                 echo "Fname: ".$f."<br>";
  115.                 echo "Lname: ".$l."<br>";
  116.                 echo "Uname: ".$u."<br>";
  117.                 echo "pwd: ".$p_hash."<br>";
  118.                 echo "Gender: ".$g."<br>";
  119.                 echo "Country: ".$c."<br>";
  120.                 echo "ip: ".$ip."<br>";
  121.  
  122.             // Create directory(folder) to hold each user's files(pics, MP3s, etc.)
  123.             if (!file_exists("user/")) {
  124.                 mkdir("user/", 0755);
  125.                 echo "User folder created.<br>";
  126.             }
  127.             if (!file_exists("user/$u")) {
  128.                 mkdir("user/$u", 0755);
  129.                 echo "profile folder created.<br>";
  130.             }
  131.             // Email the user their activation link
  132.             $to = "$e";                          
  133.             $from = "noreply@elefind.x10.bz";
  134.             $subject = 'Elefind Account Activation';
  135.             $message = '    <!DOCTYPE html>';
  136.             $message .= '       <html>';
  137.             $message .= '           <head>';
  138.             $message .= '               <meta charset="UTF-8">';
  139.             $message .= '               <title>Elefind Message</title>';
  140.             $message .= '           </head>';
  141.             $message .= '           <body style="margin:0px; font-family:Tahoma, Geneva, sans-serif;">';
  142.             $message .= '                   <table style="background:#343642;padding:40px;border:1px solid #DDD;margin:0 auto;font-family:calibri;">';
  143.             $message .= '                       <tr>';
  144.             $message .= '                           <td>';
  145.             $message .= '                               <table style="background:#505260;width:100%;border:1px solid #CCC;padding:0;margin:0;border-collapse:collapse;max-width:100%;width:550px;border-radius:10px;">';
  146.             $message .= '                                   <!-- Logo -->';
  147.             $message .= '                                   <tr>';
  148.             $message .= '                                       <td style="padding:10px 30px;text-align:center;margin:0">';
  149.             $message .= '                                           <p>';
  150.             $message .= '                                           <a href="#"><img src="http://www.elefind.x10.bz/img/logo.png" width="100"></a>';
  151.             $message .= '                                           </p>';
  152.             $message .= '                                       </td>';
  153.             $message .= '                                   </tr>';
  154.             $message .= '                                   <!-- Welcome Salutation -->';
  155.             $message .= '                                   <tr>';
  156.             $message .= '                                       <td style="padding:10px 30px;margin:0;font-size:2.5em;color:#4A7BA5;text-align:center;">';
  157.             $message .= '                                           Welcome to Elefind!';
  158.             $message .= '                                       </td>';
  159.             $message .= '                                   </tr>';
  160.             $message .= '                                   <!-- User Msg -->';
  161.             $message .= '                                   <tr>';
  162.             $message .= '                                       <td style="padding:10px 30px;margin:0;text-align:left;color:FFF;">';
  163.             $message .= '                                           <p>Hey there '.$u.',</p>';
  164.             $message .= '                                           <p>To activate your profile please follow link on the below link,</p>';
  165.             $message .= '                                       </td>';
  166.             $message .= '                                   </tr>';
  167.             $message .= '                                   <!-- Link Button -->';
  168.             $message .= '                                   <tr>';
  169.             $message .= '                                       <td style="padding:10px 30px;text-align:center;">';
  170.             $message .= '                                           <a href="http://elefind.x10.bz/activation.php?id='.$uid.'&u='.$u.'&e='.$e.'&p='.$p_hash.'" title="Activate Profile">';
  171.             $message .= '                                               <img src="http://elefind.x10.bz/img/activate.png" width="300" height="auto">';
  172.             $message .= '                                               </img>';
  173.             $message .= '                                           </a>';
  174.             $message .= '                                       </td>';
  175.             $message .= '                                   </tr>';
  176.             $message .= '                                   <!-- Seperator -->';
  177.             $message .= '                                   <tr>';
  178.             $message .= '                                       <td style="padding:10px 30px;">';
  179.             $message .= '                                       </td>';
  180.             $message .= '                                   </tr>';
  181.             $message .= '                                   <!-- Footer Content -->';
  182.             $message .= '                                   <tr>';
  183.             $message .= '                                       <td style="padding:10px 30px;margin:0;background:#555;color:#CCC;border-top:1px solid #CCC;">';
  184.             $message .= '                                           <p>Once your account is active you can sign in with your email adress.</p>';
  185.             $message .= '                                           <p>Didn\'t request this? If you didn\'t request a to make an account with us, please let us know.</p>';
  186.             $message .= '                                           <p>This email is sent from an unmonitored address. Please do not reply.<!-- Please use links inline to get additional information or help.--></p>';
  187.             $message .= '                                           <!--<p>If you no longer wish to receive these emails, click here to <a href="#" style="color:#FFF;">Unsubscribe</a></p>-->';
  188.             $message .= '                                       </td>';
  189.             $message .= '                                   </tr>';
  190.             $message .= '                               </table>';
  191.             $message .= '                               <!-- Some more content -->';
  192.             $message .= '                               <tr>';
  193.             $message .= '                                   <td style="padding:10px 30px;margin:0;font-size:10px;">';
  194.             $message .= '                                       <p> Click on the link above to activate your account, If the button does not work please use the following link,</br>';
  195.             $message .= '                                           <a href="http://elefind.x10.bz/activation.php?id='.$uid.'&u='.$u.'&e='.$e.'&p='.$p_hash.'">';
  196.             $message .= '                                               http://elefind.x10.bz/activation.php?id='.$uid.'&u='.$u.'&e='.$e.'&p='.$p_hash;
  197.             $message .= '                                           </a>';
  198.             $message .= '                                       </p>';
  199.             $message .= '                                   </td>';
  200.             $message .= '                               </tr>';
  201.             $message .= '                           </td>';
  202.             $message .= '                       </tr>';
  203.             $message .= '               </table>';
  204.             $message .= '           </body>';
  205.             $message .= '       </html>';
  206.             $headers = "From: $from\n";
  207.             $headers .= "MIME-Version: 1.0\n";
  208.             $headers .= "Content-type: text/html; charset=iso-8859-1\n";
  209.             mail($to, $subject, $message, $headers);
  210.             echo "ACCOUNT_CREATED_SUCCESSFULLY";
  211.             exit();
  212.         }
  213.         exit();
  214.     }
  215. ?>
  216. <!DOCTYPE html>
  217.     <html>
  218.         <head>
  219.             <head name="Default">
  220.                 <link rel="icon" href="favicon.ico" type="image/x-icon">
  221.                 <meta charset="UTF-8">
  222.                 <title>Sign Up</title> 
  223.              </head>
  224.             <head name="CSS">
  225.                 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
  226.                 <link rel="stylesheet" href="css/pages/signup.css">
  227.                 <link rel="stylesheet" href="css/header.css">
  228.                 <link rel="stylesheet" href="css/footer.css">
  229.                 <link rel="stylesheet" href="css/fonts.css">
  230.              </head>
  231.             <head name="JS">
  232.                 <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
  233.                 <script src="js/pages/signup.js"></script>
  234.                 <script src="js/header.js"></script>
  235.                 <script src="js/main.js"></script>
  236.                 <script src="js/ajax.js"></script>
  237.                 <script>
  238.  
  239.                     $('.send').click(function(e){
  240.                         $(".send").addClass("sending");
  241.                     })
  242.                    
  243.                     function restrict(elem){
  244.                         var tf = document.getElementById(elem);
  245.                         var rx = new RegExp;
  246.                         if(elem == "email"){
  247.                             rx = /[' "]/gi;
  248.                         } else if(elem == "username"){
  249.                             rx = /[^a-z0-9]/gi;
  250.                         } else if(elem == "name"){
  251.                             rx = /[^a-z]/gi;
  252.                         } else if(elem == "name"){
  253.                             rx = /[^a-z]/gi;
  254.                         }
  255.                         tf.value = tf.value.replace(rx, "");
  256.                     }
  257.                     function emptyElement(x){
  258.                         document.getElementById(x).innerHTML = "";
  259.                     }
  260.                     function checkusername(){
  261.                         var u = document.getElementById("username").value;
  262.                         if(u != ""){
  263.                         document.getElementById("unamestatus").innerHTML = 'checking ...';
  264.                         var ajax = ajaxObj("POST", "signup.php");
  265.                             ajax.onreadystatechange = function() {
  266.                                 if(ajaxReturn(ajax) == true) {
  267.                                     document.getElementById("unamestatus").innerHTML = ajax.responseText;
  268.                                 }
  269.                             }
  270.                         ajax.send("usernamecheck="+u);
  271.                         }
  272.                     }
  273.                     function signup(){
  274.                         var fn = document.getElementById("firstname").value;
  275.                         var ln = document.getElementById("lastname").value;
  276.                         var u = document.getElementById("username").value;
  277.                         var e = document.getElementById("email").value;
  278.                         var p1 = document.getElementById("pass1").value;
  279.                         var p2 = document.getElementById("pass2").value;
  280.                         var c = document.getElementById("country").value;
  281.                         var g = document.getElementById("gender").value;
  282.                         var status = document.getElementById("status");
  283.                         if(fn == "" || ln == ""|| u == "" || e == "" || p1 == "" || p2 == "" || c == "" || g == ""){
  284.                             status.innerHTML = "Some of the form data is missing, Please fill it all out.<br>first name: "+fn+"<br>Last name: "+ln;
  285.                             $(".send").removeClass("sending");
  286.                         } else if(p1 != p2){
  287.                             status.innerHTML = "Your password fields do not match";
  288.                             $(".send").removeClass("sending");
  289.                         } else {
  290.                             var ajax = ajaxObj("POST", "signup.php");
  291.                             ajax.onreadystatechange = function() {
  292.                                 if(ajaxReturn(ajax) == true) {
  293.                                     if(ajax.responseText != "ACCOUNT_CREATED_SUCCESSFULLY"){
  294.                                         status.innerHTML = ajax.responseText;
  295.                                         $(".send").removeClass("sending");
  296.                                     } else {
  297.                                         window.scrollTo(0,0);
  298.                                         $(".send").removeClass("sending");
  299.                                         document.getElementById("signupform").innerHTML = "OK "+u+", check your email inbox and junk mail box at <u>"+e+"</u> in a moment to complete the sign up process by activating your account. You will not be able to do anything on the site until you successfully activate your account. <br><br>fname: "+fn+"<br>lname: "+ln+"<br> username: "+u+"<br>email: "+e+"<br>password: "+p1+ "<br><br>Correct?";
  300.                                     }
  301.                                 }
  302.                             }
  303.                             ajax.send("fn="+fn+"&ln="+ln+"&u="+u+"&e="+e+"&p="+p1+"&c="+c+"&g="+g);
  304.                         }
  305.                     }
  306.                  </script>
  307.              </head>
  308.         </head>
  309.         <body>
  310.             <?php include_once("header.php"); ?>
  311.             <div class="content">
  312.                 <div class="cont">
  313.                     <form name="signupform" id="signupform" action="signup()">
  314.                         <div class="demo">
  315.                             <div class="signup">
  316.                                 <div class="signup__check"></div>
  317.                                 <div class="signup__form">
  318.                                     <div class="signup__row">
  319.                                         <input type="text" placeholder="First name" class="signup__input name" id="firstname" name="firstname" onfocus="emptyElement('status')" onkeyup="restrict('name')" maxlength="32">
  320.                                         <br>
  321.                                     </div>
  322.                                     <div class="signup__row">
  323.                                         <input type="text" placeholder="Last name" class="signup__input name" id="lastname" name="lastname" onfocus="emptyElement('status')" onkeyup="restrict('name')" maxlength="32">
  324.                                         <br>
  325.                                     </div>
  326.                                     <div class="signup__row">
  327.                                         <input type="text" placeholder="Username" class="signup__input name" id="username" onfocus="emptyElement('status')" onblur="checkusername()" onkeyup="restrict('username')" maxlength="16">
  328.                                         <br>
  329.                                         <span id="unamestatus"></span>
  330.                                     </div>
  331.                                     <div class="signup__row">
  332.                                         <input type="text" placeholder="Email" class="signup__input name" id="email" onfocus="emptyElement('status')" onkeyup="restrict('email')" maxlength="88">
  333.                                     </div>
  334.                                     <div class="signup__row">
  335.                                         <input type="password" placeholder="Password" class="signup__input pass" id="pass1" onfocus="emptyElement('status')" maxlength="16">
  336.                                     </div>
  337.                                     <div class="signup__row">
  338.                                         <input type="password" placeholder="Confirm password" class="signup__input pass" id="pass2" onfocus="emptyElement('status')" maxlength="16">
  339.                                     </div>
  340.                                     <div class="signup__row">
  341.                                         <select id="gender" onfocus="emptyElement('status')" placeholder="Gender" class="signup__input">
  342.                                             <option value="">Please select a gender</option>
  343.                                             <option value="m">Male</option>
  344.                                             <option value="f">Female</option>
  345.                                         </select>
  346.                                     </div>
  347.                                     <div class="signup__row">
  348.                                         <select id="country" onfocus="emptyElement('status')" placeholder="Country" class="signup__input">
  349.                                             <?php include_once("inc/countries.php"); ?>
  350.                                         </select>
  351.                                     </div>
  352.                                     <div>
  353.                                         <p class="signup__terms"> By creating an account you accept the <a href="terms_of_service.php">terms of service</a> </p>
  354.                                     </div>
  355.                                     <p id="status"></p>
  356.                                     <button id="signupbtn" onclick="signup()" class="send"name="Submit">Sign up</button>
  357.                                 </div>
  358.                             </div>
  359.                         </div>
  360.                     </form>
  361.                 </div>
  362.             </div>
  363.             <?php include_once("footer.php"); ?>
  364.         </body>
  365.     </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement