2016-03-06 133 views
-1

我是PHP新手,所以我爲練習做了第一個練習,並且我無法確定我的代碼中存在問題。如果其他在PHP中沒有給出正確的輸出

<!DOCTYPE html> 
<html> 
<head><title>PHP activity</title></head> 

<form action="act1.php" method="post"> 
Name: <input type="text" name="name"><input type="submit"> 

</form> 
    <?php 

if ($_POST["name"] = " ") { 
    echo "Please Enter Your Name!"; 
} 
else { 
echo $_POST["name"]; 
} 
?> 
</html> 

它不給我我的預期輸出。我期待如果表單爲空,它必須返回「Please bla bla」,否則,如果它不是空白的,它將返回名稱的輸入。

但產量始終是 「請喇嘛喇嘛」

我真的很新,以PHP

+0

如果尤爾問題解決接受最好的答案 – devpro

回答

1

=是分配不比較 變化if ($_POST["name"] = " ")if ($_POST["name"] == "") 所以你的if/else變得

if ($_POST["name"] == "") { 
    echo "Please Enter Your Name!"; 
} 
else { 
echo $_POST["name"]; 
} 
+0

如果你不知道關於這一點,那很好。我認爲。 –

1

更改此行if ($_POST["name"] = " ") {

對此if ($_POST["name"] == "") {

0

因爲您使用了錯誤的運算符進行比較。

  • =用於將值賦予變量。 $x=5;表示x的值已設置爲5.
  • ==用於比較。 $x==5;將返回true如果$x的值是5

改正的,如下圖所示:

if ($_POST["name"] ==" ") 
{ 
echo "Please Enter Your Name!"; 
} 
else 
{ 
echo $_POST["name"]; 
} 

而且我想,你是檢查是否$_POST["name"]爲空或不在if條件。但只有在$_POST["name"]的值爲空格時纔會輸入您的if block。它可能不適用於多個空間,並且根本沒有輸入。

您可能需要的條件更改爲:

if ($_POST["name"] =="\0" || ($_POST["name"] ==" ")

這又是行不通的期望,如果用戶輸入多個空格或特殊字符。

注:

\0意味着空字符。

0

您在示例中未使用比較來分配值。

還有一個問題$var == " "其不改正將考慮空的空間價值"" != " "

您還可以使用empty()在你的榜樣是:

if (empty($_POST["name"])) { 
    echo "Please Enter Your Name!"; 
} else { 
    echo $_POST["name"]; 
} 
0

檢查您的傳入POST參數像一些數據下面。

if (trim($_POST["name"]) == "") { 

} 

不要忘記trim,以避免空白字符提交。

你在你的代碼

  • 兩個錯誤您可以選擇使用==運營商,而不是運營商=檢查用戶輸入。

  • 您正在比較用戶輸入和" "即空白字符,只有當用戶在輸入字段中添加一個空格字符時纔會成立。

注意:每次訪問該頁面時都會執行此條件。

所以,你必須檢查用戶是否按下submit按鈕,然後只有你必須顯示錯誤信息。

希望它能工作。

0

1.更改爲「姓名」,在「文本」字段中的「名稱」屬性
2.加「值」屬性在提交場下value =在同一
「提交」,並更改名稱=「表單」 3.Now在你的PHP代碼檢查表單是否已經提交,如果提交 然後只檢查是否存在空的名字或不

Name:<input type="text" name="Name"/> 
    <input type="submit" name="Form" value="submit"/> 
<?php 
    if($_POST["Form"]) 
    { 
     if ($_POST["Name"]) { 
      echo $_POST["Name"]; 
     } 
     else { 
      echo "Please Enter Your Name!"; 
     } 
    } 
?>