Php 意外的T\u n\u分隔符

Php 意外的T\u n\u分隔符,php,Php,我得到以下错误: 分析错误:语法错误,意外的T_NS_SEPARATORon$headers='MIME版本:1.0'\r\n 在下面的代码块中,似乎无法理解为什么没有未关闭的引号 <?php include("something.php"); $somepage="somepage.html"; $apple=$_POST["apple"]; $banana=$_POST["banana"]; $orange=$_POST["orange"]; $emai

我得到以下错误:

分析错误:语法错误,意外的T_NS_SEPARATORon$headers='MIME版本: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>.";


?>.

有人知道为什么会出现这种情况吗?

尽量不要将两个字符串指示符“和”混在一起。将周围的字符串分隔符\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部分错误地关闭了该字符串。

在连接字符串时混合使用单引号和双引号没有问题,并且完全有效,特别是在编写特殊字符时,如\r,使用单引号时无法翻译。奇怪的是,当我尝试使用您的编码建议时,我在$headers=MIME版本:1.0\r\n;上得到了意外的T\u字符串;,在更改字符串运算符时,\r\n我收到了相同的错误,块后面的回音上出现了意外的T_字符串。@您不是在看问题下面的注释吗?@DanielAndre:有效添加。然而,它确实揭示了一个可能的事实,即之前的某个地方有一个错误的闭合字符串。编辑后,我的注释似乎更不合适,因为原始注释只有第一段,而该段实际上仍然不正确-将双引号改为单引号是错误的答案。该注释的其他部分是很好的建议,希望您找到了错误。这些代码不足以重现该错误。这是其他原因造成的;显示完整代码。我可以使用$email=email@example.com; @Fred ii-我已经添加了大部分内容。您的SQL定义缺少一个结束引用。这个问题是关于一个打字错误,应该关闭。@Sorin这似乎是罪魁祸首,谢谢!