php接收post数据并写入mysql问题
求专家解答:php如何接收远程post过来的txt文本内容并同时写入mysql数据库呢?求完整代码!合适可加分!
txt文本内容字段格式:
学生id、学生名字、学生邮箱、学生地址
回复讨论(解决方案)
数据表:
CREATE TABLE `student` ( `id` int(10) unsigned NOT NULL auto_increment, `xid` varchar(20) NOT NULL, `name` varchar(20) NOT NULL, `email` varchar(100) NOT NULL, `address` varchar(100) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
postdemo.php
<?php// 连接数据库 $conn=@mysql_connect("数据库ip","帐号","密码") or die(mysql_error()); @mysql_select_db('数据库名',$conn) or die(mysql_error()); $action = isset($_REQUEST['action'])? $_REQUEST['action'] : '';if($action=='add'){ $xid = isset($_POST['xid'])? mysql_escape_string($_POST['xid']) : ''; $name = isset($_POST['name'])? mysql_escape_string($_POST['name']) : ''; $email = isset($_POST['email'])? mysql_escape_string($_POST['email']) : ''; $address = isset($_POST['address'])? mysql_escape_string($_POST['address']) : ''; if($xid=='' || $name=='' || $email=='' || $address==''){ echo 'please input data'; exit(); } $sqlstr = "insert into student(xid,name,email,address) values('".$xid."','".$name."','".$email."','".$address."')"; mysql_query($sqlstr) or die(mysql_error()); header('location:postdemo.php');}else{?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>demo</title> </head> <body> <form name="form1" method="post" action="postdemo.php"> <p>学生id:<input type="text" name="xid"></p> <p>学生名字:<input type="text" name="name"></p> <p>学生邮箱:<input type="text" name="email"></p> <p>学生地址:<input type="text" name="address"></p> <p><input type="hidden" name="action" value="add"><input type="submit" name="b1" value="提交"></p> </form> <?php $sqlstr = "select * from student order by id"; $query = mysql_query($sqlstr) or die(mysql_error()); $result = array(); while($thread=mysql_fetch_assoc($query)){ $result[] = $thread; } if($result){ echo '<table>'; echo '<th>NO</th><th>学生id</th><th>学生名字</th><th>学生邮箱</th><th>学生地址</th>'; foreach($result as $row){ echo '<tr>'; echo '<td>'.$row['id'].'</td>'; echo '<td>'.$row['xid'].'</td>'; echo '<td>'.$row['name'].'</td>'; echo '<td>'.$row['email'].'</td>'; echo '<td>'.$row['address'].'</td>'; echo '</tr>'; } echo '</table>'; } ?> </body></html><?php}?>
谢谢专家解答,有个地方没有表述清楚,txt文本内容非表单提交,是由远程客户端直接post过来整个txt文件,例如:
post的文件名:good.txt
文件内容:
001
王军
wangjun@126.com
山东省青岛市滨海路2号
请问专家,后台的接收代码是不是有变化?
使用php怎么模拟post good.txt文件给后台?
先在此谢过啦
只要是使用post方式提交的数据,都能够使用$_POST['变量名']的方式接收.
<?php$content = file_get_contents('php://input');?>
模拟文件上传?
干嘛非要用文件
用正则匹配找出对应数据
你是要上?一?txt文件,然後服?器把txt的?容?入??????
fdipzone专家好,我没有表述清楚,现重新梳理:txt文件非表单提交,是远程的客户端post过来一个txt文件,并写入mysql数据库。
例如:post的文件名:good.txt,文件内容
001
王军
wangjun@126.com
山东省青岛市滨海路2号
由于是远程客户端直接post good.txt文件,所以提交的数据没有变量名,而是直接的字符串,是不是不能用$_POST接收?
文件流吗?
下面的例子将完成php post文件流,接收文件流,分析文件流,写入数据库四个步骤
1.conn.php 用于连接数据库
2.list.php 用于显示数据库表记录
3.add.php 用于接收流文件并分析写入数据库
4.post.ph 用于发送流文件
5.good.txt 文件,用来发送用,内容是
001王军wangjun@126.com山东省青岛市滨海路2号
假设以上文件都放在根目录,可以用http://localhost/文件名 访问到。
首先创建数据库
CREATE TABLE `student` ( `id` int(10) unsigned NOT NULL auto_increment, `xid` varchar(20) NOT NULL, `name` varchar(20) NOT NULL, `email` varchar(100) NOT NULL, `address` varchar(100) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
conn.php
<?php// 连接数据库 $conn=@mysql_connect("数据库host","帐号","密码") or die(mysql_error()); @mysql_select_db('数据库名',$conn) or die(mysql_error()); ?>
list.php
<?phprequire "conn.php";?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>demo</title> </head> <body> <?php $sqlstr = "select * from student order by id"; $query = mysql_query($sqlstr) or die(mysql_error()); $result = array(); while($thread=mysql_fetch_assoc($query)){ $result[] = $thread; } if($result){ echo '<table>'; echo '<th>NO</th><th>学生id</th><th>学生名字</th><th>学生邮箱</th><th>学生地址</th>'; foreach($result as $row){ echo '<tr>'; echo '<td>'.$row['id'].'</td>'; echo '<td>'.$row['xid'].'</td>'; echo '<td>'.$row['name'].'</td>'; echo '<td>'.$row['email'].'</td>'; echo '<td>'.$row['address'].'</td>'; echo '</tr>'; } echo '</table>'; } ?> </body></html>
add.php
<?phprequire "conn.php";$tmpfile = 'tmp.txt'; // 临时文件,用于保存接收到的文件流$content = $GLOBALS['HTTP_RAW_POST_DATA'];if(empty($content)){ $content = file_get_contents('php://input');}file_put_contents($tmpfile, $content, true); $file = file_get_contents($tmpfile);$data = explode(chr(10), $file); // 分解成数组$xid = mysql_escape_string($data[0]);$name = mysql_escape_string($data[1]);$email = mysql_escape_string($data[2]);$address = mysql_escape_string($data[3]);$sqlstr = "insert into student(xid,name,email,address) values('".$xid."','".$name."','".$email."','".$address."')"; mysql_query($sqlstr) or die(mysql_error());header('location:list.php');?>
post.php
<?php$data = file_get_contents('good.txt'); // 要发送的文件$opts = array( 'http' => array( 'method' => 'POST', 'header' => 'content-type:application/x-www-form-urlencoded', 'content' => $data ));$context = stream_context_create($opts);$url = 'http://localhost/add.php'; // 接收的urlfile_get_contents($url, false, $context);?>
执行步骤如下,访问http://localhost/post.php
然后访问http://localhost/list.php
如果list.php能显示good.txt文件的内容,表示成功,每运行一次post.php,数据表都会增加一条记录。
fdipzone 专家的回复灰常给力,我先试试,晚些时候给分。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在PHP中,应使用password_hash和password_verify函数实现安全的密码哈希处理,不应使用MD5或SHA1。1)password_hash生成包含盐值的哈希,增强安全性。2)password_verify验证密码,通过比较哈希值确保安全。3)MD5和SHA1易受攻击且缺乏盐值,不适合现代密码安全。

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。
