PHP错误 - 不知道如何解决它

时间:2015-10-26 22:10:37

标签: php html forms html-form

我真的很擅长PHP。所以,是的,这段代码很简单。但是如果可能的话,我宁愿让这段代码工作。谢谢。

PHP代码的目的

技术上有两个领域,男女性别。我试图触发一个声明,假设一个人为两者选择0,告诉他们填写其中一个,否则,如果为空,填写它,否则,通过test_input函数测试它在底部。

我不断得到的是一个始终如一的错误:

PHP Parse error: syntax error, unexpected '[', expecting ')'关于PHP代码的第一行。我已经对代码进行了如此多的讨论,但无法弄清楚如何修复它。

PHP代码

   if ((($_POST["male"]) === "") && ($_POST(["female"]) === "")) {
     $quantityErr = "pls fill in one of the genders";
   elseif (empty($_POST(["male"])) 
    $maleErr = "# of people (gender male) required";
   else 
     $male = test_input($_POST["male"]);
 }

HTML字段代码

       <div class="field">
          <label>* Number of People</label>
          <select class="ui dropdown" name="male">
            <option value="">Gender Male</option>
            <option <?php if ($male === 0 ) echo 'selected' ; ?> value="0">0</option>
            <option <?php if ($male == 1 ) echo 'selected' ; ?> value="1">1</option>
            <option <?php if ($male == 2 ) echo 'selected' ; ?> value="2">2</option>
            <option <?php if ($male == 3 ) echo 'selected' ; ?> value="3">3</option>
            <option <?php if ($male == 4 ) echo 'selected' ; ?> value="4">4</option>
            <option <?php if ($male == 5 ) echo 'selected' ; ?> value="5">5</option>
            <option <?php if ($male == 6 ) echo 'selected' ; ?> value="6">6</option>
            <option <?php if ($male == 7 ) echo 'selected' ; ?> value="7">7</option>
            <option <?php if ($male == 8 ) echo 'selected' ; ?> value="8">8</option>
            <option <?php if ($male == 9 ) echo 'selected' ; ?> value="9">9</option>
            <option <?php if ($male == 10 ) echo 'selected' ; ?> value="10">10</option>
          </select>
          <?php if(isset($maleErr)) print ('<span class="error">* ' . $maleErr . '</span>'); ?>
          <?php if(isset($quantityErr)) print ('<span class="error">* ' . $quantityErr . '</span>'); ?>
        </div>

测试功能

function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}

2 个答案:

答案 0 :(得分:0)

你写的语法不正确

试试这个

 if ((($_POST["male"]) === "") && ($_POST["female"] === "")) {
     $quantityErr = "pls fill in one of the genders";
   elseif(empty($_POST["male"]))
    $maleErr = "# of people (gender male) required";
   else 
     $male = test_input($_POST["male"]);
 }

答案 1 :(得分:0)

$_POST(["female"])

无法访问female arrayPOST值。

可以使用Curlys {}或方括号[]来访问数组。

  

方括号和花括号可以互换使用来访问数组元素(例如$ array [42]和$ array {42}在上面的例子中都会做同样的事情。)

这应该是正确的:

if (empty($_POST["male"])  && empty($_POST["female"])) {
     $quantityErr = "pls fill in one of the genders";
} elseif (!empty($_POST["male"]) && $_POST["male"] > 0) { 
     $male = test_input($_POST["male"]);
} elseif (empty($_POST["male"])) {
    //male is not set or equal to 0; if male is 0 then female >= 1 and set. logic doesn't have any female checks so unclear currently how you want to handle that
    $maleErr = "# of people (gender male) required"; // maybe add message that it is required to be greater than 1.
}

您的条件也不正确。在控制结构上使用{}时,需要关闭控制块。您的elseif未关闭之前的if