Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php require('includes/config.php');
- //if logged in redirect to members page
- if( $user->is_logged_in() ){ header('Location: memberpage.php'); }
- //if form has been submitted process it
- if(isset($_POST['submit'])){
- //very basic validation
- if(strlen($_POST['username']) < 3){
- $error[] = 'Username is too short.';
- } else {
- $stmt = $db->prepare('SELECT username FROM members WHERE username = :username');
- $stmt->execute(array(':username' => $_POST['username']));
- $row = $stmt->fetch(PDO::FETCH_ASSOC);
- if(!empty($row['username'])){
- $error[] = 'Username provided is already in use.';
- }
- }
- if(strlen($_POST['password']) < 3){
- $error[] = 'Password is too short.';
- }
- if(strlen($_POST['passwordConfirm']) < 3){
- $error[] = 'Confirm password is too short.';
- }
- if($_POST['password'] != $_POST['passwordConfirm']){
- $error[] = 'Passwords do not match.';
- }
- //email validation
- if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
- $error[] = 'Please enter a valid email address';
- } else {
- $stmt = $db->prepare('SELECT email FROM members WHERE email = :email');
- $stmt->execute(array(':email' => $_POST['email']));
- $row = $stmt->fetch(PDO::FETCH_ASSOC);
- if(!empty($row['email'])){
- $error[] = 'Email provided is already in use.';
- }
- }
- //if no errors have been created carry on
- if(!isset($error)){
- //hash the password
- $hashedpassword = $user->password_hash($_POST['password'], PASSWORD_BCRYPT);
- //create the activasion code
- $activasion = md5(uniqid(rand(),true));
- try {
- //insert into database with a prepared statement
- $stmt = $db->prepare('INSERT INTO members (username,password,email,active) VALUES (:username, :password, :email, :active)');
- $stmt->execute(array(
- ':username' => $_POST['username'],
- ':password' => $hashedpassword,
- ':email' => $_POST['email'],
- ':active' => $activasion
- ));
- $id = $db->lastInseratId('memberID');
- //send email
- $to = $_POST['email'];
- $subject = "Registration Confirmation";
- $body = "<p>Thank you for registering at demo site.</p>
- <p>To activate your account, please click on this link: <a href='".DIR."activate.php?x=$id&y=$activasion'>".DIR."activate.php?x=$id&y=$activasion</a></p>
- <p>Regards Site Admin</p>";
- $mail = new Mail();
- $mail->setFrom(SITEEMAIL);
- $mail->addAddress($to);
- $mail->subject($subject);
- $mail->body($body);
- $mail->send();
- //redirect to index page
- header('Location: index.php?action=joined');
- exit;
- //else catch the exception and show the error.
- } catch(PDOException $e) {
- $error[] = $e->getMessage();
- }
- }
- }
- ?>
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
- <meta charset="utf-8" />
- <title>New User Registration</title>
- <meta name="description" content="User login page" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
- <!-- bootstrap & fontawesome -->
- <link rel="stylesheet" href="assets/css/bootstrap.min.css" />
- <link rel="stylesheet" href="assets/font-awesome/4.2.0/css/font-awesome.min.css" />
- <!-- text fonts -->
- <link rel="stylesheet" href="assets/fonts/fonts.googleapis.com.css" />
- <!-- ace styles -->
- <link rel="stylesheet" href="assets/css/ace.min.css" />
- <!--[if lte IE 9]>
- <link rel="stylesheet" href="assets/css/ace-part2.min.css" />
- <![endif]-->
- <link rel="stylesheet" href="assets/css/ace-rtl.min.css" />
- <!--[if lte IE 9]>
- <link rel="stylesheet" href="assets/css/ace-ie.min.css" />
- <![endif]-->
- <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
- <!--[if lt IE 9]>
- <script src="assets/js/html5shiv.min.js"></script>
- <script src="assets/js/respond.min.js"></script>
- <![endif]-->
- </head>
- <body class="login-layout">
- <div class="main-container">
- <div class="main-content">
- <div class="row">
- <div class="col-sm-10 col-sm-offset-1">
- <div class="login-container">
- <div class="center">
- <h1>
- <i class="ace-icon fa fa-leaf green"></i>
- <span class="red">Ace</span>
- <span class="white" id="id-text2">Application</span>
- </h1>
- <h4 class="blue" id="id-company-text">© Company Name</h4>
- </div>
- <div class="space-6"></div>
- <div class="position-relative">
- <div id="signup-box" class="signup-box widget-box no-border visible">
- <div class="widget-body">
- <div class="widget-main">
- <h4 class="header green lighter bigger">
- <i class="ace-icon fa fa-users blue"></i>
- New User Registration
- </h4>
- <div class="space-6"></div>
- <p> Enter your details to begin: </p>
- <form role="form" method="post" action="" autocomplete="off">
- <?php
- //check for any errors
- if(isset($error)){
- foreach($error as $error){
- echo '<p class="bg-danger">'.$error.'</p>';
- }
- }
- //if action is joined show sucess
- if(isset($_GET['action']) && $_GET['action'] == 'joined'){
- echo "<h2 class='bg-success'>Registration successful, please check your email to activate your account.</h2>";
- }
- ?>
- <fieldset>
- <label class="block clearfix">
- <span class="block input-icon input-icon-right">
- <input type="email" name="email" id="email" class="form-control" placeholder="Email" value="<?php if(isset($error)){ echo $_POST['email']; } ?>" tabindex="1">
- <i class="ace-icon fa fa-envelope"></i>
- </span>
- </label>
- <label class="block clearfix">
- <span class="block input-icon input-icon-right">
- <input type="text" name="username" id="username" class="form-control" placeholder="Username" value="<?php if(isset($error)){ echo $_POST['username']; } ?>" tabindex="2">
- <i class="ace-icon fa fa-user"></i>
- </span>
- </label>
- <label class="block clearfix">
- <span class="block input-icon input-icon-right">
- <input type="password" name="password" id="password" class="form-control" placeholder="Password" tabindex="3">
- <i class="ace-icon fa fa-lock"></i>
- </span>
- </label>
- <label class="block clearfix">
- <span class="block input-icon input-icon-right">
- <input type="password" name="passwordConfirm" id="passwordConfirm" class="form-control" placeholder="Confirm password" tabindex="4">
- <i class="ace-icon fa fa-retweet"></i>
- </span>
- </label>
- <label class="block">
- <input type="checkbox" class="ace">
- <span class="lbl">
- I accept the
- <a href="#">User Agreement</a>
- </span>
- </label>
- <div class="space-24"></div>
- <div class="clearfix">
- <button type="reset" class="width-30 pull-left btn btn-sm">
- <i class="ace-icon fa fa-refresh"></i>
- <span class="bigger-110">Reset</span>
- </button>
- <button type="submit" name="submit" class="width-65 pull-right btn btn-sm btn-success" tabindex="5">
- <span class="bigger-110">Register</span>
- <i class="ace-icon fa fa-arrow-right icon-on-right"></i>
- </button>
- </div>
- </fieldset>
- </form>
- </div>
- <div class="toolbar center">
- <a href="login.html" class="back-to-login-link">
- <i class="ace-icon fa fa-arrow-left"></i>
- Back to login
- </a>
- </div>
- </div><!-- /.widget-body -->
- </div><!-- /.signup-box -->
- </div><!-- /.position-relative -->
- </div>
- </div><!-- /.col -->
- </div><!-- /.row -->
- </div><!-- /.main-content -->
- </div><!-- /.main-container -->
- <!-- basic scripts -->
- <!--[if !IE]> -->
- <script src="assets/js/jquery.2.1.1.min.js"></script>
- <!-- <![endif]-->
- <!--[if IE]>
- <script src="assets/js/jquery.1.11.1.min.js"></script>
- <![endif]-->
- <!--[if !IE]> -->
- <script type="text/javascript">
- window.jQuery || document.write("<script src='assets/js/jquery.min.js'>"+"<"+"/script>");
- </script>
- <!-- <![endif]-->
- <!--[if IE]>
- <script type="text/javascript">
- window.jQuery || document.write("<script src='assets/js/jquery1x.min.js'>"+"<"+"/script>");
- </script>
- <![endif]-->
- <script type="text/javascript">
- if('ontouchstart' in document.documentElement) document.write("<script src='assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
- </script>
- </body>
- </html>
- ****----------------Here is my Mail.php file-------------------****
- <?php
- include('phpmailer.php');
- class Mail extends PhpMailer
- {
- // Set default variables for all new objects
- public $From = 'noreply@domain.com';
- public $FromName = SITETITLE;
- public $Host = 'smtp.gmail.com';
- public $Mailer = 'isSMTP';
- public $SMTPAuth = true;
- public $Username = 'email@gmail.com';
- public $Password = 'password';
- public $SMTPSecure = 'ssl';
- public $WordWrap = 75;
- public function subject($subject)
- {
- $this->Subject = $subject;
- }
- public function body($body)
- {
- $this->Body = $body;
- }
- public function send()
- {
- $this->AltBody = strip_tags(stripslashes($this->Body))."nn";
- $this->AltBody = str_replace(" ", "nn", $this->AltBody);
- return parent::send();
- }
- }
- [1]: http://i.stack.imgur.com/MUOEy.png Email Inbox Screenshot
- header('Location:index.php?action=joined');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement