Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP将表单中的数据插入SQLite3数据库_Php_Database_Pdo_Sqlite - Fatal编程技术网

使用PHP将表单中的数据插入SQLite3数据库

使用PHP将表单中的数据插入SQLite3数据库,php,database,pdo,sqlite,Php,Database,Pdo,Sqlite,我正在尝试从创建注册,然后将数据发布到SQlite数据库文件中 我的表单如下所示: <form action="registerprocess_test.php" class="form-horizontal" id= "register_form" method="post" name="register_form" role="form"> <h2>Registration Form</h2> <div class="form-gro

我正在尝试从创建注册,然后将数据发布到SQlite数据库文件中

我的表单如下所示:

<form action="registerprocess_test.php" class="form-horizontal" id=
"register_form" method="post" name="register_form" role="form">
    <h2>Registration Form</h2>
    <div class="form-group">
        <label class="col-sm-3 control-label" for="firstname">First
        Name</label>
        <div class="col-sm-6">
            <input autofocus="" class="form-control" id="firstname" name=
            "firstname" placeholder="First Name" type="text">
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-3 control-label" for="lastname">Last
        Name</label>
        <div class="col-sm-6">
            <input autofocus="" class="form-control" id="lastname" name=
            "lastname" placeholder="Last Name" type="text">
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-3 control-label" for="email">Username</label>
        <div class="col-sm-6">
            <input class="form-control" id="username" name="username"
            placeholder="Username" type="text">
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-3 control-label" for=
        "password">Password</label>
        <div class="col-sm-6">
            <input class="form-control" id="password" name="password"
            placeholder="Password" type="password">
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-3 control-label" for="country">Country</label>
        <div class="col-sm-6">
            <select class="form-control" id="country" name="country">
                <option>
                    United Kingdom
                </option>
                <option>
                    United States
                </option>
            </select>
        </div>
    </div><!-- /.form-group -->
    <div class="form-group">
        <label class="control-label col-sm-3">Gender</label>
        <div class="col-sm-6">
            <div class="row">
                <div class="col-sm-4">
                    <label class="radio-inline"><input id="femaleRadio"
                    type="radio" value="Female">Female</label>
                </div>
                <div class="col-sm-4">
                    <label class="radio-inline"><input id="maleRadio" name=
                    "gender" type="radio" value="Male">Male</label>
                </div>
            </div>
        </div>
    </div><!-- /.form-group -->
    <div class="form-group">
        <div class="col-sm-6">
            <div class="checkbox"></div>
        </div><!-- /.form-group -->
        <div class="form-group">
            <div class="col-sm-6 col-sm-offset-3">
                <div class="checkbox">
                    <label><input type="checkbox">I accept <a href=
                    "#">Terms & Conditions</a></label>
                </div>
            </div>
        </div><!-- /.form-group -->
        <div class="form-group">
            <div class="col-sm-6 col-sm-offset-3">
                <button class="btn btn-primary btn-block" type=
                "submit">Register</button>
            </div>
        </div>
    </div>
</form>
 <?php
  try
{
//open the database
$db = new PDO('sqlite:users.db');


$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$username = $_POST["username"];
$password = $_POST["password"];
$gender = $_POST["gender"];
$country = $_POST["country"];


//Insert record  

$db->exec("INSERT INTO registered_users (firstname, lastname, username, password, gender, country) VALUES ('$firstname', '$lastname', '$username', '$password', '$gender', $country);");

//now output the data to a simple html table...
 print "<table border=1>";
 print "<tr><td>firstname</td><td>lastname</td><td>username</td><td>password</td><td>gender</td><td>country</td></tr>";
$result = $db->query('SELECT * FROM registered_users');
foreach($result as $row)
{
  print "<tr><td>".$row['firstname']."</td>";
  print "<td>".$row['lastname']."</td>";
  print "<td>".$row['username']."</td>";
  print "<td>".$row['password']."</td>";
  print "<td>".$row['gender']."</td>";
  print "<td>".$row['country']."</td>";
}
print "</table>";

$db = NULL;
}
catch(PDOException $e)
{
print 'Exception : ' .$e->getMessage();
}

?>

