我有一个表单,我要求详细信息,我希望确保他们至少填写他们的汽车注册号,工作时间,邮政编码和至少3位驾驶信息。
然后我从我的web服务返回一个ID给他们,说明他们的ID是什么,这是提交到我的azure数据库。
我肯定不是一个PHP人,由于某种原因,我的代码似乎不能工作,因为我可以发送信息而不填充所有的字段。
有人能指出我哪里出错了吗,我真的是在没有任何PHP知识的情况下搞出来的,我很惊讶我能走到这一步。
我代码:<?php
if($_POST['pcode_txtbx'] != "" || $_POST['dob_txtbx'] != "" || $_POST['carreg_txtbx'] != "" || $_POST['drvn_txtbx0'] != "" || $_POST['dln_txtbx0'] != "" || $_POST['dlc_code_txtbx0'] != "") :
// ALWAYS RAISE THE PHP ERROR REPORTING TO THE HIGHEST POSSIBLE LEVEL
ini_set('display_errors', TRUE);
error_reporting(E_ALL);
// SHOW THE REQUEST VARIABLES
//var_dump($_POST);
// CONSTRUCT THE QUERY STRING
$data =
[ 'PCode' => $_POST['pcode_txtbx']
, 'CarReg' => $_POST['carreg_txtbx']
, 'DateofBirth' => $_POST['dob_txtbx']
, 'Driver0' => $_POST['drvn_txtbx0']
, 'DLN0' => $_POST['dln_txtbx0']
, 'CheckCode0' => $_POST['dlc_code_txtbx0']
, 'Driver1' => $_POST['drvn_txtbx1']
, 'DLN1' => $_POST['dln_txtbx1']
, 'CheckCode1' => $_POST['dlc_code_txtbx1']
, 'Driver2' => $_POST['drvn_txtbx2']
, 'DLN2' => $_POST['dln_txtbx2']
, 'CheckCode2' => $_POST['dlc_code_txtbx2']
, 'Driver3' => $_POST['drvn_txtbx3']
, 'DLN3' => $_POST['dln_txtbx3']
, 'CheckCode3' => $_POST['dlc_code_txtbx3']
, 'Driver4' => $_POST['drvn_txtbx4']
, 'DLN4' => $_POST['dln_txtbx4']
, 'CheckCode4' => $_POST['dlc_code_txtbx4']
];
// CONSTRUCT THE URL
$url = 'http://mywebservice/myservice.svc?' . http_build_query($data);
?>
<br><center>
Thank you for submitting your Code to us, your submission reference is:
<br><br>
<b>
<?php
// TRY THE WEB SERVICE
$htm = my_curl($url);
else :
?>
</b>
<br><br><center>
Please make sure you have the Postcode, Car Registration, Date of Birth and at least the top most Driver Details filled in!
<br><br>
<a href="<?php echo $_SERVER['HTTP_REFERER'] ?>">Go Back and Try Again</a>
</center>
<?php endif; ?>
基本上,如果在第一个if语句中的任何字段是空白的,它不应该提交给服务器,我在哪里错了?
欢呼
您还使用了OR…所以你的逻辑是.....如果a不是空字符串或者如果b不是空字符串或者c不是空字符串…
你想要的是AND。如果a不是空字符串且b不是…c不是。然后提交到服务器
你有两个问题:
- 使用OR代替AND
- 你假设所有的变量都是POST的,这并不一定是真的。
我建议你使用以下条件:
如果!空($ _POST [' pcode_txtbx ']),,!空($ _POST [' dob_txtbx ']),,//…其他字段也一样)