добавить дополнительное поле в форму не работает - PullRequest
0 голосов
/ 20 февраля 2010

У меня есть рабочая рекомендация для сценария, я просто хотел добавить дополнительное поле с именем fename, теперь я получаю сообщение об ошибке, подобное этому:

Ошибка разбора: синтаксическая ошибка, неожиданный конец $ в

это 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 ]

5 голосов
/ 20 февраля 2010

Вам нужен еще один }, поскольку вы добавили еще один вложенный 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 голос
/ 20 февраля 2010

Когда вы пишете код, держите минимум блока. Если вы используете 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...