2014-11-21 4 views
2

초급 수준의 PHP에서이 비디오 자습서를 따라 코딩 할 때 문제가 발생했습니다. 나는 그것을 위해 일하는 데 문제가 있습니다. 이 오류는 브라우저에서 프로젝트를로드하려고 할 때 문제가 mailprocess.php 파일의 내 코드에서 44 행에 있음을 나타냅니다. 이 오류가 속한 코드의 44 번째 줄은 if 문의 시작 부분입니다. if (isset($$item) && !$empty($$item))치명적 오류 : 함수 이름은 문자열이어야합니다.

그러나 비디오 자습서를 진행하는 강사가 똑같은 일을 할 때도 똑같이 작동합니다. 그래서 나는 왜 그것이 나를 위해 일하지 않는지 이해하지 못한다. 또한 코드 블록 형식 도구에서 형식을 올바르게 지정하려면 내 사본/붙여 넣은 코드를 가져 오는 데 문제가 있습니다. 따라서 새 항목으로 완벽하게 정렬되지 않았 으면 참아주십시오. 배우고 나는 PHP를 찾는 것이 다소 어렵다. 이것이 나를 위해 일하게하는 어떤 도움도 크게 감사 할 것입니다. 여기 enter image description here

내 mailprocess.php 파일 및 코드 : : 여기

<?php 
     $suspect = false; 
     $pattern = '/Content-Type:|Bcc:|Cc:/i'; //Perl compatible reg-x to filter  
     $empty = false; 

     function isSupect($val, $pattern, &$suspect) { 
      if (is_array($val)) { 
      foreach ($val as $item) { 
       isSuspect($item, $pattern, $suspect); 
      } 
      }else { 
      if (preg_match($pattern, $val)) { 
      $suspect = true; 
      } 
     } 
     isSuspect($_POST, $pattern, $suspect); 
     } 



     if (!$suspect) { 
     foreach ($_POST as $key => $value) { 
      $temp = is_array($value) ? $value : trim($value); //removes white space 
      if (empty($temp) && in_array($key, $required)) { 
      $missing[] = $key; 
       $$key = ''; 
      } elseif (in_array($key, $expected)) { 
     $$key = $temp; 
     } 
     } 
    } 

    if (!$suspect && !$empty['$email']) { 
     $validemail = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); 
      if ($validemail) { 
       $headers .= "\r\nReply-to: $validemail"; 
      } else { 
       $errors['email'] = true; 
     } 
     } 

    if (!$suspect && !$missing && !$errors){ 
     $message = ' '; 
     foreach ($expected as $item) { 
      if (isset($$item) && !$empty($$item)){ 
       $val = $$item; 
      } else { 
       $val = 'Not selected'; 
      } 
      if (is_array($val)){ 
       $val = implode(', ', $val); 
      } 
     $item = str_replace(array('_', '-'), '', $item); 
     $message .= ucfirst($item) . ": $val\r\n\r\n"; 
     } 
     $message = wordwrap($message, 70); 
     $mailSent = true; 
    } 

그리고 강사가 자신의 코드가 무엇을 여기

내가 점점 오전 오류의 브라우저 출력 : enter image description here

답변

0
if (isset($$item) && !$empty($$item)) 

if (isset($$item) && !empty($$item))
에게 빈! $()에 그냥 오타

if (isset($$item) && !empty($$item)) 

해야한다.

+0

고마워요, 그게 수정되었습니다 :) –

+0

당신은 환영합니다. – matwr

-1

이것은 단지 오타입니다. 여분의 달러 기호가 있습니다.
! 뒤에 달러 기호 $ 만 제거하면됩니다.
변경이
if (isset($$item) && !$empty($$item))

+1

아니요. 이것은 가변 변수 이름을 갖습니다. –

+0

죄송합니다 Tourmash, 강사가 코드에서 가지고있는 것입니다 (마지막 이미지 참조). 그리고 그가 그것을 가지고있는 이유는 그가 그것을 "가변 변수"로 만든 이유입니다. –

+0

죄송 합니다만,이 PHP 기능을 알지 못했습니다. 이제 대답이 도움이됩니다 :) – Toumash

관련 문제