添加额外的字段以形成不起作用

时间:2010-02-20 10:34:56

标签: php forms

我有一个工作建议脚本,我只是想添加一个名为fename的额外字段,现在我得到这样的错误:

解析错误:语法错误,意外的$ end in

这是html表单:

<form action="action.php" method="post">
    Uw naam:<br /> 
    <input type="text" name="name" size="25"><br />
    <br />
    Uw e-mail adres:
     <br /> 
    <input type="text" name="email" size="25"><br />
    <br />
    De naam van uw kennis of vriend:
    <br /> 
    <input type="text" name="fename" size="25"><br />
    <br />
     Het e-mail adres van uw vriend of kennis:<br />
    <input name="femail" type="text" size="25"><br />
    <br />
    Bijzonderheden:<br>
    <textarea rows="5" name="recon" cols="75">
</textarea><br />
<input type="submit" name="submit" value="Aanbevelen!">
</form>

这是action.php

<? 
if (!$_POST['name']) {echo "Je moet wel je naam invullen a.u.b."; } else {

if (!$_POST['email']) {echo "Je moet wel je e-mail adres invullen a.u.b."; } else {

if (!$_POST['fename']) {echo "Naam van uw vriend of vriendin invullen."; } else {

if (!$_POST['femail']) {echo "Je moet wel het e-mail adres van uw vriend/familie of kennis invullen. a.u.b."; } 

else{
$name=$_POST['name'];
$email=$_POST['email'];
$fename=$_POST['fename'];
$femail=$_POST['femail'];
$recon=$_POST['recon'];
$recon=htmlspecialchars($recon);
$headers = "From: $email\r\nReply-To: $femail\r\n";


PRINT "Bedankt $name dat u ons heeft aanbevolen.";


mail("$femail", "Computerhulp is nabij!", "

Beste $name , $fename heeft u ons aanbevolen.

$recon
",$headers);

}

}

}



?>

2 个答案:

答案 0 :(得分:5)

您需要另一个},因为您添加了另一个嵌套的if-else。

然而,使用elseif进行重构要好得多,因为这些都是针对这种类型的链接而设计的:

<?php 
if (!$_POST['name']) {echo "Je moet wel je naam invullen a.u.b."; } 
elseif (!$_POST['email']) {echo "Je moet wel je e-mail adres invullen a.u.b."; }
elseif (!$_POST['fename']) {echo "Naam van uw vriend of vriendin invullen."; }
elseif (!$_POST['femail']) {echo "Je moet wel het e-mail adres van uw vriend/familie of kennis invullen. a.u.b."; } 
else {
$name=$_POST['name'];
$email=$_POST['email'];
$fename=$_POST['fename'];
$femail=$_POST['femail'];
$recon=$_POST['recon'];
$recon=htmlspecialchars($recon);
$headers = "From: $email\r\nReply-To: $femail\r\n";


PRINT "Bedankt $name dat u ons heeft aanbevolen.";


mail("$femail", "Computerhulp is nabij!", "

Beste $name , $fename heeft u ons aanbevolen.

$recon
",$headers);

}

?>

答案 1 :(得分:1)

编写代码时,请将块保持最小。如果您使用IDE,那么它会在您错过}时告诉您。使用一致的括号样式和缩进来帮助您发现错误。

以上是您的代码,但更容易找到错误:

<?php

$error = 0;
if (!$_POST['name']) {
  echo "Je moet wel je naam invullen a.u.b.";
  $error = 1;
}
if (!$_POST['email']) {
  echo "Je moet wel je e-mail adres invullen a.u.b.";
  $error = 1;
}
if (!$_POST['fename']) {
  echo "Naam van uw vriend of vriendin invullen.";
  $error = 1;
}
if (!$_POST['femail']) {
  echo "Je moet wel het e-mail adres van uw vriend/familie of kennis invullen. a.u.b.";
  $error = 1;
}
if ( $error == 0 ) {
  $name=$_POST['name'];
  $email=$_POST['email'];
  $fename=$_POST['fename'];
  $femail=$_POST['femail'];
  $recon=$_POST['recon'];
  $recon=htmlspecialchars($recon);
  $headers = "From: $email\r\nReply-To: $femail\r\n";

  PRINT "Bedankt $name dat u ons heeft aanbevolen.";

  mail("$femail", "Computerhulp is nabij!", "

Beste $name , $fename heeft u ons aanbevolen.

$recon
",$headers);

}

了解我如何使用$error来阻止嵌套if - else