2013-02-25 6 views
2

Почему мой PHP код рассылки всегда дают:ошибка синтаксиса, неожиданный 'Â Â Â Â' (T_STRING)

синтаксическую ошибку, неожиданный 'Â Â Â Â' (T_STRING) в C: \ XAMPP \ HTDOCS \ GSP \ members.php в строке 4

<?php 
if(!isset($_POST['email'])) { 
      
    $email_to = '[email protected]'; //this is line 4 
    $email_subject = "GSP Rent Order"; 
      
      
    function died($error) { 
        // your error code can go here 
        echo "We are very sorry, but there were error(s) found with the form you submitted. "; 
        echo "These errors appear below.<br /><br />"; 
        echo $error."<br /><br />"; 
        echo "Please go back and fix these errors.<br /><br />"; 
        die(); 
    } 
      
    // validation expected data exists 
    if(!isset($_POST['name']) || 
        !isset($_POST['email']) || 
        !isset($_POST['unit']) || 
        !isset($_POST['startdate']) || 
     !isset($_POST['enddate']) || 
        !isset($_POST['telephone']) || 
     !isset($_POST['rname']) || 
     !isset($_POST['city']) || 
     !isset($_POST['adress'])) { 
        died('We are sorry, but there appears to be a problem with the form you submitted.');       
    } 
      
    $name = $_POST['name']; 
    $email_from = $_POST['email']; 
    $unit = $_POST['unit']; 
    $startdate = $_POST['startdate']; 
    $enddate = $_POST['enddate']; 
    $telephone = $_POST['telephone']; 
    $rname = $_POST['rname']; 
    $city = $_POST['city']; 
    $adress = $_POST['adress']; 
      
    $error_message = ""; 
    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
  if(!preg_match($email_exp,$email_from)) { 
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
  } 
    $string_exp = "/^[A-Za-z .'-]+$/"; 
    $phone_exp = "/^[1-9][0-9]{0,15}$/"; 
  if(!preg_match($string_exp,$name)) { 
    $error_message .= 'The Name you entered does not appear to be valid.<br />'; 
  } 
  if(!preg_match($string_exp,$rname)) { 
    $error_message .= 'The Recipient Name you entered does not appear to be valid.<br />'; 
  } 
    if(!preg_match($string_exp,$city)) { 
    $error_message .= 'The City you entered does not appear to be valid.<br />'; 
  } 
    if(!preg_match($phone_exp,$telephone)) { 
    $error_message .= 'The Phone Number you entered does not appear to be valid.<br />'; 
  } 
  if(strlen($adress) < 2) { 
    $error_message .= 'The Adress you entered do not appear to be valid.<br />'; 
  } 
    list($dd,$mm,$yyyy) = explode('/',$startdate); 
    if (!checkdate($mm,$dd,$yyyy)) { 
     $error_message .= 'The Start Date you entered do not appear to be valid.<br />'; 
    } 
    list($dd,$mm,$yyyy) = explode('/',$enddate); 
    if (!checkdate($mm,$dd,$yyyy)) { 
     $error_message .= 'The End Date you entered do not appear to be valid.<br />'; 
    } 
  if(strlen($error_message) > 0) { 
    died($error_message); 
  } 
    $email_message = "Form details below.\n\n"; 
      
    function clean_string($string) { 
      $bad = array("content-type","bcc:","to:","cc:","href"); 
      return str_replace($bad,"",$string); 
    } 
      
    $email_message .= "Name: ".clean_string($name)."\n"; 
    $email_message .= "Email: ".clean_string($email_from)."\n"; 
    $email_message .= "Unit: ".clean_string($unit)."\n"; 
    $email_message .= "Start Date: ".clean_string($startdate)."\n"; 
    $email_message .= "End Date: ".clean_string($enddate)."\n"; 
    $email_message .= "Telephone Number: ".clean_string($telephone)."\n"; 
    $email_message .= "Recipient Name: ".clean_string($rname)."\n"; 
    $email_message .= "Recipient City: ".clean_string($city)."\n"; 
    $email_message .= "Recipient Adress: ".clean_string($adress)."\n"; 
      
      
// create email headers 
$headers = 'From: '.$email_from."\r\n". 
'Reply-To: '.$email_from."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
@mail($email_to, $email_subject, $email_message, $headers);  

echo "Thank you for contacting us. We will be in touch with you very soon." 
} 
?> 

Почему это всегда продолжать говорить эту ошибку?

+0

Какую кодировку вы сохранили в своем документе? –

+2

Иногда случается, что вы случайно спасаете экзотического неприглядного персонажа, не замечая его. Попробуйте действительно удалить эту строку и переписать ее. – arkascha

+0

И какой редактор? –

ответ

6

Ваша проблема заключается в том, что файл PHP был сохранен с экзотическими символами пробела - то есть не стандартными пробелами, а некоторыми другими символами, которые отображаются как пробелы (или даже вообще не показаны), но не поддаются анализу PHP.

Удалите все символы пробела в строках 3 и 4, повторно введите их и сохраните файл. (это все пробелы, включая линии и пробелы между словами)

Это должно решить проблему.

Если после этого вы все равно получите сообщение об ошибке, но на другой строке, вам также нужно будет повторить процесс для этой строки.

+0

спасибо, моя проблема решена ребятами –

+2

Это тоже решает мою проблему, просто чтобы упомянуть, что у меня возникла эта проблема при копировании кода из Интернета, от SyntaxHighlighter до Sublime Text 2. – jOpacic

0

Я вижу некоторые ошибки в коде:

Попробуйте заменить:

$email_to = '[email protected]'; 

С:

$email_to = "[email protected]"; 

И в этой строке:

echo "Thank you for contacting us. We will be in touch with you very soon." 

Ваш пропускаете a ";", поэтому зафиксировано:

echo "Thank you for contacting us. We will be in touch with you very soon."; 

PS: Попробуйте заменить все одиночные кавычки двойные кавычки ('' с "") Я все ваши строки вары;)

Saludos.

+0

Почему двойные кавычки лучше, чем одиночные кавычки? – Niko

+0

Лучше, потому что таким образом ваш код более читабельен, и таким образом у вас нет сочетания вещей ..... я всегда использую один или несколько способов, но никогда не смешиваю вещи ... для меня эти миксы = трудно найти ошибки в будущем;) – Hackerman

+2

@RobertRozas - смешанные стили цитат совершенно законны и прекрасно читаемы. И он не имеет ничего общего с ответом на этот вопрос. – SDC