2012-01-18 71 views
0
require_once('mysqli_connect.php'); 

$errors = array(); 


if(empty($_POST['senFirstName']) && empty($_POST['senLastName']) 
&& empty($_POST['recFirstName']) && empty($_POST['recLastName']) 
&& empty($_POST['proName']) && empty($_POST['proWeight']) 
&& empty($_POST['traNo']) && empty($_POST['shipDate']) 
&& empty($_POST['deliDate'])) { 

    $errors[] = 'Please make sure you type in all the information.'; 

} 
else { 
    $sfn = mysqli_real_escape_string($dbc, trim($_POST['senFirstName'])); 
    $sln = mysqli_real_escape_string($dbc, trim($_POST['senLastName'])); 
    $rfn = mysqli_real_escape_string($dbc, trim($_POST['recFirstName'])); 
    $rln = mysqli_real_escape_string($dbc, trim($_POST['recLastName'])); 
    $pn = mysqli_real_escape_string($dbc, trim($_POST['proName'])); 
    $pw = mysqli_real_escape_string($dbc, trim($_POST['proWeight'])); 
    $traNo = mysqli_real_escape_string($dbc, trim($_POST['traNo'])); 
    $shipDate = mysqli_real_escape_string($dbc, trim($_POST['shipDate'])); 
    $deliDate = mysqli_real_escape_string($dbc, trim($_POST['deliDate'])); 
    $status = mysqli_real_escape_string($dbc, trim($_POST['status'])); 
    $shiptype = mysqli_real_escape_string($dbc, trim($_POST['shiptype'])); 
    } 


if(empty($errors)) { // If everything's OK. 

$query = "SELECT traNo, CONCAT(recFirstName, ' ', recLastName) AS recieverName, proName, CONCAT(senFirstName, ' ', senLastName) AS senderName, status, shiptype FROM tracking, rel_tracking_reciever, reciever, product, sender 
    WHERE traNo='$traNo' AND tracking.traId = rel_tracking_reciever.traId AND reciever.recId = rel_tracking_reciever.recId AND tracking.proId = product.proId AND tracking.senId = sender.senId"; 

    $result = @mysqli_query($dbc, $query); 
    $num = mysqli_num_rows($result); 

    if ($num) { // tracking number was found 

    while ($row = mysqli_fetch_array($result,MYSQL_ASSOC)) { 


     echo '<div id="error">'; 
     echo "<p>This tracking number <b>{$row['traNo']}</b> has already been assigned to <b>{$row['senderName']}</b></p>\n"; 
     echo '</div>'; 
    } 
    mysqli_free_result ($result); // Free up the resources. 
    } 

1)我想如果使用& &逻辑表达式的条件来验证输入框与多个而是,它提交空表单到数据库中。 注:我故意遗漏了装运和状态输入框,因为默认情况下选项不能为空。最好的方式来使用这个if语句和&&逻辑表达

2)有没有一种方法可以自动生成跟踪号码,而无需手动输入。我尝试过GUID,但没有得到它。

谢谢..

+3

我想你可能意味着||而不是&& ...您正在测试以查看__every__ $ _POST值是否为空,而不是__any__ $ _POST值为空 – 2012-01-18 12:20:30

+0

是的,我希望每个$ _POST都被检查过,并且我认为&&应该做到这一点。 – user1156124 2012-01-18 13:33:35

回答

2

你必须设置要验证IDS - 有没有抱怨。如果你想测试,如果是空的

$ids = array('senFirstName', 'senLastName', 'recFirstName', 'recLastName' /* ... and more */); 
$valid = true; 

foreach ($ids as $id) { 
    if (empty($_POST[$id])) { 
    $valid = false; 
    } 
} 

if ($valid === true) { 
    // everything's ok 
} else { 
    $errors[] = 'Please make sure you type in all the information.'; 
} 
+0

谢谢。我会试一试。 – user1156124 2012-01-18 13:31:05

1

你需要||,不& &:

你可以做到这一点。

否则,如果它们都是空的,你会证明。

(对不起,我英文不好)

if(empty($_POST['senFirstName']) || empty($_POST['senLastName']) ... 
+0

感谢它现在的工作。 – user1156124 2012-01-19 15:06:48