2011-04-06 119 views
0

我想寫一個包含if/else語句和函數的腳本。一些背景PHP函數和if/else語句

  • $parts第一個字符應具有字母 「N」
  • $desc被假設是至少一個字符長
  • $price需求是正的(0或更高)

如果滿足這三個要求,那麼它應該說「數據接受」,如果沒有滿足(一個或全部)「無效....」需要顯示。

有人能告訴我我應該看看我的腳本的哪一部分。

<?php 
$parts = $_POST["parts"]; 
$desc = $_POST["desc"]; 
$price = $_POST["price"]; 

$pa = substr($parts, 0, 1); 
$de = strlen($desc); 

if ($pa != "N") 
{echo "Invalid Part Number";} 
else 
if ($de <= 1) 
    {echo "Invalid Description Length";} 
else 
    if ($price <= 0) 
    {echo "Invalid Price";} 
    else 
    {echo "Data Accepted";} 
?> 
+0

您的腳本按照什麼方式不能按照您的要求工作? – Endophage 2011-04-06 03:58:44

+0

解析錯誤:解析錯誤在線3 – TBP 2011-04-06 04:02:12

+2

只要看看它,我會說你需要把你的變量聲明後所屬的分號。我也會說'$ pa!= N'不會起作用N應該用引號包裹,然後它只會檢查變量是否等於N,而不是變量的子字符串等於N 。我會看看使用'substr'來獲得這個工作權利。 – JRSofty 2011-04-06 04:04:32

回答

2

第二,如果要if($de==1)$de=1將始終返回true。

還在每個語句後添加分號。

+0

你在if和else行上添加分號嗎? – TBP 2011-04-06 04:05:26

+2

我總是把它們寫成(1 == $ d),然後如果我不小心忽略了=並且執行了賦值,它會產生一個編譯錯誤。 – Wes 2011-04-06 04:06:15

+0

不,只用於陳述。 – Rasika 2011-04-06 04:06:35

0
$parts = $_POST["parts"]; 
$desc = $_POST["desc"]; 
$price = $_POST["price"]; 
+0

看起來這是爲了回答以前版本的問題。 – 2012-08-13 14:45:58

+0

@Phoenix我可能認爲這是一個語法錯誤,錯誤報告被禁用。 – 2012-08-13 14:59:10

1

第二,如果要if($de < 1)你可以有if($de == 1)如果它始終將是一個字符長,但是這會工作,如果它的1個或多個

+0

這是一個很好的觀點,但它不會是($ de <= 1),因爲如果它少於那麼一個錯誤是產生,如果它多於一個,那麼它接受 – TBP 2011-04-06 04:14:31

+0

@TBP但是,如果它恰好是一個.... – 2012-08-13 14:46:40

2

您的需求: -

$parts first character should have the letter "N"

$desc is suppose to be at least one character long

$price needs to be positive (0 or higher)

解決方案: -

$parts = $_POST["parts"]; 
$desc = $_POST["desc"]; 
$price = $_POST["price"]; 

$pa = substr($parts, 0, 1); 
$de = strlen($desc); 

if($pa != 'N') { 
    echo "Invalid Part Number"; 
} elseif($de < 1) { 
    echo "Invalid Description Length"; 
} elseif($price < 0) { 
    echo "Invalid Price"; 
} else { 
    echo "Data Accepted"; 
} 
0
<?php 
    $parts = ''; 
    $desc = ''; 
    $price = 0; 
    if ($_POST['parts'] != 'n') 
    { 
    echo 'Not equal to n<br>'; 
    } 
    else { 
    'Accepted input<br>'; 
    } 
    $desc = strlen($_POST['desc']); 
    if ($desc < 1) 
    { 
    echo 'Input less than 1<br>'; 
    } 
    else { 
    echo 'Accepted input<br>'; 
    } 
    if ($_POST['price'] < 0) 
    { 
    echo 'Input below 0<br>'; 
    } 
    else { 
    echo 'Input accepted<br>'; 
    } 
    ?>