簡體   English   中英

你能告訴我這個 PHP 表單有什么問題嗎?

[英]Can you tell me what's wrong with this PHP form?

我正在嘗試制作一個簡單的網站,在該網站中我詢問用戶他們的姓名和出生日期,以便輸出“你好(姓名)你是(年齡)歲,你將畢業(畢業日期)。我覺得我的代碼是正確的,但是當我提交表單時,它會將我帶到一個空白頁面。

我的代碼: HTML

<body>
  <center>
    <form action="aform.php" method="post">
      Name:<input type="text" name="name" />
      <br />
      Date of Birth:
      <input type="text" size="4" placeholder="mm" name="month" /> 
      <input type="text" size="4" placeholder="dd" name="day" />
      <input type="text" size="6" placeholder="yyyy" name="year" />
      <input type="submit" name="submit" value="Submit" />
      <br />
    </form>
  </center>
</body>

PHP:

<?php

if($_POST["submit"]){

    $name = $_POST["name"];
    $day = $_POST["day"];
    $month = $_POST["month"];
    $year = $_POST["year"];
    $datedisplay = date("yyyy");
    $birth = array($day,$month,$year);

    if($name = $year = $month = $day = ""){
        echo "You must fill out everything!";
    } else if($year = $month = $day > 0) {
        $yourage = 2014 - $year;
        $gradyear = $year + 22;
        $graddate = "6/TBA/$gradyear"; 
        echo "Hello" . $name . ", you are" . $yourage . "years old and you will graduate from college in" . $graddate ; 
    }   
}
?>

對不起,如果我提出這個錯誤,我是這個網站的新手。

你的測試是錯誤的。 這是一個更正的代碼:

<?php

if($_POST["submit"]) {

    $name = $_POST["name"];
    $day = $_POST["day"];
    $month = $_POST["month"];
    $year = $_POST["year"];
    $datedisplay = date("yyyy");
    $birth = array($day,$month,$year);

    if(empty($name) || empty($year) || empty($month) || empty($day)) {
        echo "You must fill out everything!";
    } else if($year > 0 && $month > 0 && $day > 0) {
        $yourage = 2014 - $year;
        $gradyear = $year + 22;
        $graddate = "6/TBA/$gradyear"; 
        echo "Hello" . $name . ", you are" . $yourage . "years old and you will graduate from college in" . $graddate ; 
    }   
}
?>

我認為

if($name = $year = $month = $day = ""){
    echo "You must fill out everything!";
}

這不是很好。 您應該檢查每個變量為emptyisset 使用 one =在你的情況下,你給變量一個值。

if(!empty($name) && !empty($year) && !empty($month)) {

1) 你需要在 ifs 中使用 == ......單個 = 的工作方式不同
(這樣,您只需嘗試檢查,是否可以將 $year 的值分配給 $name )

if($name = $year = $month = $day = "")

2)你需要重寫,如果

if( ( strlen( $name ) == 0 ) && ( strlen( $year ) == 0 ) .....

3)你也需要重寫你的elseif東西

嘗試這個:

<?php

if($_SERVER['REQUEST_METHOD'] == 'POST'){

$name = $_POST["name"];
$day = $_POST["day"];
$month = $_POST["month"];
$year = $_POST["year"];
$datedisplay = date("yyyy");
$birth = array($day,$month,$year);

    if($name == "" || $year == "" || $month == "" || $day == ""){
    echo "You must fill out everything!";
    }

    else if($year > 0 && $month > 0 && $day > 0){
    $yourage = 2014 - $year;
    $gradyear = $year + 22;
    $graddate = "6/TBA/$gradyear"; 
    echo "Hello" . $name . ", you are" . $yourage . "years old and you will graduate from college in" . $graddate ; 
    }

}
?>

如果這不起作用,請編輯您的問題並添加您編寫的 HTML 表單代碼

不要使用賦值運算符代替壓縮運算符。 在 php 中

if($name = $year = $month = $day = ""){

}   
else if($year = $month = $day > 0){}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM