2016-06-30 1 views
0
<?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">&copy; 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  = '[email protected]'; 
    public $FromName = SITETITLE; 
    public $Host  = 'smtp.gmail.com'; 
    public $Mailer = 'isSMTP'; 
    public $SMTPAuth = true; 
    public $Username = '[email protected]'; 
    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))."\n\n"; 
     $this->AltBody = str_replace("&nbsp;", "\n\n", $this->AltBody); 
     return parent::send(); 
    } 
} 

**** Quand je soumets à bouton Enregistrer http://monthlyreport.ultimatefreehost.in Je vois toujours HTTP500 erreur, mais l'enregistrement Sql Enregistrer la requête du Data.But la redirection vers en-tête de la page d'index ('Location: index.php? Action = joint'); Peut-être ne pas faire le travail !!!! #SolideHTTP 500 ERREUR Après cliquant sur le bouton et phpmailer Email Erreur

Aussi le courrier n'est pas envoyé toujours pour l'activation s'il vous plaît aidez-moi à résoudre cette erreur !! Je reçois dans ma boîte de réception e-mail comme une capture d'écran est attachment.Here électronique et pièce jointe Capture d'écran du fichier --- [Capture d'écran e-mail] [1] Email Attachment Screenshot

[1]: http://i.stack.imgur.com/MUOEy.png Email Inbox Screenshot 

Répondre

0

Vous obtenez le lastinsertid de l'objet PDO et non votre objet de résultats.

Pourriez-vous remplacer $id = $db->lastInsertId('memberID');' with $ id = $ db-> lastInseratId ('memberID'); '?

Si vous souhaitez rediriger avec pah, utilisez le code suivant. header("Location: index.php?action=joined", true, 302);

Vous pouvez également rediriger avec Javascript. echo "<script>window.location = 'index.php?action=joined';</script>";

Pourriez-vous s'il vous plait essayer ceci?

+0

Monsieur, j'ai essayé le vôtre aussi !! Mais pareil..Voulez-vous vérifier mes fichiers à votre fin .. Puis-je vous fournir les détails du serveur? – himanshuahuja

+0

Oui, vous pouvez fournir. –

+0

pouvez-vous fournir votre ID email? – himanshuahuja

0

Essayez

header('Location:index.php?action=joined'); 
+0

Toujours même problème Sir !!!! Pouvez-vous voir mon code mail Php peut être aussi il provoque une erreur – himanshuahuja

+0

il suffit de commenter votre code d'envoi de courrier électronique, puis essayez-le –

+0

premier commentaire le code 'mail' pour voir si reste fonctionne ou pas et si trouvé un problème dans 'mail' alors essayez [ceci] (https://www.sitepoint.com/sending-emails-php-phpmailer/) pour phpmailer – dod29