2015-10-26 42 views
1

我在PHP上真的很糟糕。所以,是的,這段代碼很簡單。但如果可能的話,我寧願讓代碼工作。謝謝。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; 
} 
+0

'$ _POST([「female」])'不正確。您可以使用'{}'或'[]'來訪問數組值。 http://php.net/manual/en/language.types.array.php – chris85

+0

@ chris85,它怎麼不正確?我已經看過代碼,直到我變藍。可能是疲勞,但看不到它。 – user273072545345

+0

應該是'$ _POST [「female」])'看看額外的''('你有那裏嗎?它可能會更容易使用空的。 – chris85

回答

0

$_POST(["female"]) 

是不正確訪問的POSTarrayfemale值。

捲曲{}或括號[]可用於訪問數組。

Both square brackets and curly braces can be used interchangeably for accessing array elements (e.g. $array[42] and $array{42} will both do the same thing in the example above).

這應該是正確的:

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

+0

剛剛注意到錯過了另外一個不正確的POST數組訪問。 – chris85

+0

剛剛看到您的更新。現在測試它。 ftp慢! – user273072545345

+0

我仍然有問題,但我已經接受你的答案B/C它有點幫助,我希望能找出其餘的。謝謝。 – user273072545345

0

你有令狀10不正確的語法

試試這個

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"]); 
} 
+0

引發了這個錯誤:'PHP解析錯誤:語法錯誤,意外的T_ELSEIF' – user273072545345

+0

哦!我修正了語法。 –

+0

仍然引發了與您的代碼的第三行相同的錯誤elseif部分。 – user273072545345

相關問題