[oclug] Linux Server or PHP?

Zhimmy Kanata kanata_zhimmagish at yahoo.ca
Thu Apr 5 19:53:51 EDT 2007


Hi,
   
  I'm running into an interesting problem..Maybe its just me..
   
  But in the program below I have passed a $email into the mail() function. The server runs the function and its suppose to send a email to whoever is listed in $email...its running the function and delivers nothing!? I would have thought that if it wasn't running the function it would display and internal error message? So is it me..which I imagine it is or is it the server? Hmmm.... my code is listed below. If can anyone can help it would be apprecatied.
   
  <?php
  require("config.php");
require("functions.php");
  
//echo some styles to spice it up...
  echo "
<style>
body
   {   
   background: #131313;   
   font-family: Verdana, Arial;   
   font-weight: bold;   
   font-size: 9px;   
   color: #FFFFFF;
   }
   
.register_box
   {   
   border: 1px solid #323232;   
   background: #202020;   
   font-family: Verdana, Arial;   
   font-weight: bold;   
   font-size: 9px;   
   color: #FFFFFF;
   }
</style>
";
  switch($_GET['action'])
{   
 case "new":
 //--------------------------------------       
 //[New Registration]
 //--------------------------------------
 if(!isset($_POST['register']))
 {
       echo "
          <form action='register.php?action=new' method='POST'>      
    Username: <br />      
    <input type='text' name='username' class='register_box'>      
    <br />      
    Email: <br />      
    <input type='text' name='email' class='register_box'>      
    <br />      
    Password: <br />      
    <input type='password' name='password' class='register_box'>                                              
    <br />      
    <input type='submit' name='register' value='New Registration!' class='register_box'>      
    </form>      
    "; 
   
    }
 elseif(isset($_POST['register']))
 {
     $username = mysql_real_escape_string($_POST['username']);      
  $password = mysql_real_escape_string($_POST['password']);      
  $email = mysql_real_escape_string($_POST['email']);      
  $activation_code = generateCode(25);
  
  $userq = "SELECT username FROM user_system WHERE username = '$username' LIMIT 1";      
  $emailq = "SELECT email FROM user_system WHERE email = '$email' LIMIT 1";
  
  //put errors into an array      
  $errors = array();      
  if(empty($username))
  {         
  $errors[] = "The username field was blank! <br />";      
  }
  if(mysql_num_rows(mysql_query($userq)) > 0)      
  {         
  $errors[] = "The username given is already in use! Please try another one! <br />";      
  }
     if(empty($password))      
  {         
  $errors[] = "The password field was blank! <br />";      
  }      
  if(empty($email))      
  {         
  $errors[] = "The email field was blank! <br />";      
  }
  if(mysql_num_rows(mysql_query($emailq)) > 0)      
  {         
  $errors[] = "The email given is already in use! Please try another one! <br />";      
  }
  if(count($errors) > 0)
  {
    foreach($errors as $err)
     {
       echo $err;
     }
      }
   else
   {
   $sqlq = "INSERT INTO user_system (username, password, email, is_activated, activation_code)"; 
   $sqlq .= "VALUES ('$username', '".md5($password)."', '$email', '0', '$activation_code')";
   mysql_query($sqlq) or die(mysql_error());
  
   
   echo "$email"; <--- I echo it and it displays it..must be being passed down. 

   
   
     echo "Thanks for registering!          
   You will recieve an email shortly containing your validation code,          
   and a link to activate your account!";
   
           
        mail($email, "New Registration, www.sitename.ca", " <--Doesn't work
    Thanks for registering on SITE NAME.                  
    Here are your login details:                  
    
    Username: ".$username."         
    Password: ".$password."                  
    
    In order to login and gain full access, you must validate your account.                   
    
    Click here to validate:                  
    
    http://www.sitename.ca/register.php?action=activate&user=".$username."&code=".$activation_code." 
    
    Thanks!               
    
    [Webmaster]                  
    ");
            
   }
  }
 break;
  
  case "activate":
  //--------------------------------------
  //[Activate Account]
  //--------------------------------------
   if(isset($_GET['user']) && isset($_GET['code']))
 {
 $username = mysql_real_escape_string($_GET['user']);
 
 if(mysql_num_rows(mysql_query("SELECT id FROM user_system WHERE username = '$username'")) == 0)
 
      {         
   echo "That username is not in the database!";      
   }
   else      
   {
   $activate_query = "SELECT is_activated FROM user_system WHERE username = '$username'";          
   $is_already_activated = mysql_fetch_object(mysql_query($activate_query)) or die(mysql_error());
 
  if($is_already_activated->is_activated == 1)         
   {            
   echo "This user is already activated!";         
   }
  else         
      { 
         $code = mysql_real_escape_string($_GET['code']);
   $code_query = "SELECT activation_code FROM user_system WHERE username = '$username' LIMIT 1";             
   $check_code = mysql_fetch_object(mysql_query($code_query)) or die(mysql_error());
   
      if($code == $check_code->activation_code)
   {
   $update = "UPDATE user_system SET is_activated = '1' WHERE username = '$username'";
   mysql_query($update) or die(mysql_error());
   echo "User $username has been activated! Thanks! You may now login!";
   }
   else
   {
   echo "The activation code was wrong! Please try again!";
   }
    }
  }
  }
 else
 {
 echo "No ID or user given to activate!";
 }
 break;
} 
?>

 		
---------------------------------
Be smarter than spam. See how smart SpamGuard is at giving junk email the boot with the All-new Yahoo! Mail  


More information about the OCLUG mailing list