Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP

Does Anyone Have Few Minutes To Look At This php Mailer???

I Am Trying To Send A Test Email To Myself

Fatal error: Cannot redeclare class phpmailerException in C:\xampp\htdocs\WINCHER MUSIC PUBLISHING\maggiewincher.com\includes\phpmailer\class.phpmailer.php on line 2825

<?php include('includes/header.php'); ?>
<?php include('includes/style.php'); ?>


<?php ($_SERVER["REQUEST_METHOD"] = "POST"); ?>

 <?php
         foreach( $_POST as $value ){
            if( stripos($value,'Content-Type:') !== FALSE ){
    echo "There Was A Problem With The Information You Entered.";
            exit;
  }
}

require("includes/phpmailer/class.phpmailer.php");
$mail = new PHPMailer(true);

   ?>

<?php
/**
* Simple example script using PHPMailer with exceptions enabled
* @package phpmailer
* @version $Id$
*/

require("includes/phpmailer/class.phpmailer.php");

try {
  $mail = new PHPMailer(true); //New instance, with exceptions enabled


  $mail->IsSMTP();                           // tell the class to use SMTP
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->Port       = 25;                    // set the SMTP server port
  $mail->Host       = "mail.dreamhost.com"; // SMTP server
  $mail->Username   = "dreamhost.com";     // SMTP server username
  $mail->Password   = "b3GvEfR!";            // SMTP server password

  $mail->IsSendmail();  // tell the class to use Sendmail

  $mail->From       = "$email";
  $mail->FromName   = "$name";

  $to = "cemcorp@hotmail.com";

  $mail->AddAddress($to);

  $mail->Subject  = "First PHPMailer Message";

  $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
  $mail->WordWrap   = 80; // set word wrap

  $mail->MsgHTML($body);

  $mail->IsHTML(true); // send as HTML

  $mail->Send();
  echo 'Message has been sent.';
} catch (phpmailerException $e) {
  echo $e->errorMessage();
}
?>


  <div class="section page">  

<body>

  <div class="container clearfix">


  <p id="contact-thanks.php"></p><br>


   <fieldset>
      <legend align="center"><h2>Enjoy Your Day</h2></legend>

          <h1>Thanks for completing the form! I'll be in touch shortly. </h1>
    </fieldset>
         <br> 
          <br>
          <table>
             <tr style="display: none;">
               <th>
                  <label for="address">address</label>
               </th>
               <td>
                 <input type="text" Name="address" id="address">

               </td>  
           </tr>
         </table>

          <br>     

        <a href="index.php" class="btn"><em>Home</a></em><br>
         <br>


         <br>
     <?php include('includes/copyright.php'); ?>


   </div>

3 Answers

Thanks GIOVANNI, I Need To Get This Yo Work. :-)

Glad I could help, if you could accept my answer though that would be great.

Crystal, that error that you are getting is coming from the fact that you have

require("includes/phpmailer/class.phpmailer.php");

twice in your script.

There are two ways you can fix this,

  1. You can user require_once() instead of require() or include(). require_once() first checks to see if that file has already been loaded and if not, loads it. This is a crucial piece as it stops files from being loaded more than once and colliding, which is exactly what is happening here.
  2. If you decide that require_once() is not for you, you must make sure that you are never require()ing or include()ing any file more that once.

Cheers!

P.S. I noticed you are also declaring $mail twice, in this case, it's not doing any harm but it is something that could trip you up in the future.

Require Once It Is I Have A Question Though I Need To Send An Email and This Is The phpmailer/Contact-Thanks.php and The Praise Report Form That Needs To Be Sent. I Gon't Know How To Align The Two To Make It Work.

<?php include('includes/header.php'); ?>
<?php include('includes/style.php'); ?>


<?php ($_SERVER["REQUEST_METHOD"] = "POST"); ?>

 <?php
         foreach( $_POST as $value ){
            if( stripos($value,'Content-Type:') !== FALSE ){
    echo "There Was A Problem With The Information You Entered.";
            exit;
  }
}

 require_once("includes/phpmailer/class.phpmailer.php");
$mail = new PHPMailer(true);

$mail             = new PHPMailer();



$mail->IsSMTP(); // telling the class to use SMTP

   ?>

<?php
/**
* Simple example script using PHPMailer with exceptions enabled
* @package phpmailer
* @version $Id$
*/


