奇怪的WAMP本地主机错误

问题描述:

我正在尝试制作一个表单,将信息发送给我。这是我的代码。奇怪的WAMP本地主机错误

PHP:

$to = "[email protected]"; 
$subject = "Comanda de Magneti"; 

$name = $_POST["nume"] . $_POST["prenume"]; 
$email = $_POST["email"]; 
$phone = $_POST["telefon"]; 
$adress = $_POST["adresa"]; 

$message = <<<EMAIL 

Comanda de Magneti de la $name 

Adresa de E-mail este $email  

Numarul de telefon este $phone 

Adresa este $adress 

EMAIL; 

$header ="$email"; 

if($_POST){ 

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

$feedback = "Multumesc pentru comanda!" 
}  

HTML

<div class="form-group"> 
     <form style="font-size: 1.25em; margin-left: 20px;" method="post" action="#"> 
      <label for="nume">Nume<span style="color: red;">*</span></label> <input name="nume" id="nume" class="form-control" type="text" placeholder="Nume" title="nume"> 
      <label for="prenume">Prenume<span style="color: red;">*</span></label> <input name="prenume" id="prenume" class="form-control" type="text" placeholder="Prenume" title="prenume"> 
      <label for="email">E-Mail</label><span style="color: red;">*</span><input name="email" id="email" class="form-control" type="email" placeholder="E-Mail" title="email"> 
      <label for="telefon">Numar Telefon</label><input name="telefon" id="telefon" class="form-control" type="number" placeholder="Numar Telefon" title="telefon"> 
      <label for="adresa">Adresa</label><span style="color: red;">*</span><input name="adresa" id="adresa" class="form-control" type="text" placeholder="Strada/Numar/Localitate/Judet" title="adresa"> <br /> 
      <input name="submit" class="btn-default" type="submit" value="Comanda!"></input> 
     </form> 
     <p id="feedback"><?php echo $feedback ?> </p> 
</div> 

我得到的错误是:“解析错误:语法错误,在C意想不到的 '}':\ wamp64 \ WWW \测试\ 30线上的comanda-magneti.php“

这很奇怪,因为我非常肯定如果没有大括号就不能正确运行代码。

+1

丢失';'在大括号前 –

+0

[PHP:“Notice:Undefined variable”和“Notice:Undefined index”]可能重复(http://*.com/questions/4261133/php-notice-undefined-变量和通知未定义索引) –

+0

^,在修复缺少的分号时给定OP的新错误(在下面给出的答案中)。这个问题是由2个帐户脱离主题,甚至在修复之前。 –

更改此:

$feedback = "Multumesc pentru comanda!" 

$feedback = "Multumesc pentru comanda!"; 

你忘了加分号。分号是行为在PHP中的行终止符,当然,您可以跳过它的最后一行。但在这种情况下,您在此之后关闭花括号。

如果您正在检查下面的内容并访问上面的POST属性,请将if($ _ POST)移动到顶端。

因此,像:

if(isset($_POST)){ 
    $to = "[email protected]"; 
    $subject = "Comanda de Magneti"; 

    $name = (isset($_POST["nume"]) ? $_POST["nume"] : '') . isset($_POST["prenume"]) ? $_POST["prenume"] : '' ; 
    $email = isset($_POST["email"]) ? $_POST["email"]; 
    $phone = isset($_POST["telefon"]) ? $_POST["telefon"] : ''; 
    $adress = isset($_POST["adresa"]) ? $_POST["adresa"] : ''; 

    $message = <<<EMAIL 

Comanda de Magneti de la $name 

Adresa de E-mail este $email  

Numarul de telefon este $phone 

Adresa este $adress 

EMAIL; 

    $header ="$email"; 

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

    $feedback = "Multumesc pentru comanda!" 
} 

而且如果可能的话做必填字段POST变量必要的检查。

+0

你知道解释的答案往往会吸引(+)选票(如果你也参加了)。有一个原因,为什么应该在那里使用这个分号。除非你不感兴趣,否则这将被认为是一个非常低质量的答案。只是一个堆栈protip ;-)提示:http://php.net/manual/en/language.basic-syntax.instruction-separation.php –

+0

好吧,工作!感谢那。但现在它说“数”,“prenume”,“电子邮件”,“telefon”和“adresa”是未定义的。 – Blaze26

+0

好的,我已经编辑了我的答案,它也涵盖了您的查询。 @ Fred-ii-我会照顾它的。谢谢! –