Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Как на PHP перейти с процедурного подхода на ООП?


Автор: vlad275 1.3.2011, 21:05
Был такой код в статье CMS Drupal:

Код

<?
$orgname=htmlspecialchars($_POST['orgname']);
$from=htmlspecialchars($_POST['from']);
$email=htmlspecialchars($_POST['email']);
$phones=htmlspecialchars($_POST['phones']);
$body=htmlspecialchars($_POST['body']);
$code=htmlspecialchars($_POST['code']);
$b=htmlspecialchars($_POST['b']);

/* Для отправки HTML-почты вы можете установить шапку Content-type. */
$headers= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";

/* дополнительные шапки */
$headers .= "From: blayd2007 <[email protected]>\r\n";
$headers .= "Cc: [email protected]\r\n";
$headers .= "Bcc: [email protected]\r\n";

if (isset($code) && $code=='9' && $b<>"")
{
  mail("[email protected]", "Заказ", "<hr />
orgname:$orgname <br />
from:$from <br />
email:$email <br />
phones:$phones <br />
body:$body <br />
code:$code <br />
b:$b <br />", $headers);

  mail("[email protected]", "Заказ", "<hr />
orgname:$orgname <br />
from:$from <br />
email:$email <br />
phones:$phones <br />
body:$body <br />
code:$code <br />
b:$b <br />", $headers);

echo "<script language='javaScript'>
alert('Отослано');</script>";

header('Location: http://boromax.net23.net/');
}
 
?> 


Попробовал изменить таким образом:

Код


<?
class my_send {   

  function may_send_email()
  {    
      $orgname=htmlspecialchars($_POST['orgname']);
      $from=htmlspecialchars($_POST['from']);
      $email=htmlspecialchars($_POST['email']);
      $phones=htmlspecialchars($_POST['phones']);
      $body=htmlspecialchars($_POST['body']);
      $code=htmlspecialchars($_POST['code']);
      $b=htmlspecialchars($_POST['b']);

      /* Для отправки HTML-почты вы можете установить шапку Content-type. */
      $headers= "MIME-Version: 1.0\r\n";
      $headers .= "Content-type: text/html; charset=utf-8\r\n";

      /* дополнительные шапки */
      $headers .= "From: blayd2007 <[email protected]>\r\n";
      $headers .= "Cc: [email protected]\r\n";
      $headers .= "Bcc: [email protected]\r\n";

      if (isset($code) && $code=='9' && $b<>""){
        mail("[email protected]", "Заказ", "<hr />
    orgname:$orgname <br /> 
    from:$from <br /> 
    email:$email <br /> 
    phones:$phones <br /> 
    body:$body <br /> 
    code:$code <br /> 
    b:$b <br />", $headers); 

        mail("[email protected]", "Заказ", "<hr />
    orgname:$orgname <br /> 
    from:$from <br /> 
    email:$email <br /> 
    phones:$phones <br /> 
    body:$body <br /> 
    code:$code <br /> 
    b:$b <br />", $headers); 

        echo "<script language='javaScript'>
        alert('Отослано');</script>";
        header('Location: http://boromax.net23.net/'); 
      
      }
  }
}
$mysend = new my_send; 
$mysend->my_send_email(); 
 
?> 



PHP Error Message:
Цитата

Fatal error: Call to undefined method my_send::my_send_email() in /home/a5993328/public_html/includes/common.inc(1497) : eval()'d code on line 73


Ссылка:
http://boromax.net23.net/

Что делать? :-(

Автор: ayax2005 1.3.2011, 23:21
may_send_email и my_send_email - чувствуете разницу?

Автор: vlad275 1.3.2011, 23:43
О как бывает! А как отлаживать в таком случае? 
Пока не понял прелестей ООП, наверное для этого нужен крупный проект

Автор: ayax2005 1.3.2011, 23:57
Нет, не нужен крупный проект.
Что тут отлаживать? Вам пришёл вполне понятный варнинг - неизвестный метод.
Что понять все прелести ООП достаточно понять 3 его основные постулата. Правда.

Автор: vlad275 2.3.2011, 00:09
Спс

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)