try {
  $mail = new PHPMailer(true); //New instance, with exceptions enabled


  $mail->IsSMTP();                           // tell the class to use SMTP
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->Port       = 25;                    // set the SMTP server port
  $mail->Host       = "mail.dreamhost.com"; // SMTP server
  $mail->Username   = "dreamhost.com";     // SMTP server username
  $mail->Password   = "b3GvEfR!";            // SMTP server password

  $mail->IsSendmail();  // tell the class to use Sendmail

  $to = "cemcorp@hotmail.com";

  $mail->AddAddress($to);

  $mail->Subject  = "First PHPMailer Message";

  $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
  $mail->WordWrap   = 80; // set word wrap

 $mail->MsgHTML($body);

  $mail->IsHTML(true); // send as HTML

  $mail->Send();
  echo 'Message has been sent.';
} catch (phpmailerException $e) {
  echo $e->errorMessage();
}
?>


  <div class="section page">  

<body>

  <div class="container clearfix">


  <p id="contact-thanks.php"></p><br>


   <fieldset>
      <legend align="center"><h2>Enjoy Your Day</h2></legend>

          <h1>Thanks for completing the form! I'll be in touch shortly. </h1>
    </fieldset>
         <br> 
          <br>
          <table>
             <tr style="display: none;">
               <th>
                  <label for="address">address</label>
               </th>
               <td>
                 <input type="text" Name="address" id="address">

               </td>  
           </tr>
         </table>

          <br>     

        <a href="index.php" class="btn"><em>Home</a></em><br>
         <br>


         <br>
     <?php include('includes/copyright.php'); ?>


   </div>

This Is One Of The Forms That I Would Like To Send

<!DOCTYPE HTML>
<html lang="en">
 <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
      <meta itemprop="name" content="Dr. Maggie Wincher Music Ministries">
      <meta itemprop="description" content="The mission of Dr. Maggie Wincher Music Ministries is to aggressively fulfill the commission that Jesus Christ gave to His followers to go into the world and make disciples of all people. My purpose is to bring the lost to Jesus Christ and to build up and encourage those who are already believers.">
      <meta itemprop="image" content="http://www.http://maggiewincher.com/dr._maggie_wincher.png">
      <link rel="stylesheet" href="css/maggiesnormalize.css" type="text/css" media="screen">
      <link rel="stylesheet" href="css/maggiesgrid.css" type="text/css" media="screen">
      <link rel="stylesheet" href="css/maggiesstyle.css" type="text/css" media="screen">
      <link href='http://fonts.googleapis.com/css?family=Nunito:400,300,700' rel='stylesheet' type='text/css'>
      <link rel="shortcut icon" href="new.ico" >
      <meta name="viewport" content="width=device-width, initial-scale = 1.0">
      <script>document.cookie='resolution='+Math.max(screen.width,screen.height)+'; path=/';</script> 

 </head>

<?php include('includes/header.php'); ?>

<?php include('includes/style.php'); ?>


