Advertisement
Help Keep Boards Alive. Support us by going ad free today. See here: https://subscriptions.boards.ie/.
https://www.boards.ie/group/1878-subscribers-forum

Private Group for paid up members of Boards.ie. Join the club.
Hi all, please see this major site announcement: https://www.boards.ie/discussion/2058427594/boards-ie-2026

setting up a my sql cant get auto email

  • 02-10-2011 06:12PM
    #1
    Registered Users, Registered Users 2 Posts: 210 ✭✭


    when i fill out the form on my site it will not send the auto email to the email address i put in the form, if you know what i mean its ment to send a email so people can press a link to make there account work

    here is the code for my register.php

    [PHP]

    <?

    include 'db.php';

    // Define post fields into simple variables
    $first_name = $_POST;
    $last_name = $_POST;
    $email_address = $_POST;
    $username = $_POST;
    $info = $_POST;

    /* Let's strip some slashes in case the user entered
    any escaped characters. */

    $first_name = stripslashes($first_name);
    $last_name = stripslashes($last_name);
    $email_address = stripslashes($email_address);
    $username = stripslashes($username);
    $info = stripslashes($info);


    /* Do some error checking on the form posted fields */

    if((!$first_name) || (!$last_name) || (!$email_address) || (!$username)){
    echo 'You did not submit the following required information! <br />';
    if(!$first_name){
    echo "First Name is a required field. Please enter it below.<br />";
    }
    if(!$last_name){
    echo "Last Name is a required field. Please enter it below.<br />";
    }
    if(!$email_address){
    echo "Email Address is a required field. Please enter it below.<br />";
    }
    if(!$username){
    echo "Desired Username is a required field. Please enter it below.<br />";
    }
    include 'join_form.html'; // Show the form again!
    /* End the error checking and if everything is ok, we'll move on to
    creating the user account */
    exit(); // if the error checking has failed, we'll exit the script!
    }

    /* Let's do some checking and ensure that the user's email address or username
    does not exist in the database */

    $sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'");
    $sql_username_check = mysql_query("SELECT username FROM users WHERE username='$username'");

    $email_check = mysql_num_rows($sql_email_check);
    $username_check = mysql_num_rows($sql_username_check);

    if(($email_check > 0) || ($username_check > 0)){
    echo "Please fix the following errors: <br />";
    if($email_check > 0){
    echo "<strong>Your email address has already been used by another member in our database. Please submit a different Email address!<br />";
    unset($email_address);
    }
    if($username_check > 0){
    echo "The username you have selected has already been used by another member in our database. Please choose a different Username!<br />";
    unset($username);
    }
    include 'join_form.html'; // Show the form again!
    exit(); // exit the script so that we do not create this account!
    }

    /* Everything has passed both error checks that we have done.
    It's time to create the account! */

    /* Random Password generator.
    http://www.phpfreaks.com/quickcode/Random_Password_Generator/56.php

    We'll generate a random password for the
    user and encrypt it, email it and then enter it into the db.
    */

    function makeRandomPassword() {
    $salt = "abchefghjkmnpqrstuvwxyz0123456789";
    srand((double)microtime()*1000000);
    $i = 0;
    while ($i <= 7) {
    $num = rand() % 33;
    $tmp = substr($salt, $num, 1);
    $pass = $pass . $tmp;
    $i++;
    }
    return $pass;
    }

    $random_password = makeRandomPassword();

    $db_password = md5($random_password);

    // Enter info into the Database.
    $info2 = htmlspecialchars($info);
    $sql = mysql_query("INSERT INTO users (first_name, last_name, email_address, username, password, info, signup_date)
    VALUES('$first_name', '$last_name', '$email_address', '$username', '$db_password', '$info2', now())") or die (mysql_error());

    if(!$sql){
    echo 'There has been an error creating your account. Please contact the webmaster.';
    } else {
    $userid = mysql_insert_id();
    // Let's mail the user!
    $subject = "Your Membership at Digital TV Donegal!";
    $message = "Dear $first_name $last_name,
    Thank you for registering at our website, http://www.irelandwebdesign.biz!

    You are two steps away from logging in and accessing our exclusive members area.

    To activate your membership, please click here: http://www.irelandwebdesign.biz/activate.php?id=$userid&code=$db_password

    Once you activate your memebership, you will be able to login with the following information:
    Username: $username
    Password: $random_password

    Thanks!
    The shane

    This is an automated response, please do not reply!";

    mail($email_address, $subject, $message, "From: MyDomain Webmaster<admin@mydomain.com>\nX-Mailer: PHP/" . phpversion());
    echo 'Your membership information has been mailed to your email address! Please check it and follow the directions!';
    }

    ?>
    [/PHP]

    were the form is its www.irelandwebdesign.biz


    what would i be doing wrong do i need to put a email address in the php scrip somewere or anything?


Comments

  • Registered Users, Registered Users 2 Posts: 968 ✭✭✭moycullen14


    First of all check the return from the mail() call. Is it OK?

    The code looks OK. Your problem could be with the SMTP server and/or port. These are probably specified in php.ini. The settings on a windows server might look like:


    SMTP = "my.mailserver.dom"
    smtp_port = 25

    Check that and see how you go.


  • Registered Users, Registered Users 2 Posts: 210 ✭✭pjwhite99


    thats it you were right it was the settings thanks


Advertisement
Advertisement