【问题标题】:Mandatory fields in the html form using PHP PDO使用 PHP PDO 的 html 表单中的必填字段
【发布时间】:2015-10-09 05:18:47
【问题描述】:

我有一个 html 表单,我希望 3 个字段是强制性的。如果用户没有填写这些字段中的任何一个,则不应该提交表单,它应该告诉用户填写强制性的。我用过 PDO,但我不知道该怎么做。如果有人可以帮助我。下面我给出了我的 html 和 php 文件。

HTML:

<html>
<head>
<title>Data Insertion</title>
</head>
<body>
<p><span class="Error">* required field.</span></p>
<form method="post" action="su.php"> 
<h2>Please Fill In Details</h2>
<label for="name">Name </label>
<input type="text" Placeholder="Enter your name" name="name" id="name" />
<span class="Error">*</span>
<br />
<br />
<label for="age">Age </label>
<input type="text" name="age" id="age" placeholder="Enter your age"  />
<br />
<br />
<label for="mailid">MailId </label>
 <input type="text" name="mailid" id="mailid" placeholder="Enter your Mail   Id" />
<span class="Error">*</span>
<br />
<br />
<label for="gender">Gender </label>
<br />
<label for="male">Male </label>
<input type="radio" name="gender" id="gender" value="Male" id="male" />
<label for="female">Female </label>
<input type="radio" name="gender" id="gender" value="Female" id="female" />
<br />
<br />
<label for="qualification">Qualification </label>
<select name="qualification" value="Qualification" id="qualification">
<option value="B.E">SSLC</option>
<option value="P.G">HSC</option>
<option value="SSLC">UG</option>
<option value="HSC">PG</option>
</select>
<br /><br />
<label for="hobbies">Hobbies </label>
<br />
<input type="checkbox" name="hobbies" id="hobbies" value="Cricket" />Cricket
<input type="checkbox" name="hobbies" id="hobbies" value="Music" />Music
<input type="checkbox" name="hobbies" id="hobbies" value="Swimming" />Swimming
<br /><br />
<label for="textarea">Address </label>
<br />
<textarea name="address" id="textarea" rows="15" cols="30"></textarea>
<span class="Error">*</span>
<br /><br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

PHP:

<?php
    $servername = 'localhost';
    $username = 'root';
    $password = '';
    try {
        $conn = new PDO("mysql:host=$servername;dbname=testing", $username, $password);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        if(isset($_POST['submit'])){
            $name = $_POST['name'];
            $age = $_POST['age'];
            $mailid = $_POST['mailid'];
            $gender = $_POST['qualification'];
            $hobbies = $_POST['address'];
            if($name !='' || $mailid !='' || $address !=''){
        $sql = "Insert into user (Name, Age, MailId, Gender, Qualification, Hobbies, Address) 
        values ('".$_POST["name"]."', '".$_POST["age"]."', '".$_POST["mailid"]."', '".$_POST["gender"]."', '".$_POST["qualification"]."', '".$_POST["hobbies"]."', '".$_POST["address"]."')";
        $conn->exec($sql);
        echo "Thank you for registering";
            } else {
                echo "<p>Insertion failed <br/> Please enter the required fields !";
            }}
    }
catch(PODException $e)
{
    echo $sql . "<br>" . $e->getMessage();
}
?>

【问题讨论】:

  • 您必须为此使用 javascript。
  • 甚至可以使用需要的html5属性。
  • 我想用 PHP 做到这一点。不想使用“必需属性”。
  • 任何关于我如何使用 javascript 做到这一点的线索?
  • 另外,你必须修复你的 html。您不能像以前那样重复 id。您还需要将 [] 添加到要将其值转储到数组中的元素的名称中。一种更典型的注册方法是只允许输入所需的信息,并在用户的选项页面上通知用户可用的选项。有很多教程展示了如何在允许发送之前检查表单的值,我更倾向于认为你没有看,而不是你的 google foo 停机维护..w3schools.com/js/js_validation.asp

标签: php html mysql pdo


【解决方案1】:

尝试在所有必需的输入元素上添加 html 5 属性“必需”。例如

<input type="text" Placeholder="Enter your name" name="name" id="name" required />

您还应该检查 php 代码中的 POST 变量,因为这并不能真正防止有人滥用您的服务。例如。

if(!isset($_POST['somevar'])) {
    // Do insert
}

【讨论】:

  • 我已经用 html 5 required 属性完成了。现在我的疑问是如何使用 PHP PDO。
  • 在 PHP 或 PDO 中是​​什么意思?我认为您正在使事情变得混乱/使事情变得更加困难。如果您的意思是 PDO,您可能应该考虑使用准备好的语句进行查询,因为它更安全。
【解决方案2】:

在 html 中,您应该使用 javascript(例如 jQuery)来控制 onsubmit 事件并验证必填字段是否填充了正确的值,请查看此链接:jQuery.submit()

在 php 中,您应该在创建和执行查询之前检查并验证每个 var。关于它的简单文章在这里:Sanitize and Validate Data with PHP Filters 我认为这对开始很有好处;)

查询字符串应该包含占位符,然后语句应该准备好执行,检查这个链接: PDOStatement::bindParam

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    相关资源
    最近更新 更多