第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

刷新后執(zhí)行 PHP 腳本

刷新后執(zhí)行 PHP 腳本

PHP
阿晨1998 2022-12-23 16:25:28
我有一個(gè)按鈕,它在單擊后執(zhí)行 php 代碼(我正在用電子郵件測試一些東西,到目前為止一切正常,除了這個(gè)問題與“刷新后加載 PHP 腳本”問題):HTML:<form method="post"> <input type="submit" name="button1"        class="button" value="Button1" /> <input type="submit" name="button2"        class="button" value="Button2" /> </form>PHP:<?php    if(array_key_exists('button1', $_POST)) {         button1();     }     else if(array_key_exists('button2', $_POST)) {         button2();     }     function button1() {         echo "mail";     }     function button2() {            ini_set( 'display_errors', 1 );            error_reporting( E_ALL );            $from = "test@example.de";            $to = "thisIsA@secret.de";            $subject = "Betreff";            $message = "Text";            $headers = "From:" . $from;            mail($to,$subject,$message, $headers);            echo "Test email sent";    } ?>當(dāng)我第一次訪問該站點(diǎn)時(shí),在我按下其中一個(gè)按鈕之前,一切正常并且腳本沒有執(zhí)行。太完美了 -> 但是當(dāng)我刷新頁面時(shí),腳本會(huì)在我沒有按下按鈕的情況下執(zhí)行。刷新后如何防止腳本加載?
查看完整描述

1 回答

?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊

顯示這種消息通常稱為“閃現(xiàn)消息”:顯示出現(xiàn)過一次的消息,刷新后不再顯示。

您的問題來自瀏覽器的行為:如果頁面是從 POST 請求加載的,那么如果用戶點(diǎn)擊刷新按鈕,它將使用相同的 POST 參數(shù)發(fā)出新的 POST 請求

但你想要的是:如果頁面是從 POST 請求加載的,那么如果用戶點(diǎn)擊刷新按鈕,它將發(fā)出一個(gè)新的 GET 請求(當(dāng)然:沒有任何 POST 參數(shù))

可以使用session來實(shí)現(xiàn),步驟如下:

  • 用戶點(diǎn)擊一個(gè)按鈕(1 或 2)

  • POST 到自己 button1=Button1 或 button2=Button2

  • 頁面處理請求(做郵件功能)

  • 頁面重定向/刷新以顯示先前保存在會(huì)話變量中的新消息。


<?php

    session_start();


    if(array_key_exists('button1', $_POST)) {

        button1();

    }

    else if(array_key_exists('button2', $_POST)) {

        button2();

    }

    function button1() {

        $_SESSION["msg"] = "mail";

        echo "<script>window.location = window.location.pathname;</script>";

        exit();

    }

    function button2() {

        ini_set( 'display_errors', 1 );

        error_reporting( E_ALL );

        $from = "test@example.de";

        $to = "thisIsA@secret.de";

        $subject = "Betreff";

        $message = "Text";

        $headers = "From:" . $from;

        mail($to,$subject,$message, $headers);

        $_SESSION["msg"] = "Test email sent";

        echo "<script>window.location = window.location.pathname;</script>";

        exit();

    }


?>

<form method="POST">

<input type="submit" name="button1"

        class="button" value="Button1" />


<input type="submit" name="button2"

        class="button" value="Button2" />

</form>


<?php

if(!empty($_SESSION["msg"])){

    echo $_SESSION["msg"];

    $_SESSION["msg"] = null;

    unset($_SESSION["msg"]);

}

?>



查看完整回答
反對(duì) 回復(fù) 2022-12-23
  • 1 回答
  • 0 關(guān)注
  • 85 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)