CodeIgniter Forums
need help for email confirmation! - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived General Discussion (https://forum.codeigniter.com/forumdisplay.php?fid=21)
+--- Thread: need help for email confirmation! (/showthread.php?tid=12716)



need help for email confirmation! - El Forum - 10-29-2008

[eluser]newbie boy[/eluser]
Hello Everyone,

I am trying to set up a registration form. Currently, when submitted, the form writes the user's info to a database and but have not sends out an email confirmation with their registration details to the user's email address.

I also want the user to confirm their registration details by clicking on a link that is sent in the confirmation email.

How do I generate that link?

Furthermore, once I figure out how to generate that link should I have my database set up with two tables. One for registered user's data/information and one for users confirmation link through email.

Thanks in advance for all your help.


need help for email confirmation! - El Forum - 10-29-2008

[eluser]OES[/eluser]
In your database have 2 extra fields.

REG Key -> Randon string generated on signup and sent with confirm url string.
Then a boleen for a field called registered set to 0 by default.

Then when they click the link it checks against the random string if correct is sets the boleen to true.

Then you can do your login / out routines based on the registered field etc.


need help for email confirmation! - El Forum - 10-30-2008

[eluser]newbie boy[/eluser]
sorry for my stupidity, i'm just really very new to CI. i'm really lost in translation.


need help for email confirmation! - El Forum - 10-30-2008

[eluser]newbie boy[/eluser]
will anyone be kind enough to revised this native php code using the CI. thank you very much.

Code:
<?php
require_once('db.php');
include('functions.php');

    if(isset($_POST['register']))
    {
        if($_POST['username']!='' && $_POST['password']!='' && $_POST['password']==$_POST['password_confirmed'] && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && checkUnique('Username', $_POST['username'])==TRUE && checkUnique('Email', $_POST['email'])==TRUE)
        {
        
            $query = mysql_query("INSERT INTO users (`Username` , `Password`, `Email`, `Random_key`) VALUES ('".mysql_real_escape_string($_POST['username'])."', '".mysql_real_escape_string(md5($_POST['password']))."', '".mysql_real_escape_string($_POST['email'])."', '".random_string('alnum', 32)."')") or die(mysql_error());
            
            $getUser = mysql_query("SELECT ID, Username, Email, Random_key FROM users WHERE Username = '".mysql_real_escape_string($_POST['username'])."'") or die(mysql_error());
    
            if(mysql_num_rows($getUser)==1)
            {//there's only one MATRIX :PP
            
                $row = mysql_fetch_assoc($getUser);
                $headers =     'From: [email protected]' . "\r\n" .
                            'Reply-To: [email protected]' . "\r\n" .
                            'X-Mailer: PHP/' . phpversion();
                $subject = "Activation email from ourdomainhere.com";
                $message = "Dear ".$row['Username'].", this is your activation link to join our website. In order to confirm your membership please click on the following link: http://www.ourdomainhere.com/confirm.php?ID=".$row['ID']."&key=".$row['Random_key']." Thank you for joining";
                if(mail($row['Email'], $subject, $message, $headers))
                {//we show the good guy only in one case and the bad one for the rest.
                    $msg = 'Account created. Please login to the email you provided during registration and confirm your membership.';
                }
                else {
                    $error = 'I created the account but failed sending the validation email out. Please inform my boss about this cancer of mine';
                }
            }
            else {
                $error = 'You just made possible the old guy (the impossible). Please inform my boss in order to give you the price for this.';
            }
                            
        }
        else {        
            $error = 'There was an error in your data. Please make sure you filled in all the required data, you provided a valid email address and that the password fields match';    
        }
    }
?>
<?php if(isset($error)){ echo $error;}?>
<?php if(isset($msg)){ echo $msg;} else {//if we have a mesage we don't need this form again.?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
    Username: <input type="text" id="username" name="username" size="32" value="<?php if(isset($_POST['username'])){echo $_POST['username'];}?>" /><br />
    Password: <input type="password" id="password" name="password" size="32" value="" /><br />
    Re-password: <input type="password" id="password_confirmed" name="password_confirmed" size="32" value="" /><br />
    Email: <input type="text" id="email" name="email" size="32" value="<?php if(isset($_POST['email'])){echo $_POST['email'];}?>" /><br />
    <input type="submit" name="register" value="register" /><br />
</form>
<? } ?>



need help for email confirmation! - El Forum - 10-31-2008

[eluser]sophistry[/eluser]
why do you ask the same question in two threads? you are so busy posting your code... you should really just buckle under and get the job done. ;-)