2012-04-28 3 views
-2

분류 광고 웹 사이트에서 문의 양식을 만들었습니다. 내가 업 로더 이메일을 얻기 위해 다음 함수를 사용PHP 함수가 다른 함수 안에 있습니까?

public function uploadermail() 
{ 
    return $this->User_id?$this->User->email:lang('anonymous'); 
} 

그것은 잘 작동하고 내가 에코를 사용하여 결과를 얻을 : 메일을 보낼

<?php echo $image->uploadermail(); ?> 

가 그럼 난 함수를 사용합니다 :

public static function sendmail_anon() 
{ 
    $form = new Form('sendmail_anon'); 

    $form->field('email', 'text', array 
    (
     'valid_email' => true 
    )); 

    $form->field('message', 'textarea', array 
    (
     'min_length' => 25 
    )); 

    if($data = $form->validate()) 
    { 
     $envoi = array 
     (
      'message' => $data['message'], 
      'email' => $data['email'] 
     ); 

     mail($data['email'], lang('account_details'), lang('email_contact', $envoi), 'From: [email protected]'.$_SERVER['HTTP_HOST']); 
    } 

    return $form; 
} 

문제는 양식 필드에서 전자 메일로 메일을 보내는 것입니다. $ data [ 'email']을 바꾸고 대신 uploadermail을 삽입하고 싶습니다.

mail($image->uploadermail(), lang('account_det..... 

을 그리고 그것은 다음과 같은 오류 반환 : 나는 시도

Fatal error: Call to a member function uploadermail() on a non-object 

가 할 내가 정확히 어떻게 writte해야 가능을? 어떻게 정확하게 브라우저에 $의 uploadermail을 포함 확인할 수 있습니다,

mail($uploadermail,.... 

을 그리고 오류를 반환하지 않지만, 어떤 메일을받지 않았다

나는 시도?

+0

실제로 메일에 연결되어있는 회원과 광고를 게시 한 회원 중 다른 회원 (uploadermail)이 연결되어 있지 않으며 세션이없는 메일이 2 개 있습니다. 그리고 필요한 메일은 데이터베이스에 정적 인 메일입니다.그것은 간단해야하지만 난 CodeIgniter를 함께 혼란 스러워요 :/ – PhilMarc

답변

2

즉, $image은 클래스 인스턴스가 아닙니다. 따라서 $image->uploadermail()을 할 수 없습니다.

당신은 수행하여 그것을 확인할 수 있습니다 var_dump($image);

을 전체 코드를 게시 한 후 난 당신이 public static function sendmail_member()에서 해당 기능에 액세스 참조 :

mail($image?$image->uploadermail():$data['email'], lang('account_details'), lang('email_contact', $envoi), 'From: [email protected]'.$_SERVER['HTTP_HOST']); 

그러나 $image는 점에서 (/ 인스턴스화) 선언되지 않습니다 범위. 추가 조사에서 나는 접근하려고하는 올바른 클래스에 uploadermail이라는 메서드가 있다는 것을 알았습니다. 당신은 정말 static의를 사용 방지하기 위해 시도해야

self::uploadermail() 

또는

$this->uploadermail() 

PS

:

그래서 당신이해야 그 방법에 액세스 할 수 있습니다. 정적 인 내용은 기본적으로 globaltightly couple you code이고 은 SOLID programming이 아닙니다.

+0

나는 위해서 var_dump를했고, 나는 – PhilMarc

+0

없음 당신이 무슨 뜻인지 확실히, 나는 PHP는 초보자 해요 uploadermail을 포함하여 데이터의 부하를 얻었다. 당신은 여기 위해서 var_dump의 결과를 확인할 수 있습니다 http://www.veloccasion.net/Fc/ – PhilMarc

+0

감사합니다! http://pastebin.com/ydiMQ8zR – PhilMarc

0

사용하기 전에 개체를 $ image에 대한 인스턴스로 만들어야합니다! 예 :

+0

예, 이미'$ 이미지 = 새로운 이미지했다), 그리고 시간 내 주셔서 감사합니다, 나는 조금 배웠다 ($ 아이디)' – PhilMarc

+0

이 무엇을 : 메일을 ($ 이미지를 $ 화상 -> uploadermail() : $ 데이터 [ '이메일', ... –

+0

없음 오류가 있지만 메일 – PhilMarc

관련 문제