【发布时间】:2025-12-23 19:40:11
【问题描述】:
我有一个需要特定格式整数的条纹银行帐户验证表。没有小数,没有字母等。当用户输入错误并提交时,页面变成这样:
致命错误:未捕获的 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'])));
}
【问题讨论】:
-
您考虑过使用客户端验证吗?这将在提交表单之前捕获可能的错误。您仍然希望保留服务器端验证。但是客户端验证通常用于您描述的场景中。
-
在您的 PHP 代码中添加错误处理以处理任何错误 (
try ... catch) 并确保它始终以理想的方式产生输出。您还可以考虑使用 Ajax 调用来调用服务器验证。 -
.....then a bunch of useful but garbage-looking information如果你能理解它可能是有用的信息。 -
@Martin 哦,另一个是这个吗? *.com/questions/162159/… 哈哈!
-
@Martin 马上就来........等等。
标签: php error-handling