Table of Contents
回复讨论(解决方案)
Home Backend Development PHP Tutorial php接收post数据并写入mysql问题

php接收post数据并写入mysql问题

Jun 23, 2016 pm 01:47 PM

求专家解答: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 ;
Copy after login
Copy after login


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}?>
Copy after login

谢谢专家解答,有个地方没有表述清楚,txt文本内容非表单提交,是由远程客户端直接post过来整个txt文件,例如:
post的文件名:good.txt
文件内容:
001
王军
wangjun@126.com
山东省青岛市滨海路2号

请问专家,后台的接收代码是不是有变化?
使用php怎么模拟post good.txt文件给后台?
先在此谢过啦

只要是使用post方式提交的数据,都能够使用$_POST['变量名']的方式接收.

<?php$content = file_get_contents('php://input');?>
Copy after login

模拟文件上传?

干嘛非要用文件

用正则匹配找出对应数据

你是要上?一?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号
Copy after login

假设以上文件都放在根目录,可以用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 ;
Copy after login
Copy after login


conn.php
<?php// 连接数据库  $conn=@mysql_connect("数据库host","帐号","密码")  or die(mysql_error());  @mysql_select_db('数据库名',$conn) or die(mysql_error());  ?>
Copy after login


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>
Copy after login


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');?>
Copy after login


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);?>
Copy after login


执行步骤如下,访问http://localhost/post.php
然后访问http://localhost/list.php
如果list.php能显示good.txt文件的内容,表示成功,每运行一次post.php,数据表都会增加一条记录。

fdipzone 专家的回复灰常给力,我先试试,晚些时候给分。

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Working with Flash Session Data in Laravel Working with Flash Session Data in Laravel Mar 12, 2025 pm 05:08 PM

Laravel simplifies handling temporary session data using its intuitive flash methods. This is perfect for displaying brief messages, alerts, or notifications within your application. Data persists only for the subsequent request by default: $request-

PHP Logging: Best Practices for PHP Log Analysis PHP Logging: Best Practices for PHP Log Analysis Mar 10, 2025 pm 02:32 PM

PHP logging is essential for monitoring and debugging web applications, as well as capturing critical events, errors, and runtime behavior. It provides valuable insights into system performance, helps identify issues, and supports faster troubleshoot

cURL in PHP: How to Use the PHP cURL Extension in REST APIs cURL in PHP: How to Use the PHP cURL Extension in REST APIs Mar 14, 2025 am 11:42 AM

The PHP Client URL (cURL) extension is a powerful tool for developers, enabling seamless interaction with remote servers and REST APIs. By leveraging libcurl, a well-respected multi-protocol file transfer library, PHP cURL facilitates efficient execution of various network protocols, including HTTP, HTTPS, and FTP. This extension offers granular control over HTTP requests, supports multiple concurrent operations, and provides built-in security features.

Simplified HTTP Response Mocking in Laravel Tests Simplified HTTP Response Mocking in Laravel Tests Mar 12, 2025 pm 05:09 PM

Laravel provides concise HTTP response simulation syntax, simplifying HTTP interaction testing. This approach significantly reduces code redundancy while making your test simulation more intuitive. The basic implementation provides a variety of response type shortcuts: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

12 Best PHP Chat Scripts on CodeCanyon 12 Best PHP Chat Scripts on CodeCanyon Mar 13, 2025 pm 12:08 PM

Do you want to provide real-time, instant solutions to your customers' most pressing problems? Live chat lets you have real-time conversations with customers and resolve their problems instantly. It allows you to provide faster service to your custom

Explain the concept of late static binding in PHP. Explain the concept of late static binding in PHP. Mar 21, 2025 pm 01:33 PM

Article discusses late static binding (LSB) in PHP, introduced in PHP 5.3, allowing runtime resolution of static method calls for more flexible inheritance.Main issue: LSB vs. traditional polymorphism; LSB's practical applications and potential perfo

Customizing/Extending Frameworks: How to add custom functionality. Customizing/Extending Frameworks: How to add custom functionality. Mar 28, 2025 pm 05:12 PM

The article discusses adding custom functionality to frameworks, focusing on understanding architecture, identifying extension points, and best practices for integration and debugging.

See all articles