保留在表单页面上的PHP错误处理

时间:2017-11-07 18:30:36

标签: php error-handling

我有一个条纹银行帐户验证表单,需要使用特定格式的整数。没有小数,没有字母等。当用户输入错误的东西并提交时,页面会变成这样的东西:

  

致命错误:未捕获Stripe \ Error \ InvalidRequest:期望整数......然后是一堆有用但看起来很垃圾的信息

或者,如果银行帐户已经过验证,则可以这样:

  

致命错误:未捕获Stripe \ Error \ InvalidRequest:此银行帐户已经过验证.....然后是一堆有用但看起来很垃圾的信息

它仅用此错误替换我的页面和我的徽标等,因此用户必须单击后退按钮再试一次。

我意识到我可以为这些事情添加自己的错误检查,比如整数很容易,已经验证的将会更具挑战性。但是,由于条纹已经经历了检测错误并以这种格式返回它们的努力,我不想自己动手并重新发明轮子。

所以,尽管如此,如何让用户保持在同一页面上,表单仍然可见,只是在顶部显示错误,以便他们知道要修复什么?

如果输入格式不正确或者存在其他问题,则会出现错误的代码:

if ( !empty($_POST["valueOne"]) and !empty( $_POST["valueTwo"]))
        {

            https://dashboard.stripe.com/account/apikeys
            \Stripe\Stripe::setApiKey("secret key");

            // get the existing bank account
            $customer = \Stripe\Customer::retrieve($customerHash);
            $bank_account = $customer->sources->retrieve($bankHash);

            // verify the account
            $bank_account->verify(array('amounts' => array($_POST['valueOne'], $_POST['valueTwo'])));
        }

1 个答案:

答案 0 :(得分:-1)

这是使用JavaScript / jQuery进行客户端验证的经典案例。客户端验证的目的是防止在值不符合要求(或缺失)时提交表单。

您仍然希望保留服务器端验证,因为客户端验证可能会被破坏。

但客户端验证是确保提交的值是"正确"的第一步。

进一步阅读:JavaScript: client-side vs. server-side validation