1. 怎么用php把html表单内容写入数据库
1:首先要使用PHP的超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data)
2:然后使用INSERT INTO 语句用于向数据库表中插入新记录。
具体示例:
(1)首先创建了一个名为 "Persons" 的表,有三个列:"Firstname", "Lastname" 以及 "Age"。
<?php
$con=mysql_connect("localhost","peter","abc123");
if(!$con)
{
die('Couldnotconnect:'.mysql_error());
}
mysql_select_db("my_db",$con);
mysql_query("INSERTINTOPersons(FirstName,LastName,Age)
VALUES('Peter','Griffin','35')");
mysql_query("INSERTINTOPersons(FirstName,LastName,Age)
VALUES('Glenn','Quagmire','33')");
mysql_close($con);
?>
(2)其次创建一个 HTML 表单,这个表单可把新记录插入 "Persons" 表。
<html>
<body>
<formaction="insert.php"method="post">
Firstname:<inputtype="text"name="firstname"/>
Lastname:<inputtype="text"name="lastname"/>
Age:<inputtype="text"name="age"/>
<inputtype="submit"/>
</form>
</body>
</html>
(3)接着当用户点击上例中 HTML 表单中的提交按钮时,表单数据被发送到 "insert.php"。"insert.php" 文件连接数据库,并通过
$_POST 变量从表单取回值。然后,mysql_query() 函数执行 INSERT INTO 语句,一条新的记录会添加到数据库表中。
<?php
$con=mysql_connect("localhost","peter","abc123");
if(!$con)
{
die('Couldnotconnect:'.mysql_error());
}
mysql_select_db("my_db",$con);
$sql="INSERTINTOPersons(FirstName,LastName,Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if(!mysql_query($sql,$con))
{
die('Error:'.mysql_error());
}
echo"1recordadded";
mysql_close($con)
?>
2. php表单怎样提交到当前页面,并用$_POST获取其值
按照这样输入:
<?php
$username=$_POST['username'];
?>
<form action="" ><input type="text" name="username"><input type="submit" name="submit" value="提交"></form>
3. php避免form表单重复提交
php避免form表单重复提交
重复提交我们在php中的防止方法许多最常用的就是数据库限制了,当然也有可以直接在客户端进行限制了,具体的来看php重复提交防止示例会有哪些呢?
下面的情况就会导致表单重复提交:
点击提交按钮两次。
点击刷新按钮。
使用浏览器后退按钮重复之前的操作,导致重复提交表单。
使用浏览器历史记录重复提交表单。
浏览器重复的HTTP请求。
网页被恶意刷新。
下面是几种解决办法:
一:利用js设置按钮点击后变成灰色
<form name=form1 method=”POST” action=”/” target=_blank>
<p>
<input type=”text” name=”T1″ size=”20″>
<input type=”button” value=”提交” onclick=”javascript:{this.disabled=true;document.form1.submit();}”>
</p>
</form>
点击完按钮之后变成灰色就不能点击了,用户需要再次提交表单的话就要刷新页面之后重新填写数据再提交了。
二:利用session
在session中???放一个特殊标志。当表单页面被请求时,生成一个特殊的字符标志串,存在session中,同时放在表单的隐藏域里。接受处理表单数据时,检查标识字串是否存在,并立即从session中删除它,然后正常处理数据。
如果发现表单提交里没有有效的.标志串,这说明表单已经被提交过了,忽略这次提交。
这使你的web应用有了更高级的XSRF保护
加载提交的页面时候,生成一个随机数,
$code = mt_rand(0,1000000);
存储在表单的隐藏输入框中:
< input type=”hidden” name=”code” value=””>
在接收页面的PHP代码如下:
<?php
session_start();
if(isset($_POST[‘code’])) {
if($_POST[‘code’] == $_SESSION[‘code’]){
// 重复提交表单了
}else{
$_SESSION[‘code’] =$_POST[‘code’]; //存储code
}
}?>
三:利用cookies
原理和session差不多,但是cookies一旦用户浏览器禁用cookies,这功能就失效了
if(isset($_POST[‘submit’])){
setcookie(“tempcookie”,””,time()+30);
header(“Location:”.$_SERVER[PHP_SELF]);exit();
}
if(isset($_COOKIE[“tempcookie”])){
setcookie(“tempcookie”,””,0);echo “您已经提交过表单”;
}
四:利用header函数跳转
一旦用户点击提交按钮,处理完数据后跳到其他页面
if (isset($_POST[‘submit’])) {
header(‘location:success.php’);//处理数据后,转向到其他页面
}
五:利用数据库来添加约束
直接在数据库里添加唯一约束或创建唯一索引,一旦发现用户重复提交了,直接抛出警告或者提示,或者只处理第一次提交的数据,这是最直接有效的方法,要求前期的数据库设计和架构要考虑周全.
六:Post/Redirect/Get模式
在提交后执行页面重定向,这就是所谓的Post-Redirect-Get (PRG)模式。简言之,当用户提交了表单后,你去执行一个客户端的重定向,转到提交成功信息页面。
if (isset($_POST[‘action’]) && $_POST[‘action’] == ‘submitted’) {
//处理数据,如插入数据后,立即转向到其他页面
header(‘location:submits_success.php’);
}
这能避免用户按F5导致的重复提交,而其也不会出现浏览器表单重复提交的警告,也能消除按浏览器前进和后退按导致的同样问题。
;4. PHP处理表单换行
首先~数据库中是不会储存回车的~所以,你把这个值传到数据库中的时候要用函数进行替换,比如回车换成[BR] 空格换成[NBSP],具体的回车 空格 等数据库不支持的字符 要自己去差回车好像是\n 然后读取的时候 从数据库中取出内容在替换回回车(<br>)就OK了~~~~
5. php表单提交
1 用JS提交表单的方法
首先通过JS判断选择的是哪个项目 然后 在条件里 提交到不同的页面
2 建一个PHP页面 判断提交来的选项里是哪个项目
再通过GET方式将表单的内容传到相应的页面
3 可以将1.PHP和2.PHP 写在一个文件里 然后判断选项来选择处理代码
6. PHP表单提交不同数据到数据库的不同表的不同字段怎么实现
你可以用 PHP 的 MySQLi 或 PDO 库来实现。
首先,你需要使用这些库中的函数连接数据库,然后把表单中的字段值插入到相应的数据表中。
例如,如果你使用 MySQLi,你可以这样写:
$conn = mysqli_connect("hostname", "username", "password", "database_name");
$rwid = $_POST['rwid'];
$rwdj = $_POST['rwdj'];
$rwzb = $_POST['rwzb'];
$sql1 = "INSERT INTO table_a (s) VALUES ('$rwid')";
mysqli_query($conn, $sql1);
$sql2 = "INSERT INTO table_b (d) VALUES ('$rwdj')";
mysqli_query($conn, $sql2);
$sql3 = "INSERT INTO table_c (f) VALUES ('$rwzb')";
mysqli_query($conn, $sql3);
如果你使用 PDO,你可以这样写:
$conn = new PDO("mysql:host=hostname;dbname=database_name", "username", "password");
$rwid = $_POST['rwid'];
$rwdj = $_POST['rwdj'];
$rwzb = $_POST['rwzb'];
$stmt1 = $conn->prepare("INSERT INTO table_a (s) VALUES (:s)");
$stmt1->bindParam(':s', $rwid);
$stmt1->execute();
$stmt2 = $conn->prepare("INSERT INTO table_b (d) VALUES (:d)");
$stmt2->bindParam(':d', $rwdj);
$stmt2->execute();
$stmt3 = $conn->prepare("INSERT INTO table_c (f) VALUES (:f)");
$stmt3->bindParam(':f', $rwzb);
$stmt3->execute();
希望这个答案对你有帮助。
7. php中如何自动填写表单
你在page1.php里面传参数给page2.php应该是采用<FORM>的方式,page1.php的代码结果应该象下面这样:
<form action=page2.php method=post>
用户名:<input type=text name=username>
...其它输入内容,比如密码、性别、年龄等....
<input type=submit value='提交'>
</form>
这样page2.php就能检测到page1提交来的数据,当page2.php需要调用page3.php并且也传递参数的时候,可以采用类似的办法。不过如果你不想把数据显示在page2.php的页面上,那么可以使用<input type=hidden>。另外如果你想page2.php自动调用page3.php,无需用户点确认按钮,那么可以使用javscript来实现,page2.php的代码结构大致应该如下:
echo <<<END
<form name=form0 action=page3.php method=post>
<input type=hidden name=username value='$username'>
</form>
<script type=text/javascript>document.form0.submit();</script>
END;
8. PHP下拉表单菜单
1、新建一个php文件,命名为test.php,用于讲解PHP实现下拉表单菜单。