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

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

如果我們在一個(gè) PHP 文件中有多個(gè) PHP 腳本 (<?php ... ?>)

如果我們在一個(gè) PHP 文件中有多個(gè) PHP 腳本 (<?php ... ?>)

PHP
忽然笑 2022-10-22 16:28:08
我是網(wǎng)絡(luò)開發(fā)的新手。我有以下index.php文件:<H1>Form validation with my SQL integration </H1><form action="index.php" method="post">    emailid = <input type="text" name="tv_name" size="30" maxlength="32"><br>    password = <input type="password" name="tv_pass" size="30" maxlength="11"><br>    Press to create a new account: <input type="submit"  colspan="12" name="bt_register" value="Register!"><br>    Press to get all: <input type="submit"  colspan="12" name="bt_getall" value="GetAll entries"><br></form><?php    $req_type= $_SERVER['REQUEST_METHOD'];    $data_arr =[];    if($req_type=='GET' and isset($_GET["bt_register"]) ){        $data_arr = $_GET;    }    elseif ($req_type=='POST' and isset($_POST["bt_register"]) ){        $data_arr = $_POST;    }    else {        die("wrong format response received<br>");        // We didn't handle the first run flaw correctly.        // Thus this message will be shown even if btregister is not pressed    }    echo strip_tags(""); # Converting key-string pair to key-array pair    # Finding k-v pairs for each data    foreach($data_arr as $i=> $value){        echo "---- $i : $value <br>";    }    #... insertion/deletion/updation/creation?><?php    // I had to make a new one because old one would die at login press    #---------------- reading our database ------------------------------------------    $req_type= $_SERVER['REQUEST_METHOD']; # Checking req type    if($req_type=='GET' and isset($_GET["bt_getall"]) ){        echo "Get all req received via get";    }    elseif ($req_type=='POST' and isset($_POST["bt_getall"]) ){        echo "Get all req received via post";    }    else {        die("no get all response received, dying now.");    }    echo "<br>";?>在表單中,我有兩個(gè)按鈕,bt_register和bt_getall。<?php ...?>對于每個(gè)按鈕的任務(wù),我還有兩個(gè) PHP 腳本。該bt_register腳本包含向 MySQL 控制臺(tái)添加條目的所有代碼(為簡潔起見已刪除)。bt_getall應(yīng)該具有從 SQL 服務(wù)器獲取條目的所有代碼。按下時(shí)bt_register,第一個(gè)腳本成功運(yùn)行,然后運(yùn)行第二個(gè)腳本(這是錯(cuò)誤的,但可以理解的行為:我希望bt_register只運(yùn)行第一個(gè)腳本,但由于當(dāng)前的 php 文件有兩個(gè)腳本,它會(huì)同時(shí)運(yùn)行它們)。
查看完整描述

4 回答

?
30秒到達(dá)戰(zhàn)場

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

die()不應(yīng)在您的網(wǎng)絡(luò)腳本中使用。有時(shí)在調(diào)試時(shí)作為臨時(shí)措施很有用,但在實(shí)時(shí)應(yīng)用程序中使用它可能會(huì)導(dǎo)致災(zāi)難。一個(gè)更好的選擇是使用異常,它可以被您的應(yīng)用程序或 PHP 本身捕獲。


if(/*this is not allowed*/) {

    throw new \Exception('You are not allowed to do this!');

}

通常,您應(yīng)該將應(yīng)用程序設(shè)計(jì)為具有最少的此類意外情況。如果出現(xiàn)問題不是您的應(yīng)用程序的錯(cuò),那么您的代碼不應(yīng)該拋出任何錯(cuò)誤或異常。編寫適當(dāng)?shù)尿?yàn)證并以這樣的方式構(gòu)建項(xiàng)目,以便當(dāng)用戶提供無效輸入時(shí),他們會(huì)得到一個(gè)很好的錯(cuò)誤消息。


查看完整回答
反對 回復(fù) 2022-10-22
?
慕森卡

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

牢記您在問題中施加的條件,


我確實(shí)希望我的所有 PHP 腳本只保留在一個(gè)文件中,并且表單按鈕可以運(yùn)行


我會(huì)建議以下解決您的問題的方法


<H1>Form validation with my SQL integration </H1>

<form action="index.php" method="post">

    emailid = <input type="text" name="tv_name" size="30" maxlength="32"><br>

    password = <input type="password" name="tv_pass" size="30" maxlength="11"><br>

    Press to create a new account: <input type="submit"  colspan="12" name="bt_register" value="Register!"><br>

    Press to get all: <input type="submit"  colspan="12" name="bt_getall" value="GetAll entries"><br>

</form>



