alternativa a morir () si tenemos varios scripts PHP (<? php ...?>) en un solo archivo php?

Ansh Sachdeva:

Soy nuevo en el desarrollo web. Tengo el siguiente index.phparchivo:


<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 recieved<br>"); 
        // we didn't handled the first run flaw corrdctly. 
        //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 
    // 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 recieved via get";
    }
    elseif ($req_type=='POST' and isset($_POST["bt_getall"]) ){ 
        echo "Get all req recieved via post";
    }

    else {
        die("no get all response recieved, dying now."); 
    }
    echo "<br>";

?>

en forma, tengo 2 botones bt_registery bt_getall. También tengo 2 scripts PHP <?php ...?>para cada una de las funciones de los botones. el bt_registerguión tenía todo el código para añadir una entrada a la consola de MySQL (eliminado bervity). el bt_getalldebería tener todo el código para obtener entradas del servidor SQL.
Cuando bt_registerse pulsa, el primer script se ejecuta con éxito siguió ejecutando el segundo guión (que es un mal comportamiento, pero comprensible: que esperaba bt_registerpara funcionar sólo el primer guión, pero ya que el archivo PHP actual tiene 2 guiones, que corre a ambos)

Sin embargo, cuando bt_getallse pulsa, el caso de los demás el primer guión es golpeado y "recibimos respuesta de formato incorrecto" aparece.

Supongo que el funcionamiento normal de PHP es la siguiente: en cualquier botón de envío de prensa, todos los scripts PHP en un archivo PHP se ejecutan de forma secuencial. Si cualquier script php llama die("..."), la ejecución completa conseguiría detenido.

Así que si estoy en lo correcto en mis conjeturas, lo que debería ser una alternativa a dietal que si se detiene el script actual, la otra secuencia de comandos puede ejecutar correctamente? Yo quiero que todos mis scripts PHP permanezcan en 1 archivo solamente, y los botones de formulario para ejecutar

O si hay un error en mi enfoque, entonces me hizo saber que también.

Ansh Sachdeva:

Gracias por las respuestas. Actualmente estoy usando el siguiente enfoque de utilizar las funciones de diferenciar entre diferentes llamadas de botón. de esta manera, sólo el código que debe ejecutarse en un clic de botón que correr porque isset (_REQTYPE[button_id])sólo se establece para un particular, button_idcada vez que se hace clic en un botón, y se borra después. (Tenga en cuenta que estos son sólo mis conjeturas porque mi código está trabajando para mí dude en añadir un mejor, más el razonamiento hecho-compatible.):


<?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 its 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 its 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 recieved via get";
        runGetAllCommands();
    }
    elseif ($req_type=='POST' and isset($_POST["bt_getall"]) ){ 
        echo "Get all req recieved via post";
        runGetAllCommands();
    }
?>

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=303449&siteId=1
Recomendado
Clasificación