【问题标题】:PHP - Dealing with GET and POST arraysPHP - 处理 GET 和 POST 数组
【发布时间】:2009-11-25 13:22:07
【问题描述】:

在我的 web 应用程序中,我有一个名为 display.php 的页面。此页面中的脚本根据 POST 和 GET 数组内容/存在以不同方式运行,假设:如果我调用此页面和 GET 数组isset,脚本将使用$_GET['id'] 加载记录,在另一种情况下,如果没有 GET issetisset 某个 POST 密钥,则脚本将从数据库中加载随机记录......等等。

在我的页面顶部,我添加了这个简单(琐碎)的代码:

//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编码中需要解决的典型问题。

【问题讨论】:

  • 只是一个小建议,清理代码,空白。 x = a 比 x=a 更容易阅读。使用一致且适当的缩进。
  • 我对你的问题有点困惑:我假设你想要做的是从你的数据库中检索一个随机记录,给定一个随机(或伪随机)POST /GET 输入?

标签: php arrays oop post get


【解决方案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();
}

【讨论】:

    【解决方案2】:

    这不是您发布的脚本的一部分,但我认为您需要做的最重要的事情是确保在使用 GET/POST 变量查询数据库之前先对其进行转义。

    例如,如果您使用的是 MySQL,则可以使用 mysql_real_escape_string()

    【讨论】:

    • 或者更好的是开始研究 pdo www.php.net/pdo 如果他们从 php/mysql 开始
    • ... 或用 mysqli 准备好的语句。
    猜你喜欢
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 2010-10-02
    相关资源
    最近更新 更多