登记表
弗斯特
名称
最后
名称
用户名
密码
国家
大不列颠联合王国
美国
性别
女性
男性
我接受
登记
然后,我的PHP如下所示:

<form action="registerprocess_test.php" class="form-horizontal" id=
"register_form" method="post" name="register_form" role="form">
    <h2>Registration Form</h2>
    <div class="form-group">
        <label class="col-sm-3 control-label" for="firstname">First
        Name</label>
        <div class="col-sm-6">
            <input autofocus="" class="form-control" id="firstname" name=
            "firstname" placeholder="First Name" type="text">
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-3 control-label" for="lastname">Last
        Name</label>
        <div class="col-sm-6">
            <input autofocus="" class="form-control" id="lastname" name=
            "lastname" placeholder="Last Name" type="text">
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-3 control-label" for="email">Username</label>
        <div class="col-sm-6">
            <input class="form-control" id="username" name="username"
            placeholder="Username" type="text">
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-3 control-label" for=
        "password">Password</label>
        <div class="col-sm-6">
            <input class="form-control" id="password" name="password"
            placeholder="Password" type="password">
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-3 control-label" for="country">Country</label>
        <div class="col-sm-6">
            <select class="form-control" id="country" name="country">
                <option>
                    United Kingdom
                </option>
                <option>
                    United States
                </option>
            </select>
        </div>
    </div><!-- /.form-group -->
    <div class="form-group">
        <label class="control-label col-sm-3">Gender</label>
        <div class="col-sm-6">
            <div class="row">
                <div class="col-sm-4">
                    <label class="radio-inline"><input id="femaleRadio"
                    type="radio" value="Female">Female</label>
                </div>
                <div class="col-sm-4">
                    <label class="radio-inline"><input id="maleRadio" name=
                    "gender" type="radio" value="Male">Male</label>
                </div>
            </div>
        </div>
    </div><!-- /.form-group -->
    <div class="form-group">
        <div class="col-sm-6">
            <div class="checkbox"></div>
        </div><!-- /.form-group -->
        <div class="form-group">
            <div class="col-sm-6 col-sm-offset-3">
                <div class="checkbox">
                    <label><input type="checkbox">I accept <a href=
                    "#">Terms & Conditions</a></label>
                </div>
            </div>
        </div><!-- /.form-group -->
        <div class="form-group">
            <div class="col-sm-6 col-sm-offset-3">
                <button class="btn btn-primary btn-block" type=
                "submit">Register</button>
            </div>
        </div>
    </div>
</form>
 <?php
  try
{
//open the database
$db = new PDO('sqlite:users.db');


$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$username = $_POST["username"];
$password = $_POST["password"];
$gender = $_POST["gender"];
$country = $_POST["country"];


//Insert record  

$db->exec("INSERT INTO registered_users (firstname, lastname, username, password, gender, country) VALUES ('$firstname', '$lastname', '$username', '$password', '$gender', $country);");

//now output the data to a simple html table...
 print "<table border=1>";
 print "<tr><td>firstname</td><td>lastname</td><td>username</td><td>password</td><td>gender</td><td>country</td></tr>";
$result = $db->query('SELECT * FROM registered_users');
foreach($result as $row)
{
  print "<tr><td>".$row['firstname']."</td>";
  print "<td>".$row['lastname']."</td>";
  print "<td>".$row['username']."</td>";
  print "<td>".$row['password']."</td>";
  print "<td>".$row['gender']."</td>";
  print "<td>".$row['country']."</td>";
}
print "</table>";

$db = NULL;
}
catch(PDOException $e)
{
print 'Exception : ' .$e->getMessage();
}

?>

我做了一些错误检查,这是因为我的表中有另一列没有插入。因此,我从数据库中删除了此列,现在它可以正常工作。

是否有错误?我是否也闻到SQL注入的味道?不要对查询字符串使用字符串操作!这是一个巨大的安全风险!请改用准备好的语句和查询参数。@andrius,不,我没有收到错误。。埃尔文·穆勒&三十二上校,我对这一点还不熟悉,所以我还不知道有什么不同。我现在只是想让基本功能正常工作,稍后将实现安全性(更改最后一部分$country);“致“$country”);