求PHP模拟POST,SESSION实例 自己觉得会了点,可惜碰到个网站还是那么的不知如何下手.希望多看几个实例,以长经验,忘大家不吝赐教.已Google多次,所以希望直接能看到代码回复 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?phpsession_start();include("../config/auth.php");include("../config/smarty_conn.php");include("../config/mysql_conn.php");$gouwuche=$_COOKIE['gouwuche'];$code=$_SESSION['code'];$action=$_POST['action'];$shuru=$_POST['shuru'];$username=$_SESSION['username'];$arr=explode('@',$gouwuche);$n=0;$zje=0;$yjg=0;foreach($arr as $value){ $arr2=explode(',',$value); $arr3[$n]=$arr2; $arr3[$n][10]=$arr3[$n][6]*$arr3[$n][9]; $zje+=$arr3[$n][6]*$arr3[$n][9]; $yjg+=$arr3[$n][5]*$arr3[$n][9]; $n++;}$jiesheng=$yjg-$zje;$i=0;if($action=="submit"){ if($shuru==$code){ foreach($arr3 as $value){ $arr4[$i]=implode(',',$value); $i++; } $gmxx=implode('@',$arr4); $sql="insert into buy set username='$username',xinxi='$gmxx'"; mysql_query($sql); $gouwuxinxi=""; setcookie("gouwuche",$gouwuxinxi,time()+60*60*24); header("location:index.php"); session_destroy(); }else{ $smarty -> assign('cw',"验证码错误,请从新输入!"); }}$smarty -> assign("username",$username);$smarty -> assign("jiesheng",$jiesheng);$smarty -> assign("zje",$zje);$smarty -> assign("book",$arr3);$smarty -> display("checkout.html");?>呃,这是原来做的一个简单的购物结算页面,用的是smarty,不知道是不是你想要的那种~ 为什么要模拟?PHP本来不就有POST和SESSION么?想看示例代码可以下个开源项目看看。 模拟网站POST提交表单信息.用fsockopen或curl的实例 session模拟?这个没接触过.一般就是伪造header,refer,读写cookie,完成表单提交等等.给一段我写的获取ems订单查询的代码.http://blog.sevenight.com/index.php?m=blog&a=show&id=79 //默认session use cookie.简单无验证码的分两步,第一步,post到某个登陆处理页面,获取session的name和id,第二步,利用获取的session信息GET至某个页面。类似以下========================================================================//第1步$conn = fsockopen($host,80,&$errno,$errstr,0);$ps = "user_name=admin&user_pass=123456";$header = "POST /login.php HTTP/1.1\r\n";//post到登陆处理页面$header.= "Host : {$host}\r\n";$header.= "Content-type: application/x-www-form-urlencoded\r\n";$header.= "Content-Length:".strlen($ps)."\r\n";$header.= "Connection:Close\r\n\r\n";$header.= "{$ps}\r\n\r\n";fwrite($conn,$header);while(!feof($conn)){ $c .= fgets($conn,128);}fclose($conn);//echo $c;preg_match('/Set-Cookie\s*:\s*(.[^=]*)\s*=\s*(.[^;]*)/i',$c,$m);//然后获取返回头里的set-cookie信息,即session的信息$sn = $m[1];//name$si = $m[2];//id$c = '';//第2步$conn = fsockopen($host,80,&$errno,$errstr,0);$header = "GET /index.php HTTP/1.1\r\n";//再次GET到某个页面$header.= "Host : {$host}\r\n";$header.= "Content-Type : text/html\r\n";$header.= "Cookie:{$sn}={$si}\r\n";//发送session$header.= "Connection:Close\r\n\r\n";fwrite($conn,$header);while(!feof($conn)){ $c .= fgets($conn,128);}fclose($conn);echo $c;//得到返回头及内容 preg_match('/Set-Cookie\s*:\s*(.[^=]*)\s*=\s*(.[^;]*)/i',$c,$m);//这个写得太烂了,需要观察返回头,session_name默认是SESSIONID,或者某个特定的串,不要用这个正则。 curl和fsockopen都可以..顶一下,研究中.... 是说用session么?简单说就是两点 存、取 每次都先session_start, 比如你要存名字存:session_start(); $_SESSION['name'] = "myname"; 用到的时候就取:session_start(); $name=$_SESSION['name']; php能不能连接远程levelDB啊? php怎么查询出重名用户月总积分 linux下php连接mysql出错 PHP Smarty使用Iframe问题 php上传修改文件后在服务器体现不出改变 关于frame里面的参数传递问题,火急 php论坛生成的文件无法删除? 马上又是一年了,祝该版块越来越热.送出我的最高分. PHP JSON解析 php判断数组问题 谁能帮我找一个批量转换软件 可以像cnzz的utf8转换那样转换中文的 不同子域名共享COOKIE
session_start();
include("../config/auth.php");
include("../config/smarty_conn.php");
include("../config/mysql_conn.php");$gouwuche=$_COOKIE['gouwuche'];
$code=$_SESSION['code'];
$action=$_POST['action'];
$shuru=$_POST['shuru'];
$username=$_SESSION['username'];
$arr=explode('@',$gouwuche);
$n=0;
$zje=0;
$yjg=0;
foreach($arr as $value){
$arr2=explode(',',$value);
$arr3[$n]=$arr2;
$arr3[$n][10]=$arr3[$n][6]*$arr3[$n][9];
$zje+=$arr3[$n][6]*$arr3[$n][9];
$yjg+=$arr3[$n][5]*$arr3[$n][9];
$n++;
}
$jiesheng=$yjg-$zje;$i=0;
if($action=="submit"){
if($shuru==$code){
foreach($arr3 as $value){
$arr4[$i]=implode(',',$value);
$i++;
}
$gmxx=implode('@',$arr4);
$sql="insert into buy set username='$username',xinxi='$gmxx'";
mysql_query($sql);
$gouwuxinxi="";
setcookie("gouwuche",$gouwuxinxi,time()+60*60*24);
header("location:index.php");
session_destroy();
}else{
$smarty -> assign('cw',"验证码错误,请从新输入!");
}
}
$smarty -> assign("username",$username);
$smarty -> assign("jiesheng",$jiesheng);
$smarty -> assign("zje",$zje);
$smarty -> assign("book",$arr3);
$smarty -> display("checkout.html");
?>
呃,这是原来做的一个简单的购物结算页面,用的是smarty,不知道是不是你想要的那种~
想看示例代码可以下个开源项目看看。
用fsockopen或curl的实例
http://blog.sevenight.com/index.php?m=blog&a=show&id=79
========================================================================
//第1步$conn = fsockopen($host,80,&$errno,$errstr,0);
$ps = "user_name=admin&user_pass=123456";
$header = "POST /login.php HTTP/1.1\r\n";//post到登陆处理页面
$header.= "Host : {$host}\r\n";
$header.= "Content-type: application/x-www-form-urlencoded\r\n";
$header.= "Content-Length:".strlen($ps)."\r\n";
$header.= "Connection:Close\r\n\r\n";
$header.= "{$ps}\r\n\r\n";
fwrite($conn,$header);
while(!feof($conn))
{
$c .= fgets($conn,128);
}
fclose($conn);//echo $c;preg_match('/Set-Cookie\s*:\s*(.[^=]*)\s*=\s*(.[^;]*)/i',$c,$m);//然后获取返回头里的set-cookie信息,即session的信息$sn = $m[1];//name
$si = $m[2];//id
$c = '';
//第2步
$conn = fsockopen($host,80,&$errno,$errstr,0);$header = "GET /index.php HTTP/1.1\r\n";//再次GET到某个页面
$header.= "Host : {$host}\r\n";
$header.= "Content-Type : text/html\r\n";
$header.= "Cookie:{$sn}={$si}\r\n";//发送session
$header.= "Connection:Close\r\n\r\n";
fwrite($conn,$header);
while(!feof($conn))
{
$c .= fgets($conn,128);
}
fclose($conn);
echo $c;//得到返回头及内容
简单说就是两点 存、取 每次都先session_start, 比如你要存名字存:
session_start();
$_SESSION['name'] = "myname"; 用到的时候就取:
session_start();
$name=$_SESSION['name'];