Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

David Powers Lesson08 forgotten.php problem

Explorer ,
Mar 28, 2013 Mar 28, 2013

I have a strange problem when running forgotten.php. The program works alright initially with the setting of mail_connector.php as below. I managed to send and received email. Everything works fine intially. After sometime, I found problem running the same program again. This time it generates error message of 'Notice: Underfined index: calvin_cccc@yahoo.com in c:\vhosts\phpcs5\lesson8\scripts\request_reset.php on line 25' and also message 'No connection could be made because the target machine actively refused it.'

Any idea why ?

Mail_Connector.php

<?php

$mailhost = 'mail.agri-organica.com';

$mailconfig = array('auth'     => 'login',

                    'username' => 'calvin@agri-organica.com',

                                                  'password' => 'password');

$transport = new Zend_Mail_Transport_Smtp($mailhost, $mailconfig);

Zend_Mail::setDefaultTransport($transport);

TOPICS
Server side applications
798
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

LEGEND , Mar 28, 2013 Mar 28, 2013

If it works once, it should work all the time unless there has been a change to the code or your mail authentication settings.

The error message says that the problem is on line 25 of request_reset.php, not Mail_Connector.php. The example code in the book on that line looks like this:

$mail->setFrom('webmaster@example.com', 'DW CS5 with PHP');

That sets the From header in the email. To prevent spammers from using the mail server as a spam relay, it's common to reject mail that doesn't come from an

...
Translate
LEGEND ,
Mar 28, 2013 Mar 28, 2013

If it works once, it should work all the time unless there has been a change to the code or your mail authentication settings.

The error message says that the problem is on line 25 of request_reset.php, not Mail_Connector.php. The example code in the book on that line looks like this:

$mail->setFrom('webmaster@example.com', 'DW CS5 with PHP');

That sets the From header in the email. To prevent spammers from using the mail server as a spam relay, it's common to reject mail that doesn't come from an authorized source. You're logging into the agri-organica.com SMTP server, but using a yahoo.com email address in the From header. I suspect that the server is rejecting the mail because the From header doesn't use an agri-organica.com address. Change the address in line 25 of request_reset.php to an agri-organica.com address, and it will probably work.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Mar 28, 2013 Mar 28, 2013

I changed the From header using agri-organica.com address and send to yahoo address. This time it shows:

'No connection could be made because the target machine actively refused it.'

Request Received

An email has been sent to your registered address with instructions for resetting your password.

Request_reset.php

---------------------

<?php

$errors = FALSE;

$result = FALSE;

if ($_POST) {

  require_once('library.php');

  require_once('mail_connector.php');

  try {

          $val = new Zend_Validate_EmailAddress();

          if (!$val->isValid($_POST['email'])) {

            $errors = TRUE;

          }

          if (!$errors) {

            $sql = $dbRead->quoteInto('SELECT user_id, first_name, family_name, email FROM users WHERE email = ?', $_POST['email']);

            $result = $dbRead->fetchRow($sql);

            if (!$result) {

                    $errors = TRUE;

            } else {

        // update database and send mail

                    $token = md5(uniqid(mt_rand(), TRUE));

                    $data = array('token' => $token);

                    $where = $dbWrite->quoteInto('email = ?', $_POST['email']);

                    $dbWrite->update('users', $data, "user_id = {$result['user_id']}");

            }

            $mail = new Zend_Mail('UTF-8');

            $mail->addTo($result['email'], "{$result['first_name']} {$result['family_name']}");

            $mail->setSubject('Instructions for resetting your password');

            $mail->setFrom('calvin@agri-organica.com', 'Calvin');

            $link = "http://phpcs5/lesson8/reset.php?id={$result['user_id']}&token=$token";

            $message = "Use the following link to reset your password. This link can be used once only. $link";

            $mail->setBodyText($message, 'UTF-8');

            $mail->send();

          }

  } catch (Exception $e) {

          echo $e->getMessage();

  }

}

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Mar 28, 2013 Mar 28, 2013
LATEST

Good new ! After I re-entered the setting in mail_connector.php and request_rest.php, everything is working fine now.

Thank You !

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines