【发布时间】:2016-09-29 10:10:06
【问题描述】:
我使用来自网站的 .wsdl 文件在我的 AuthController.php 中创建了一个函数 soapRequest() 来检查增值税号是否存在:
public function soapRequest(Request $request) {
$countryCode = $request->countryCode;
$vatNo = $request->vat_number;
$client = new \SoapClient("http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl");
$result = $client->checkVat(['countryCode' => $countryCode, 'vatNumber' => $vatNo]);
$result = ($result->valid == true) ? "VAT number OK" : "VAT number INVALID";
return response()->json(['msg' => $result], 200);
}
在我看来,我只写数字,我可以查看数字是否有效:
<div class="row form-group">
<div class="col-md-3 col-xs-3">
{!! Form::select('countryCode', [
'' => '--Land auswählen',
'AT' => 'AT-Austria',
'BE' => 'BE-Belgium',
'BG' => 'BG-Bulgaria',
'CY' => 'CY-Cyprus',
'CZ' => 'CZ-Czech Republic',
'DE' => 'DE-Germany',
'DK' => 'DK-Denmark',
'EE' => 'EE-Estonia',
'EL' => 'EL-Greece',
'ES' => 'ES-Spain',
'FI' => 'FI-Finland',
'FR' => 'FR-France',
'GB' => 'GB-United Kingdom',
'HR' => 'HR-Croatia',
'HU' => 'HU-Hungary',
'IE' => 'IE-Ireland',
'IT' => 'IT-Italy',
'LT' => 'LT-Lithuania',
'LU' => 'LU-Luxembourg',
'LV' => 'LV-Latvia',
'MT' => 'MT-Malta',
'NL' => 'NL-The Netherlands',
'PL' => 'PL-Poland',
'PT' => 'PT-Portugal',
'RO' => 'RO-Romania',
'SE' => 'SE-Sweden',
'SI' => 'SI-Slovenia',
'SK' => 'SK-Slovakia'],
null, ['id' => 'countryCode', 'class' => 'form-control']
) !!}
</div>
<div class="col-md-2 col-xs-2">
{!! Form::text('code', null, ['id' => 'code', 'disabled' => 'disabled', 'class' => 'form-control']) !!}
</div>
<div class="col-md-3 col-xs-3">
{!! Form::text('vat_number', null, ['id' => 'vat', 'class' => 'form-control']) !!}
</div>
<div class="col-md-4 col-xs-4">
{!! Form::text('msg', null, ['id' => 'msg', 'disabled' => 'disabled', 'class' => 'form-control']) !!}
</div>
</div>
javascript
<script type="text/javascript">
$(document).on('change', '#countryCode', function () {
$('input[id=code]').val($('#countryCode').val());
});
$(document).on('input paste', '#vat, #countryCode', function () {
$.ajax({
type:'POST',
url:'/soap',
headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}' },
data: $('#countryCode, #vat').serialize(),
success:function(data){
$('input[id=msg]').val(data.msg);
}
});
});
</script>
实际上我不需要它像这样工作......我只需要验证/验证用户是否在该增值税号输入字段中输入了现有号码。
所以问题是:
如何验证 BACKEND 中的单个输入字段,以便用户无法输入不存在的增值税号?
【问题讨论】:
-
不能被操纵是什么意思?当用户提交表单时,您将数据从浏览器发送到服务器,并处理所有内容。当您在服务器上处理用户输入时,您应该使用您的 soapRequest 检查它是否存在增值税。
-
是的,你是对的......但目前我没有对该字段的验证......如何验证它以便用户提交表单时......它必须是一个有效的增值税号
-
您应该使用您的 SOAP 请求在服务器上检查它。或者(更好的主意)在用户在字段中输入他的增值税后使用 Javascript 进行检查,如果验证成功,则给他一条短消息(比如将其设为绿色或其他内容)。 SoapRequest 是服务器端的,在用户使用您的表单发送数据后检查它有什么问题?
-
您的意思是当您将数据保存在服务器上时?
-
问题是,如果数字有效或无效,用户实际上会收到该消息,但它只是用户的信息..但他仍然可以写任何不存在的数字.. ..我想让用户无法输入不存在的增值税号