<body>

  <div class="section page">

  <div class="container clearfix">
   <form method="POST" action="contact-thanks.php" name="Music Ministry Request Form">  

    <p id="Prayer Request Form.php"></p><br>


         <p>Please fill out the form below:</p>

          <p>* Denotes Required Fields</p>
    <fieldset>
      <legend align="center"><h2>Prayer Request Form</h2></legend>


          <label for="FirstName*">First Name *</label><br>
          <input type="text" name="FirstName*" id="FirstName*"><br>
          <br>
          <label for="LastName*">Last Name *</label><br>
          <input type="text" name="LastName*" id="LastName*"><br>
          <br>
          <label for="AddressLine1*">Address Line 1 *</label><br>
          <input type="text" name="AddressLine1*" id="AddressLine1*"><br>
          <br>
          <label for="AddressLine2">Address Line 2</label><br>
          <input type="text" name="AddressLine2" id="AddressLine2"><br>
          <br>
          <label for="City*">City *</label><br>
          <input type="text" name="City*" id="City*"><br>
          <br>
          <label for="State*">State *</label><br>
          <input type="text" name="State*" id="State*"><br>
          <br>
          <label for="PostalCode*">Postal Code *</label><br>
          <input type="text" name="PostalCode*" id="PostalCode*"><br>
          <br>
          <select>
            <option>United States</option><br>
            <option>Afghanistan</option><br>
            <option>Albania</option><br>
            <option>Algeria</option><br>
            <option>Andorra</option><br>
            <option>Angola</option><br>
            <option>Antigua and Barbuda</option><br>
            <option>Argentina</option><br>
            <option>Aruba</option><br>
            <option>Australia</option><br>
            <option>Austria</option><br>
            <option>Azerbaijan</option><br>
            <option>Bahamas, The</option><br>
            <option>Bahrain</option><br>
            <option>Bangladesh</option><br>
            <option>Barbados</option><br>
            <option>Belarus</option><br>
            <option>Belgium</option><br>
            <option>Belize</option><br>
            <option>Benin</option><br>
            <option>Bhutan</option><br>
            <option>Bolivia</option><br>
            <option>Bosnia and Herzegovina</option><br>
            <option>Botswana</option><br>
            <option>Brazil</option><br>
            <option>Brunei </option><br>
            <option>Bulgaria</option><br>
            <option>Burkina Faso</option><br>
            <option>Burma</option><br>
            <option>Burundi</option><br>
            <option>Cambodia</option><br>
            <option>Cameroon</option><br>
            <option>Canada</option><br>
            <option>Cape Verde</option><br>
            <option>Chad</option><br>
            <option>Chile</option><br>
            <option>China</option><br>
            <option>Colombia</option><br>
            <option>Comoros</option><br>
            <option>Congo, Democratic Republic of the</option><br>
            <option>Costa Rica</option><br>
            <option>Cote d'Ivoire</option><br>
            <option>Croatia</option><br>
            <option>Cuba</option><br>
            <option>Curacao</option><br>
            <option>Cyprus</option><br>
            <option>Czech Republic</option><br>
            <option>Denmark</option><br>
            <option>Djibouti</option><br>
            <option>Dominica</option><br>
            <option>Dominican Republic</option><br>
            <option>East Timor (see Timor-Leste)</option><br>
            <option>Ecuador</option><br>
            <option>Egypt</option><br>
            <option>El Salvador</option><br>
            <option>Equatorial Guinea</option><br>
            <option>Eritrea</option><br>
            <option>Eritrea</option><br>
            <option>Estonia</option><br>
            <option>Ethiopia</option><br>
            <option>Fiji</option><br>
            <option>Finland</option><br>
            <option>France</option><br>
            <option>Gabon</option><br>
            <option>Gambia, The</option><br>
            <option>Georgia</option><br>
            <option>Germany</option><br>
            <option>Ghana</option><br>
            <option>Greece</option><br>
            <option>Grenada</option><br>
            <option>Guatemala</option><br>
            <option>Guinea</option><br>
            <option>Guinea-Bissau</option><br>
            <option>Guyana</option><br>
            <option>Haiti</option><br>
            <option>Holy See</option><br>
            <option>Honduras</option><br>
            <option>Hong Kong</option><br>
            <option>Hungary</option><br>
            <option>Iceland</option><br>
            <option>India</option><br>
            <option>Indonesia</option><br>
            <option>Iran</option><br>
            <option>Iraq</option><br>
            <option>Ireland</option><br>
            <option>Israel</option><br>
            <option>Italy</option><br>
            <option>Jamaica</option><br>
            <option>Japan</option><br>
            <option>Jordan</option><br>
            <option>Kazakhstan</option><br>
            <option>Kenya</option><br>
            <option>Kiribati</option><br>
            <option>Korea, North</option><br>
            <option>Korea, South</option><br>
            <option>Kosovo</option><br>
            <option>Kuwait</option><br>
            <option>Kyrgyzstan</option><br>
            <option>Laos</option><br>
            <option>Latvia</option><br>
            <option>Lebanon</option><br>
            <option>Lesotho</option><br>
            <option>Liberia</option><br>
            <option>Libya</option><br>
            <option>Liechtenstein</option><br>
            <option>Lithuania</option><br>
            <option>Luxembourg</option><br>
            <option>Macau</option><br>
            <option>Macedonia</option><br>
            <option>Madagascar</option><br>
            <option>Malawi</option><br>
            <option>Malaysia</option><br>
            <option>Maldives</option><br>
            <option>Mali</option><br>
            <option>Malta</option><br>
            <option>Marshall Islands</option><br>
            <option>Mauritania</option><br>
            <option>Mauritius</option><br>
            <option>Mexico</option><br>
            <option>Micronesia</option><br>
            <option>Moldova</option><br>
            <option>Monaco</option><br>
            <option>Mongolia</option><br>
            <option>Montenegro</option><br>
            <option>Morocco</option><br>
            <option>Mozambique</option><br>
            <option>Namibia</option><br>
            <option>Nauru</option><br>
            <option>Nepal</option><br>
            <option>Netherlands</option><br>
            <option>Netherlands Antilles</option><br>
            <option>New Zealand</option><br>
            <option>Nicaragua</option><br>
            <option>Niger</option><br>
            <option>Nigeria</option><br>
            <option>North Korea</option><br>
            <option>Norway</option><br>
            <option>Oman</option><br>
            <option>Pakistan</option><br>
            <option>Palau</option><br>
            <option>Palestinian Territories</option><br>
            <option>Panama</option><br>
            <option>Papua New Guinea</option><br>
            <option>Paraguay</option><br>
            <option>Peru</option><br>
            <option>Philippines</option><br>
            <option>Poland</option><br>
            <option>Portugal</option><br>
            <option>Qatar</option><br>
            <option>Romania</option><br>
            <option>Russia</option><br>
            <option>Rwanda</option><br>
            <option>Saint Kitts and Nevis</option><br>
            <option>Saint Lucia</option><br>
            <option>Saint Vincent and the Grenadines</option><br>
            <option>Samoa</option><br>
            <option>San Marino</option><br>
            <option>Sao Tome and Principe</option><br>
            <option>Saudi Arabia</option><br>
            <option>Senegal</option><br>
            <option>Serbia</option><br>
            <option>Seychelles</option><br>
            <option>Sierra Leone</option><br>
            <option>Singapore</option><br>
            <option>Sint Maarten</option><br>
            <option>Slovakia</option><br>
            <option>Slovenia</option><br>
            <option>Solomon Islands</option><br>
            <option>Somalia</option><br>
            <option>South Africa</option><br>
            <option>South Sudan</option><br>
            <option>Spain</option><br>
            <option>Sri Lanka</option><br>
            <option>Sudan</option><br>
            <option>Suriname</option><br>
            <option>Swaziland</option><br>
            <option>Sweden</option><br>
            <option>Switzerland</option><br>
            <option>Syria</option><br>
            <option>Taiwan</option><br>
            <option>Tajikistan</option><br>
            <option>Tanzania</option><br>
            <option>Thailand</option><br>
            <option>Timor-Leste</option><br>
            <option>Togo</option><br>
            <option>Trinidad and Tobago</option><br>
            <option>Tunisia</option><br>
            <option>Turkey</option><br>
            <option>Turkmenistan</option><br>
            <option>Tuvalu</option><br>
            <option>Uganda</option><br>
            <option>Ukraine</option><br>
            <option>United Arab Emirates</option><br>
            <option>United Kingdom</option><br>
            <option>Uruguay</option><br>
            <option>Uzbekistan</option><br>
            <option>Vanuatu</option><br>
            <option>Venezuela</option><br>
            <option>Vietnam</option><br>
            <option>Yemen</option><br>
            <option>Zambia</option><br>
            <option>Zimbabwe</option><br>
         </select><br>
         <br>        
          <label for="Phone*">Phone *</label><br>
          <input type="text" name="Phone*" id="Phone*"><br>
          <br>
          <label for="Fax">Fax</label><br>
          <input type="text" name="Fax" id="Fax"><br>
          <br>
          <label for="Email*">Email *</label><br>
          <input type="text" name="Email*" id="Email*"><br>
          <br>
          <label for="YourTitle">Your Title</label><br>
          <input type="text" name="YourTitle" id="YourTitle"><br>
          <br>
          <label for="PraiseReport">Prayer Request</label><br>
          <textarea name="PraiseReport" rows="3" cols="30"></textarea><br>

  </fieldset>

          <br>
       <input type="submit" value="Send"><br>

          <br> 
          <br>
          <br> 

     <a href="index.php" class="btn"><em>Home</a></em><br>
         <br>
          <br>


     <?php include('includes/copyright.php'); ?> 

  </div>

 <div id="copyright" class="grid_12">
           <p>&copy;<?php echo date("Y"); ?> Wincher Music Publishing Company. All Rights Reserved.</p>
       </div>   
    </div>
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
   <script>
    $( function() {
      causeRepaintsOn= $("h1, h2, h3, a, p");
      $(window).resize(function) {
        causeRepaintsOn.css("z-index, 1");
      });
    });
   </script>

</body>
</html>

After coming across another question of yours about this. What you are suffering from is the fact that in your script $to and $body have no values assigned to them. Looking at your form, I can tell you that before you actually use $to you want to assign the email that was sent from the form. Since you are using post (good) your will want to do this

$to = $_POST['Email'];

somewhere before this line

$mail->AddAddress($to);

for $body, you need to assign what the email itself is going to say. Since you are sending the email as html you can use any properly formatted html like so

$body = "<b>Check out this awesome email</b>";

again this needs to be declared before you actually use the $body variable

That should take care of the errors coming from these files.