【问题标题】:Is it a correct approach in php?这是php中的正确方法吗?
【发布时间】:2011-06-23 23:52:49
【问题描述】:

首先,这是我在堆栈

当我写这样的代码时:

if ($_POST['submit'])
{
    $total = $_POST["total"];
    $var = $_POST["var"];

function func($total, $var)
    {
     $lost = $total * $var / 100;
     $income = $total - $income;
     $result = "Income - " . $income . "<br />Lost - " . $lost;

     return $result;
    }

echo func($total, $var);
}
else
{
?>


<?php 
// HTML FORM : i write to number example total = 1000
// and var = 200 and result is 1000 - (1000/100*20)
?>
<form method="POST" action="index.php">
    <input type="text" name="total" />
    <input type="text" name="var" />

    <input type="submit" name="submit" value="Submit" />
</form>
<?php }?>

有一个错误: 注意:未定义索引:提交 当我在谷歌搜索时,我发现了一个类似解决方案的东西,error_reporting (E_ALL ^ E_NOTICE) 但我认为这不是一个正确的解决方案。

【问题讨论】:

标签: php kohana


【解决方案1】:

empty()isset() 是您在这种情况下需要的工具

if (!empty($_POST['submit'])) {

【讨论】:

    【解决方案2】:

    我想它告诉你$_POST['submit'] 没有设置...

    试着用这个代替..

    if (array_key_exists('submit', $_POST)) {
    

    【讨论】:

    • 另外,在任何你使用 name 属性的地方你也应该有 id ... 所以 ...
    • 此外,由于某些漏洞,公认的做法是使用 array_key_exists,(不是空的或 isset)...
    • 什么漏洞?我个人强烈推荐 empty/isset - 它不那么冗长,并且还可以防止在未设置数组本身的情况下出现错误。
    • @Frank Farmer - 如果未设置,它将返回 FALSE,而不是您建议的错误。 (因此是 IF() 语句)您的编程目标应该是安全、功能性代码,而不是冗长。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2013-09-25
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多