httppostphp
A. php模拟HTTP的POST请求时遇到的问题求助
类中 静态方法和静态属性的引用方法例如class Test{ public static $test = 1; public static function test(){ }}可以不用实例化对象直接使用 Test::$test 来取得$test属性的值静态方法调用也同理Test::test(); 直接调用静态方法test
如果我解答楼主觉得不清楚可以自己去后盾人学习,对你学习PHP应该会有帮助,
B. 用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
1.请求头里带用户username和password,到服务器端做验证,通过才继续下边业务逻辑。
优点:防止了服务器端api被随意调用。
缺点:每次都交互用户名和密码,交互量大,且密码明文传输不安全。
2.第一次请求,要求username和password,验证通过,种cookie到客户端,app保存cookie值。
每次请求带上cookie。
点评:和pc上浏览器认证的原理一样了。
以上两点,只有注册用户,才能有权访问业务逻辑,而app有大量的不需要注册数据api。
C. 求助PHP如何POST提交数据
用PHP向服务器发送HTTP的POST请求,代码如下:
<?php
/**
*发送post请求
*@paramstring$url请求地址
*@paramarray$post_datapost键值对数据
*@returnstring
*/
functionsend_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;
}
使用的时候直接调用上面定义的send_post方法:
$post_data=array(
'username'=>'username',
'password'=>'password'
);
send_post('网址',$post_data);
D. 用PHP怎么发送HTTP POST 请求。怎么获得返回结果。
传递? 用 form标签啊 <form action="" method="post"></form>
获取结果用超全局变量 $_post[]
E. 怎么查看php发出的post请求
用PHP向服务器发送HTTP的POST请求,代码如下:
<?php
/**
* 发送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;
}
使用的时候直接调用上面定义的send_post方法:
$post_data = array(
'username' => 'username',
'password' => 'password'
);
send_post('网址', $post_data);
F. http post参数值字符过长,PHP服务端接收数据为空
Windows 环境下的修改方法
第一步:修改在php下POST文件大小的限制
1.用编辑器打开php.ini
找到:max_execution_time =30 ,这个是每个脚本运行的最长时间,单位秒,修改为:
max_execution_time = 150
找到:max_input_time = 60,这是每个脚本可以消耗的时间,单位也是秒,修改为:
max_input_time = 300
找到:memory_limit = 128M,这个是脚本运行最大消耗的内存,根据你的需求更改数值,这里修改为:
memory_limit = 256M
找到:post_max_size = 8M,表单提交最大数据为8M,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的。限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等…这里修改为:
post_max_size = 20M
找到:upload_max_filesize = 2M ,上载文件的最大许可大小 ,修改为:
upload_max_filesize = 10M
第二步: Apache环境中的档案上传大小控制
修改位于Apahce目录下的httpd.conf
添加下面内容
LimitRequestBody10485760
即10M=10*1024*1024,有的文章中提到应改为 600000000
重新启动apache,就可以在设置里看到你要的大小
Linux 环境下的修改方法
vim /etc/php.ini
找到 File Uploadsh区域修改以下几个参数: file_uploads = on;是否允许通过HTTP上传文件的开关。默认为ON即是开 upload_tmp_dir;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹(moodle可以不改)
upload_max_filesize = 8m ;允许上传文件大小的最大值.
找到 Data Handling区域,修改 post_max_size = 8m;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
设上述四个参数后,上传小于8M的文件一般不成问题。但如果上传大于8M的文件,只还得设置以下参数:
在Resource Limits 区域: max_execution_time = 600;每个PHP页面运行的最大时间值(秒),默认30秒 max_input_time = 600;每个PHP页面接收数据所需的最大时间,默认60秒 memory_limit = 8m;每个PHP页面所吃掉的最大内存,默认8M
G. php如何获得http post的数据
在PHP段直接用$_POST这个全局数组来获取,也可以通过$_REQUEST来获取值
H. php获取httpPost(url, params)的数据
var_mp($_POST); 不论他是什么语言,只要遵守http协议就可以通过$_GET或者$_POST获取。
I. 如何获取http post 请求地址
PHP获取POST数据的几种方法:
方法1、最常见的方法是:$_POST['fieldname'];
说明:只能接收Content-Type: application/x-www-form-urlencoded提交的数据。
方法2、file_get_contents("php://input");
说明:
允许读取 POST 的原始数据。
和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。
php://input 不能用于 enctype="multipart/form-data"。
方法3、$GLOBALS['HTTP_RAW_POST_DATA'];
说明:
总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。
此变量仅在碰到未识别 MIME 类型的数据时产生。
J. php怎么响应客户端发送http请求
获取请求代码如下:
#测试网址: http://localhost/blog/testurl.php?id=5
//获取域名或主机地址
echo $_SERVER['HTTP_HOST']."
"; #localhost
//获取网页地址
echo $_SERVER['PHP_SELF']."
"; #/blog/testurl.php
//获取网址参数
echo $_SERVER["QUERY_STRING"]."
"; #id=5
//获取用户代理
echo $_SERVER['HTTP_REFERER']."
";
//获取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
#http://localhost/blog/testurl.php?id=5
//包含端口号的完整url
echo
http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
#http://localhost:80/blog/testurl.php?id=5
//只取路径
$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
echo dirname($url);
#http://localhost/blog
if (in_array("Mark", $people))
{
echo "匹配已找到";
}
else
{
echo "匹配未找到";
}