die()的替代,如果我们在单个php文件中有多个php脚本()?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了die()的替代,如果我们在单个php文件中有多个php脚本()?相关的知识,希望对你有一定的参考价值。
我是Web开发的新手。我有以下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 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>";
?>
表格中,我有2个按钮bt_register
和bt_getall
。对于每个按钮的任务,我也有2个php脚本<?php ...?>
。 bt_register
脚本具有将代码添加到mysql控制台的所有代码(出于烦恼而删除)。 bt_getall
应该具有从sql服务器获取条目的所有代码。当按下bt_register
时,第一个脚本成功运行,然后运行第二个脚本(这是错误的但可以理解的行为:我希望bt_register
仅运行第一个脚本,但是由于当前的php文件有2个脚本,因此它同时运行它们)
但是当按下bt_getall
时,第一个脚本的其他情况被命中,并显示“收到错误的格式响应”。
我猜想php的正常工作是这样的:在任何提交按钮按下时,一个php文件中的所有php脚本都会依次执行。如果任何php脚本调用die("...")
,则完全执行将被暂停。
因此,如果我猜对了,应该使用什么替代die
,以便如果当前脚本停止运行,则其他脚本可以成功运行?我确实希望我所有的php脚本仅保留在1个文件中,并让表单按钮运行
或者如果我的方法有错误,也请让我知道。
是的,从字面上讲,除了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.
但是,为什么会这样?您已将表单设置为POST。您为什么要尝试处理GET的可能性?
以上是关于die()的替代,如果我们在单个php文件中有多个php脚本()?的主要内容,如果未能解决你的问题,请参考以下文章
如果单个元素中有多个类名,如何在 React 测试中获得正确的类名?