php的get方法
1. php中Get方法跟Post方法的区别
php中Get方法跟Post方法的区别
php——get方法 :
这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,这个方法不用手工的去调用,因为也可以把这个方法做成私有的方法,是在直接获取私有属性的时候对象自动调用的。
因为私有属性已经被封装上了,是不能直接获取值的,但是如果你在类里面加上了这个方法,在使用“echo$p1->name”这样的语句直接获取值的时候就会自动调用__get($name)方法,将属性name传给参数$name,通过这个方法的内部执行,返回传入的.私有属性的值。
如果成员属性不封装成私有的,对象本身就不会去自动调用这个方法。
php——post方法 :
这个方法用于传送数据,用法与get方法类似,但有区别。
区别 :
Get方法在超链接后边紧跟要传递的参数对于用户是可见的如:%D6%A3%D6%DD%B4%F3%D1%A7&fr=index&ie=utf-8
而Post方法传递的参数是不可见的。
GET是从服务器上获取数据;POST是向服务器传送数据。
在客户端,GET通过URL提交数据,数据在URL中可见;POST把数据放在form的数据体内提交。
GET提交的数据最多只有1024字节;POST提交的数据量无限制。
由于使用GET时,参数会显示在地址栏上,而POST不会,所以,如果这些数据是非敏感数据,那么使用GET;如果包含敏感数据,为了安全,用POST方法。
;2. php发送get,post请求的几种方法
POST方法比较适合用于发送一个保密的(比如信用卡号)或者比较大量的数据到服务器,但速度慢。而Get方法会将所要传输的数据附在网址后面,然后一起送达服务器,因此传送的数据量就会受到限制且不安全,但是执行效率却比 Post方法好。具体来说如下:
1、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
2、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
3、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。
4、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
5、Get是Form的默认方法。
3. PHP发送get、post请求的6种方法简明总结
探讨PHP发送GET、POST请求的六种方法,我们逐步解析每个步骤和注意事项。
首先,使用file_get_contents函数配合URL参数进行GET请求,这是最直观的方法。
其次,通过使用fopen函数结合URL打开连接,同样实现GET请求,这种方式提供了更多的操作可能。
接着,以file_get_contents函数为主体,我们可以实现POST请求,只需修改调用方式。
进一步,fsockopen函数可以打开URL连接,获取完整数据,包括头部和主体信息,但使用前确保PHP.ini中的allow_url_fopen选项已开启。
紧接着,通过fsockopen函数并以POST方式获取完整数据,包括头部和主体信息,同样需要PHP.ini设置的配合。
最后,利用curl库实现请求,使用前检查PHP.ini中是否启用了curl扩展,这是现代PHP开发中的高效选择。
4. php面试题get和post的区别
1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url 后,如http://www.domain.com/test.asp?name=51js&password=51js,数据都会直接显示在 url 上,就像用户点击一个链接一样;Post 方法通过 HTTP post 机制,将表单内各字段名称与其内容放置在 HTML 表头(header)内一起传送给服务器端交由 action 属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读出并加以处理
2、 Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容
3、Get 方式传输的数据量非常小,一般限制在 2 KB 左右,但是执行效率却比 Post 方法好;而 Post 方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击,根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节
建议:除非你肯定你提交的数据可以一次性提交,否则请尽量用 Post 方法
4、Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框
建议:出于安全性考虑,建议最好使用 Post 提交数据
***********************************
在B/S应用程序中,前台与后台的数据交互,都是通过HTML中Form表单完成的。Form提供了两种数据传输的方式——get和post。虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响。虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一些差异,但是了解二者的差异在以后的编程也会很有帮助的。
Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。二者主要区别如下:
1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。
2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。
5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
6、Get是Form的默认方法。
*.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。
*.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.
*.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。
网页表单当中的get方式和post方式的区别
1、get方式可传递的数据量有限,大约是2K左右,而post在iis5当中则达到100k,一般人们可以默认post是无限制的;
2、get方式在提交帐号密码等表单时不如post方式安全。在get提交表单以后浏览器的url会将你提交的表单参数全部显示在地址栏当中,而且可以通过机器的缓存来直接查看到各项参数;而post方式则不会;
3、get方式在后台处理页面用Request.QueryString接收各个参数;而post则用Request.Form获取;
4、get方式会忽略<form action="a.asp?a=a"里边的"a=a"这个参数;而post方式则不会
5. php Curl的get和post方法
get方法
function http_get($url)
{
$oCurl = curl_init();
if (stripos($url, "https://") !== FALSE) {
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
//curl_setopt($oCurl, CURLOPT_SSLVERSION, 1);
//CURL_SSLVERSION_TLSv1
}
curl_setopt($oCurl, CURLOPT_URL, $url);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
$sContent = curl_exec($oCurl);
$aStatus = curl_getinfo($oCurl);
curl_close($oCurl);
if (intval($aStatus["http_code"]) == 200) {
return $sContent;
} else {
return false;
}
}
post方法
// curlpost请求
function http_post($url, $data = NULL, $json = false)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
if (!empty($data)) {
if ($json && is_array($data)) {
$data = json_encode($data);
}
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
if ($json) { //发送JSON数据
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt(
$curl,
CURLOPT_HTTPHEADER,
array(
'Content-Type: application/json; charset=utf-8',
'Content-Length:' . strlen($data)
)
);
}
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($curl);
$errorno = curl_errno($curl);
if ($errorno) {
return array('errorno' => false, 'errmsg' => $errorno);
}
curl_close($curl);
return json_decode($res, true);
}
6. PHP的GET用法
先来解决你的问题,再来详细讨论GET的详细解释:
因为你的show.php是GET的目标网页,那么就在这个目标网页中加入如下代码即可实现你所要求的功能:
echo $_GET['id'];
下面我们针对GET进行一下详细的解释来加深你对GET的理解:
GET是网页传值常用的一种方式,它能够将紧跟在域名后第一个问号后的值或者&符号后面的值以GET数组的形式接收进页面,用几个实例看一看:
http://www..com/.php?name=4
这个域名就需要在.php中出现这样的语句就可以取到那个数值4:
$_GET[name];
http://www..com/sosuo.php?id=6&ppt=lost&time=last
在这种情况下,在sosuo.php页面中加入如下代码便可以得到三个值:
$_GET[id];//得到数字6
$_GET[ppt];//得到字符串lost
$_GET[time];//得到字符串last
以上的例子就是php中接收GET传值的方法。
那么,除了自行写域名进行传值以外,还有没有其它的方法进行GET传值呢?答案是有的,最为典型的方法是使用form表单,再看下面的例子:
<form action="let.php" method="get" name="form">
<input name="name" type="text" value="12345>" />
<input name="haha" type="submit" value="submit" />
</form>
这是在html中最为常见的一种表单,出现在一些要求用户输入的地方,这里面总计有两个input,那么当点击“submit”这个按钮之后,表单会自动在域名中生成类似上述例子的写法:
let.php?name=12345&haha=submit
这个时候,根据上面所讲过的方法,想必你一定知道如何使用它了吧?这种方法经常出现在php的页面传值中。换个说法,就是两个页面之间(或者自身页面取值)时经常使用的一种传值方法。
除此之外,还有POST传值方式、SESSION和COOKIE传值几种方法,但除GET和POST之外,其它传值方式应尽量避免使用。
以上这些都是刚刚接触php时在头脑中比较模糊的一些概念,还是建议你进行一下系统的学习,html、域名、js甚至是和其它语言之间进行传值的方式也将随着你系统学习的深入渐渐清晰起来。
最后祝你学习成功。
7. 复习本 03 PHP中post和get的区别
GET是HTTP中最原始的请求方式,在网页中点击一个超级链接或在地址栏输入一个URL都会发送一个GET请求。在GET请求中,数据是后缀在URL后面来发送的。
GET方法的本意就是下载(与其对应的是上传方法PUT),因此并不是专门用于传递数据的,它将请求数据全部经过URL编码后缀在请求资源的后面,这样一来,当数据很多时URL就会变得很长——但这并不是问题的所在,问题所在是一些WEB浏览器或服务器程序会限制这行字符串的长度。这时,就需要用到 POST方法了。
顾名思义,POST方法的主要用途就是“传递”数据,它将数据放在所有请求标题的后面上传,这样一来,无论有多少数据上传都不成问题了(这样请求数据的大小之取决于WEB服务允许的尺寸了)。通常来说,对于表单数据如无特别需要都使用POST方法来上传,这样就无须去关心具体上传数据的尺寸了。
区别:
1. get是从服务器上获取数据;
post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的action属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到;
post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML header内一起传送到action属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值;
对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB;
post传送的数据量较大,一般被默认为不受限制。
5. get执行效率却比post方法好;
post安全性比get较高(包含机密信息的话,建议用Post数据提交方式)。
6. 在做数据查询时,建议用get方式;
在做数据添加、修改或删除时,建议用post方式;