[半吊子码农]php post 疑问

2014-11-12 12:47:16 +08:00
 YAFEIML
半路出家,没有系统学过编程,都是边百度边搞,,百度搞不到就还来烦V友们了,别笑啊

get的话很好理解,比如http://xxx.com?a=1&b=2,不管是传过来还是接受都能理解
比如发送是
<a href="/down.php?A=<?php $A1?>&B=<?php $B1?>">连接</a>
接收页面的话$_GET['A'] or $_GET['B'] 就行了

/**
* 发送post请求
* @param string $url 请求地址
* @param array $post_data post键值对数据
* @return string
*/
function send_post($url, $post_data) {

$postdata = http_build_query($post_data);
$options = array(
'http' =>; array(
'method' =>; 'POST',
'header' =>; 'Content-type:application/x-www-form-urlencoded',
'content' =>; $postdata,
'timeout' =>; 15 * 60 // 超时时间(单位:s)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);

return $result;
}

post_data = array(
'username' => 'stclair2201',
'password' => 'handan'
);
send_post('http://blog.xxx.com', $post_data);

那么这个又是怎么传递呢,我执行完这些代码,好像没有任何用处啊,怎么会影响到接受页面呢,而且也没有个按钮什么的觉得好奇怪啊
2821 次点击
所在节点    问与答
15 条回复
66beta
2014-11-12 12:53:11 +08:00
你不是post到http://blog.xxx.com了么,你http://blog.xxx.com的页面里面var_dump($_POST)看看呀
haiyang416
2014-11-12 12:54:46 +08:00
你应该先熟悉一下 HTTP 协议,而不是纠结这几行代码。
xz
2014-11-12 12:56:05 +08:00
用form表单提交数据
接收的话用$_POST['A'] or $_POST['B']就行了
feiyuanqiu
2014-11-12 12:57:41 +08:00
这个函数是用来向http://blog.xxx.com这个地址post数据的,你执行没有反应是因为http://blog.xxx.com这个地址根本就无法访问...
你如果想要看到效果可以在你本地新建一个php文件:
<?php
print_r($_POST);exit;
?>
然后把send_post的第一个参数改成这个文件的访问地址,就行了
var_dump(send_post('http://blog.xxx.com', $post_data));

去下载个php手册吧,遇到不认识的函数去查下手册就行了,这些是很基础的东西
hcymk2
2014-11-12 13:08:12 +08:00
我觉得lz先理清client和server 之后就就应该知道答案。
stackpop
2014-11-12 13:08:15 +08:00
建议楼主先看看 HTTP 协议,了解他最基本的原理再说。
huigeer
2014-11-12 13:13:35 +08:00
var_dump($_REQUEST);
lyragosa
2014-11-12 13:36:00 +08:00
打开chrome,按F12,看request和response里面
zts1993
2014-11-12 13:47:53 +08:00
html <form method="">
Http Get与Post

楼主该好好学习了。。。
elvba
2014-11-12 13:57:28 +08:00
'http' =>; array(
'method' =>; 'POST',
'header' =>; 'Content-type:application/x-www-form-urlencoded',
'content' =>; $postdata,
'timeout' =>; 15 * 60 // 超时时间(单位:s)

这里多了分号。

post_data = array(
'username' => 'stclair2201',
'password' => 'handan'
);

少了 $ 符号。
YAFEIML
2014-11-12 14:39:13 +08:00
@elvba 这些我都纠正了,其实我想说的是怎么通过按钮把这些东西提交到另一个页面
elvba
2014-11-12 16:11:11 +08:00
@YAFEIML
嗯……我想先问一下,你会不会使用表单提交数据?
hcymk2
2014-11-12 16:20:33 +08:00
YAFEIML
2014-11-12 16:59:39 +08:00
@hcymk2 好的,谢谢
hitsmaxft
2014-11-12 17:29:37 +08:00
你所认识的 post 动作都是通过在浏览器里面通过提交表单来实现的. 本质是浏览器帮你发起一次http的post请求.

你这段代码就是自己发起请求, 利用php的 steam 和 file_get_content 相关函数来实现.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/145858

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX