簡體   English   中英

PHP自參考表格

[英]PHP Self-referencing form

我正在使用Head First PHP和MYSQL教科書上PHP課程。 這本書寫於2008年,所以我一直在想我所學的內容是否最新。

課本在php注釋中顯示了一種自引用html形式,如下所示:

<?php
    require_once('appvars.php');
    require_once('connectvars.php');

    if (isset($_GET['id']) && isset($_GET['date']) && isset($_GET['name']) && isset($_GET['score']) && isset($_GET['screenshot'])) {

            // Grab the score data from the Get
            $id = $_GET['id'];
            $date = $_GET['date'];
            $name = $_GET['name'];
            $score = $_GET['score'];
            $screenshot = $_GET['screenshot'];                
        }
    else if (isset($_POST['id']) && isset($_POST['name']) && isset($_POST['score'])) {

        // Grab the score data from the POST
            $id = $_POST['id'];
            $name = $_POST['name'];
            $score = $_POST['score'];
        }
        else {
            echo '<p class="error">Sorry, no high score was specified for removal.</p>';
        }

        if (isset($_POST['submit'])) { 
            if ($_POST['confirm'] == 'Yes') {
                // Delete the screen shot image file from the server
                @unlink(GW_UPLOADPATH . $screenshot);

                 //Connect to the database
                $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

                // Delete the score data from the database
                $query = "DELETE FROM guitarwars WHERE id = $id LIMIT 1";
                $data = mysqli_query($dbc, $query)
                    or die('Unable to complete query');
                mysqli_close($dbc);  

                // Confirm success with the user
                echo '<p>The high score of ' . $score . ' for ' . $name . ' was succesfully removed.';
            }
            else {
                echo '<p class="error">The high score was not removed.</p>';
            }
        }

        else if (isset($id) && isset($name) && isset($date) && 
                isset($score) && isset($screenshot)) {
                    echo '<p>Are you sure you want to delete the following high score?</p>';
                    echo '<p><strong>Name: </strong>' . $name . '<br><strong>Date: </strong>' . $date . 
                         '<br><strong>Score: </strong>' . $score . '</p>';
                    echo '<form method="post" action="removescore.php">';
                    echo '<input type="radio" name="confirm" value="Yes">Yes ';
                    echo '<input type="radio" name="confirm" value="No" checked="checked">No ';
                    echo '<input type="submit" value="Submit" name="submit">';
                    echo '<input type="hidden" name="id" value="' . $id . '">';
                    echo '<input type="hidden" name="score" value="' . $score . '">';
                    echo '<input type="hidden" name="screenshot" value="' . $screenshot . '">';
                    echo '</form>';
                }
                echo '<p><a href="admin.php">&lt;&lt; Back to admin page</a></p>';                  
?>

我不斷收到錯誤消息,說我的id變量未定義。 經過研究后,我刪除了動作引號內的文本。 現在可以用了,但是我仍然想知道這本書為什么用這種方式教書。 它們都是有效的選擇嗎?

回顯的變量不帶引號,因此,如果將其與常規HTML代碼混合使用,則可以將引號用於HTML代碼,然后以相同類型的另一個引號結尾(在本例中為單引號)。

但是由於HTML代碼必須包含引號(對於“ value”屬性),因此您可以像使用混合單引號和雙引號一樣。

變量之前的單引號結束HTML的回顯,點允許連接變量,變量后的點則執行相同的操作,然后再次為HTML代碼提供單引號。

暫無
暫無

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

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