gpt4 book ai didi

php - 客户端和服务器端验证

转载 作者:行者123 更新时间:2023-11-29 13:42:30 24 4
gpt4 key购买 nike

大家好,我想知道如何验证服务器端和客户端的 3 件事。

数据库表产品

我的数据库看起来像这样,但里面有超过 400 条数据。

pid   name   size            
1 grey 12 inch
2 blue 16 inch
database table category

pid category
1 vans
2 nike
database table itemised

pid price
1 30.00
2 50.00

我有一些字段需要验证。我已经完成了验证以检查它是否不为空。

我的表中的一个字段如下所示

  <select id="Category" name="Category">
<?php
dbconnect();
$stmt = $conn->prepare("SELECT Name FROM Category WHERE pid=:id");
$stmt->bindParam('id',$id);
$stmt->execute();
$i = 0;
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {
if ($i == 0) {

echo '<option SELECTED value="'.$row['Name'].'">'.$row['Name'].'</option>
';
}
else {
echo '<option value="'.$row['Name'].'">'.$row['Name'].'</option>';
}
$i++;
}
?>
</select>

它不是表单而是表格。如果您注意到尺寸是数字并用字母表示。

我的问题或多或少大家都熟悉开发者工具来改变发布值。我想验证客户端(JS)和客户端(php)以确保没有人弄乱该值。

我这样做是为了检查它是否为空举个例子,如果有正常

<option value="blue vans">blue vans</option>

不正常

<option value="">blue vans</option> // in this one the value is `BLANKET` 

下面的js检查这个

function isEmpty(aTextField,errormessage) //null may be used for errormessage to only change the colour of matching fields
{
if (aTextField.value.length<=0)
{
if (lfield != aTextField || lfield === null) { fields[fields.length] = [aTextField,false]; } else { fields[fields.length-1] = [aTextField,false]; }
lfield = aTextField;
if (errormessage !== "")
{
if (counter < error_count || error_count == 0) { errors += errormessage+'\n'; } counter++;
}
return true;
}
else
{
if (lfield != aTextField || lfield === null) { fields[fields.length] = [aTextField,true]; }
lfield = aTextField;
return true;
}
}

在 PHP 中

function notEmpty($inputname,$error_message)
{
$this->js.='if (!isEmpty(formname.'.$inputname.',"'.$error_message.'")) return false;';
if ( isset($_POST[$inputname]) && ( strlen($_POST[$inputname]) <= 0 ))
{
if ($error_message != null)
{
$this -> error_message .= $error_message.'<br>';
}
}
}

现在您可以看到我如何验证表中所有选项的总值(value)我如何在js和php中验证

对于大小,如果我最后没有inch,那会很简单,但更改数据库中的 1000 多个数据将是一件痛苦的事情。

知道我该怎么做吗???

我希望我已经清楚地解释了这一点,如果没有,请发表评论,我会尝试重新表述这个问题。

谢谢

最佳答案

我会在 Javascript 和 php 中使用正则表达式。您可以在两种语言中使用相同的模式,因此不必编写两次。

php-检查大小:

<?php
if(!preg_match("/^[0-9]+ (inch|othervalue1|othervalue2)$/",$_POST[$inputname]){
$this -> error_message .= 'Wrong Value<br>';
}
?>

对于JS,你可以看一下这个:http://www.w3schools.com/jsref/jsref_obj_regexp.asp

这可能在 JS 中起作用,但尚未测试:

function checkSize(value){
var patt=new RegExp("^[0-9]+ (inch|othervalue1|othervalue2)$");
return patt.test(value); //returns false for wrong value
}

此外,我建议为值和单位制作两列。它会给你带来几个好处。

关于php - 客户端和服务器端验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17896794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com