意外的T_NS_SEPARATOR

时间:2014-09-09 07:58:04

标签: php

我收到以下错误:

  

解析错误:语法错误,意外T_NS_SEPARATOR on $ headers ='MIME-Version:1.0'。为 “\ r \ n” 个;

在下面的块中,似乎无法弄清楚为什么看到没有未公开的报价。

<?php 

  include("something.php"); 

  $somepage="somepage.html";
  $apple=$_POST["apple"];
  $banana=$_POST["banana"];
  $orange=$_POST["orange"];
  $email=$_POST["email"];

  $connection=$conn; #conn is from something.php

  define("someSQL","INSERT INTO SOMETABLE (APPLE, BANANA, ORANGE, EMAIL) VALUES ('$apple', '$banana', '$orange', '$email'); 

  $conninfo=oci_parse($connection,bbsSQL);
  oci_execute($conninfo);

  $to      = $email;
  $subject = 'Subject';
  $message = '<html><body>Hello</body></html>';
  $headers  = "MIME-Version: 1.0\r\n";
  $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  $headers .= 'From: Somewhere' . "\r\n";

  mail($to, $subject, $message, $headers);

  oci_free_statement($personinfo);
  oci_close($personcon);

  echo "An email has been sent.<br>";
  echo "Return to the <a href=$somepage>home page</a>.";


?>.

可能有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:-1)

尽量不要混合使用两个字符串指示符('")。将"\r\n"周围的字符串分隔符更改为单引号(撇号)字符 - 这应该可以解决问题。

此外,在这种情况下,关闭字符串文字然后以这种方式将换行符附加到它上面没有任何意义,你可以选择:

$headers  = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

<强> **修改:

根据您的编辑,以下行缺少一些字符:

define("someSQL","INSERT INTO SOMETABLE (APPLE, BANANA, ORANGE, EMAIL) VALUES ('$apple', '$banana', '$orange', '$email'); 

在结束分号之前,您缺少")。这基本上意味着PHP将该行之后的所有内容作为字符串的一部分,但是在\r\n部分附近的双引号错误地关闭了该字符串。