<?php

    $req_type= $_SERVER['REQUEST_METHOD'];

    $data_arr =[];


    if(isset($_REQUEST["bt_register"]) ){ // Executes for bt_register only

        $data_arr = $_REQUEST;


        if($req_type == "GET"){

            // Write operations that you want to perform for Register (when the method is GET)"


        }elseif($req_type == "POST"){

            // Write operations that you want to perform for Register (when the method is POST)"

        }else{

            throw new \Exception('Invalid method used');

        }

        // Write operations that you want to perform for all register requests (GET or POST)

        echo strip_tags(""); # Converting key-string pair to key-array pair


        # Finding k-v pairs for each data

        foreach($data_arr as $i=> $value){

            echo "---- $i : $value <br>";

        }

        #... insertion/deletion/updation/creation


    }elseif(isset($_REQUEST["bt_getall"])){ // Executes for bt_getall only

        if($req_type=='GET'){

            echo "Get all req recieved via get";

        }

        elseif ($req_type=='POST'){

            echo "Get all req recieved via post";

        }

        else {

            throw new \Exception('Invalid method used');

        }

        // Write operations that you want to perform for all getall requests (GET or POST)

    }elseif(isset($_REQUEST["bt_login"])){ // executes for bt_login only

        // Write code that should be executed on login button press

    }

    else { // executes for default page load or any other button press

        echo "<h2>First time load</h2>";

        // Write code (if any) that you want to run on first landing only.

    }


?>

代碼更改的說明

  • die()不應(yīng)按照上一個(gè)答案中的說明使用

  • 參考下面引用的您的評論,<?php ?>在這種情況下再次編寫標(biāo)簽是沒有用的。寫新<?php ?>標(biāo)簽不能調(diào)用已經(jīng)死掉的請求

    // 必須創(chuàng)建一個(gè)新的,因?yàn)榕f的會(huì)在登錄按下時(shí)死掉

  • isset($_REQUEST["bt_register"]無論他們的方法如何(GET 或 POST),都可以為您提供數(shù)據(jù)

  • 使用 if-else 處理請求類型(注冊、獲取所有、登錄、首次加載等),如上述代碼的注釋中所述

我建議您對每種類型的請求使用不同的 PHP 文件,而不是將所有代碼都寫在一個(gè) index.php 文件中。


查看完整回答
反對 回復(fù) 2022-10-22
?
子衿沉夜

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

是的,從字面上看,除了 die() 之外的任何東西。.... 什么都沒有。


例如:


$req_type= $_SERVER['REQUEST_METHOD']; 

$data_arr =[];


if($req_type=='GET' and isset($_GET["bt_register"]) ){ 

    $data_arr = $_GET;

}

elseif ($req_type=='POST' and isset($_POST["bt_register"]) ){

    $data_arr = $_POST;

}

else{

//do whatever you want here, or nothing at all.

}

但是,更多有用的輸入......


為什么要檢查請求方法?您已將表單設(shè)置為 POST。其他形式會(huì)調(diào)用這個(gè)相同的腳本嗎?我想你想要更像這樣的東西:


<?php 

$req_type= $_SERVER['REQUEST_METHOD']; # checking req type


if($req_type=='POST' && isset($_POST["tv_name"]) && isset($_POST["tv_pass"]) ){  

    echo "Everything is as it should be";

}

else {

    //log the error

    error_log("Error with POST tv_name or tv-pass", 3, '/var/www/html/myfancyloggingfolder/didsomeonetrytoGET.log');

    //display an error message

    echo 'This message could be more robust, but either POST was not used or tv_name / tv_pass was not included.';

    // if you do not want the script to stop then do not use die or exit here.

}


?> 


查看完整回答
反對 回復(fù) 2022-10-22
?
慕少森

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

我目前正在使用以下使用函數(shù)來區(qū)分不同按鈕調(diào)用的方法。這樣,只有需要在單擊按鈕時(shí)運(yùn)行的代碼才會(huì)運(yùn)行,因?yàn)閕sset (_REQTYPE[button_id])僅在button_id每次單擊按鈕時(shí)為特定設(shè)置設(shè)置,然后將其清除。(請注意,這些只是我的猜測,因?yàn)槲业拇a對我有用。請隨時(shí)添加更好的、更有事實(shí)支持的推理):



<?php

    $req_type= $_SERVER['REQUEST_METHOD']; # Checking req type



    $data_arr =[];

    if($req_type=='GET' and isset($_GET["bt_reg"])) { # Pressing bt_reg would make a $_GET=[k1:v1, k2:v2,...] one of the pair will be "bt_reg":"Register!" . so checking if it's set

        $data_arr = $_GET;

        runRegisterCommands($data_arr);

    }

    elseif ($req_type=='POST' and isset($_POST["bt_reg"])) { # Pressing bt_reg would make a $_POST=[k1:v1, k2:v2,...] one of the pair will be "bt_reg":"Register!" . so checking if it's set


        $data_arr = $_POST;

        runRegisterCommands($data_arr);

    }


    // -----------------------------------------------------


    if($req_type=='GET' and isset($_GET["bt_getall"]) ){   # Same as above, but for bt_getall, since bt_getall won't be set up on bt_register click

        echo "Get all req received via get";

        runGetAllCommands();

    }

    elseif ($req_type=='POST' and isset($_POST["bt_getall"]) ){

        echo "Get all req received via post";

        runGetAllCommands();

    }

?>


查看完整回答
反對 回復(fù) 2022-10-22
  • 4 回答
  • 0 關(guān)注
  • 203 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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