数据表: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
}
?>

解决方案 »

  1.   

    谢谢专家解答,有个地方没有表述清楚,txt文本内容非表单提交,是由远程客户端直接post过来整个txt文件,例如:
    post的文件名:good.txt
    文件内容:
    001
    王军
    [email protected]
    山东省青岛市滨海路2号请问专家,后台的接收代码是不是有变化?
    使用php怎么模拟post good.txt文件给后台?
    先在此谢过啦
      

  2.   

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

  3.   


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

  4.   

    你是要上傳一個txt文件,然後服務器把txt的內容寫入數據庫對嗎?
      

  5.   

    fdipzone专家好,我没有表述清楚,现重新梳理:txt文件非表单提交,是远程的客户端post过来一个txt文件,并写入mysql数据库。
    例如:post的文件名:good.txt,文件内容
    001
    王军
    [email protected]
    山东省青岛市滨海路2号由于是远程客户端直接post good.txt文件,所以提交的数据没有变量名,而是直接的字符串,是不是不能用$_POST接收?
      

  6.   

    文件流吗?
    下面的例子将完成php post文件流,接收文件流,分析文件流,写入数据库四个步骤
    1.conn.php 用于连接数据库
    2.list.php 用于显示数据库表记录
    3.add.php 用于接收流文件并分析写入数据库
    4.post.ph 用于发送流文件
    5.good.txt 文件,用来发送用,内容是001
    王军
    [email protected]
    山东省青岛市滨海路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<?php
    require "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<?php
    require "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,数据表都会增加一条记录。
      

  7.   

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