在我的webapp中,我有一个名为display.php的页面。这个页面中的脚本根据POST和GET数组内容/存在以不同的方式运行,比方说:如果我调用此页面和GET数组isset
,脚本将使用$_GET['id']
加载记录,在另一种情况下,如果没有GET isset
但isset
一个ceratin POST键,脚本将从DB加载一个随机记录......依此类推。
在我的页面顶部,我添加了这个简单(简单)的代码:
//random loading
if(!isset($_GET['id']) && !isset($_POST["MM_update"])){
##
$fresh_call=true;
$saving_call=false;
$pick_a_call=false;
##
$_SESSION['call_id']=time().$_GET['operatore'];
$call_id=$_SESSION['call_id'];
//I need to load a specified record
}else if (isset($_GET['id']) && !isset($_POST["MM_update"])) {
##
$pick_a_call=true;
$saving_call=false;
$fresh_call=false;
##
$_SESSION['call_id']=$_GET['id'];
$call_id=$_SESSION['call_id'];
//update the record
}else if (!isset($_GET['id']) && isset($_POST["MM_update"])){
##
$saving_call=true;
$pick_a_call=false;
$fresh_call=false;
##
$call_id=$_POST['call_id'];
}
在display.php中,还有一个表格可以自我发布数据到display.php进行记录更新(代码中的最后一个条件)。
在其余的脚本中,我正在检查$fresh_call
,$saving_call
,$pick_a_call
值,以使用正确的UPDATE / INSERT / SELECT SQL查询数据库。
我不确定我的解决方案,我想设计一个可以帮助我使我的脚本更“清晰”和更轻的课程。我认为这种情况可能是PHP编码中需要解决的典型问题。
答案 0 :(得分:1)
这是一个功能性替代方案,应该与您发布的代码相同,但可能更容易理解:
function set_call_id( $val )
{
$_SESSION['call_id'] = $val;
}
if( isset($_GET['id']) )
{
set_call_id( $_GET['id'] );
pick_a_call();
}
else if( isset($_POST["MM_update"]) )
{
set_call_id( $_POST['call_id'] );
saving_call();
}
else
{
set_call_id( time() . $_GET['operatore'] );
fresh_call();
}
答案 1 :(得分:0)
这不是您发布的脚本的一部分,但我认为您需要做的最重要的事情是确保在使用它们查询数据库之前首先转义GET / POST变量。
例如,如果您使用的是MySQL,则可以使用mysql_real_escape_string()。