簡體   English   中英

如何從php腳本退出並在腳本之后立即繼續?

[英]how can I exit from a php script and continue right after the script?

大家好,我有這段代碼,當我在echo之后添加return時(如果有錯誤,並且需要在腳本之后立即繼續),我看不到頁腳,您知道問題出在哪里嗎?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en" >
<head>
    <title>Login | JM Today </title>
    <link href="Mainstyles.css" type="text/css" rel="stylesheet" />
</head>
<body>
<div class="container">
    <?php include("header.php"); ?>
    <?php include("navbar.php"); ?>
    <?php include("cleanquery.php") ?>  

    <div id="wrap">


       <?php
       ini_set('display_errors', 'On');
        error_reporting(E_ALL | E_STRICT);

        $conn=mysql_connect("localhost", "***", "***") or die(mysql_error());
        mysql_select_db('jmtdy', $conn) or die(mysql_error());

        if(isset($_POST['sublogin'])){

        if(( strlen($_POST['user']) >0) && (strlen($_POST['pass']) >0)) {

            checklogin($_POST['user'], $_POST['pass']);

        }
        elseif((isset($_POST['user']) && empty($_POST['user'])) || (isset($_POST['pass']) && empty($_POST['pass']))){

            echo '<p class="statusmsg">You didn\'t fill in the required fields.</p><br/><input type="button" value="Retry" onClick="location.href='."'login.php'\">";
            return;
        }
        }
        else{

            echo '<p class="statusmsg">You came here by mistake, didn\'t you?</p><br/><input type="button" value="Retry" onClick="location.href='."'login.php'\">";
            return;

        }   

      function checklogin($username, $password){

        $username=mysql_real_escape_string($username);
        $password=mysql_real_escape_string($password);

            $result=mysql_query("select * from users where username = '$username'");
            if($result != false){

                $dbArray=mysql_fetch_array($result);
                $dbArray['password']=mysql_real_escape_string($dbArray['password']);
                $dbArray['username']=mysql_real_escape_string($dbArray['username']);

                if(($dbArray['password'] != $password ) || ($dbArray['username'] != $username)){
                    echo '<p class="statusmsg">The username or password you entered is incorrect. Please try again.</p><br/><input type="button" value="Retry" onClick="location.href='."'login.php'\">";
                    return;
                }
                $_SESSION['username']=$username;
                $_SESSION['password']=$password;

                if(isset($_POST['remember'])){
                    setcookie("jmuser",$_SESSION['username'],time()+60*60*24*356);  
                    setcookie("jmpass",$_SESSION['username'],time()+60*60*24*356);
                }
            }

            else{
                echo'<p class="statusmsg">  The username or password you entered is incorrect. Please try again.</p><br/>input type="button" value="Retry" onClick="location.href='."'login.php'\">";
                return;
            }
        }           


      ?>
        </div>
        <br/>
        <br/>
<?php include("footer.php") ?>
</div>
</body>

</html>

哦,如果用戶名和密碼不正確,我可以看到頁腳。

當您具有return語句並且不在函數內部時,腳本將退出,因此解析器將永遠不會到達導入頁腳的語句。 請記住,腳本是整個文檔,而不僅僅是標記中包含的部分。 如果解析器停在某處,則整個文檔的其余部分將被忽略。

嘗試將您的php部分作為php include插入。 回報; 語句將僅停止執行所包含的php,在包含之后將繼續其余操作。

<?php include("footer.php") ?>將輸出頁腳。

您不能退出腳本並繼續運行相同的腳本。

但是有關您的退貨聲明的一些建議:

1)如果您的函數未返回任何內容,則不要在其中放置return語句。

2)每個函數僅使用一個return語句,它將使您的代碼更清晰。

嘗試刪除“返回”(僅將其保留在函數中)在這種情況下不會有任何變化,但是您會看到頁腳。

刪除第33和39行的RETURN語句

暫無
暫無

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

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