资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php模拟表单提交数据,php表单提交有哪几种方式

表单提交有那两种方式?PHP如何获得表单提交的数据?

1. 修改php.ini,查找 register_globals,将其值修改为 On。这样就可以像原来一样,例如,提交的表单中包括一个名为"username"的变量,那么在php中就可以直接使用$username来访问该变量。但是,除非你要使用一段旧的代码而考虑到兼容性问题,否则不建议使用该方法。

为桂林等地区用户提供了全套网页设计制作服务,及桂林网站建设行业解决方案。主营业务为成都网站设计、成都网站建设、桂林网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

2. 使用 $HTTP_GET_VARS、$HTTP_POST_VARS数组来访问,例如写成$HTTP_POST_VARS["username"]的形式。不过该方法也不建议采用。

3. (推荐)使用 $_POST、$_GET等数组来访问,例如写成 $_POST["username"]的形式。建议采用这种方法。

(推荐)使用 import_request_variables 函数。该函数将提交内容导入到变量中。

例如 import_request_variables("gp", "rvar_");第一个参数可以选择g,p,c,分别表示导入 GET,POST,COOKIE 变量;第二个参数为导入后的变量前缀。执行上面的语句后即可使用 $rvar_username 来访问提交的 username 变量。使用import_request_variables("gp", "");可以兼容以前的PHP程序。

PHP $_GET 和 $_POST变量是用来获取表单中的信息的,比如用户输入的信息。

PHP表单操作

在我们处理HTML表单和PHP表单时,我们要记住的重要一点是:HTML页面中的任何一个表单元素都可以自动的用于PHP脚本:

如何用PHP实现表单提交

创建go.php,代码如下

?php

@$username = $_POST['name'];

@$usermessage = $_POST['message'];

if(!empty($username) || !empty($usermessage)){

echo "您的姓名:".$username.",您的留言内容:".$usermessage;

}else{

echo 'form action="go.php" method="post"

您的姓名:input type="text" name="name"brbr

留言内容:input type="text" name="message"

button提交/button

/form';

案例截图:

PHP里模拟Post提交是什么意思?

php

表单提交常见的就是post和get

模拟提交就是通过其他技术达到post或get的效果

php

常见的模拟就是curl方式了

作用比如说刷票

每次提交它可以模拟ip

逃过ip限制

图片上传

可以post提交

不用模拟

PHP curl 模拟表单数据流multipart/form-data上传文件

在调用公众号接口".$token."type=".$type;

上传永久素材文件总是返回 "{\"errcode\":41005,\"errmsg\":\"media data missing\"}"

经过多次测试使用下面的方式,可以正常上传

//调用测试

protected static $url;

protected static $delimiter;

protected static $instance;

public function index()

{

    static::$delimiter = uniqid();

$basename = Request::instance()-root();

if (pathinfo($basename, PATHINFO_EXTENSION) == 'php') {

$basename = dirname($basename);

}

    $result=$this-wxAddMaterial($token,$basename.'/upload/images/gnlog.jpg','image');

}

// 新增其他类型永久素材

public function wxAddMaterial($token,$filename='',$type='') {

// 设置请求参数

static::$url = "".$token."type=".$type;

$filePath = str_replace('\\', '/', $filename);

// 发送请求

$imginfo=pathinfo($filePath);

$fields = array(

    'media'=file_get_contents(".".$filePath),

    'filename'=$imginfo["basename"],

);

$res = $this-putPart( $fields);

// 发送请求

return $res;

}

//推送文件流

public function putPart($param) {

$post_data = static::buildData($param);

$curl = curl_init(static::$url);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);

curl_setopt($curl, CURLOPT_HTTPHEADER, [

    "Content-Type: multipart/form-data; boundary=" . static::$delimiter,

    "Content-Length: " . strlen($post_data)

]);

$response = curl_exec($curl);

curl_close($curl);

return $response;

}

//编译请求头格式和数据流

private static function buildData($param){

$data = '';

$eol = "\r\n";

$upload = $param['media'];

unset($param['media']);

foreach ($param as $name = $content) {

    $data .= "--" . static::$delimiter . "\r\n"

        . 'Content-Disposition: form-data; name="' . $name . "\"\r\n\r\n"

        . $content . "\r\n";

}

$data .= "--" . static::$delimiter . $eol

    . 'Content-Disposition: form-data; name="media"; filename="' . $param['filename'] . '"' . "\r\n"

    . 'Content-Type:application/octet-stream'."\r\n\r\n";

$data .= $upload . "\r\n";

$data .= "--" . static::$delimiter . "--\r\n";

return $data;

}

根据自己的实际情况稍作修改

请教用Curl 在php 里面模拟表单提交 文本+文件的写法

$data = array('name' = 'Foo', 'file' = '@d:/test.jpg');

注: PHP 5.5.0起,文件上传建议使用CURLFile代替@

$ch = curl_init('upload.php');

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);

请参考我的博客《PHP cURL实现模拟登录与采集使用方法详解教程》模拟上传文件一节内容。

php curl 模拟post表单向提交数据

不需要抓取数据的话,就只要分析一下对方网站表单需要的字段,然后把action的地址改成对方网站的就提交路径就行了,但如果对方网站提交时要获取cookie的话才需要用curl


本文名称:php模拟表单提交数据,php表单提交有哪几种方式
当前链接:http://cdkjz.cn/article/dsgshdc.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220