php入门教程八(购物车 session操作)
主要是购物车部分代码的讲解,和对session操作的php教程代码演示。
<?php
//
// add_item.php:
// add an item to the shopping cart.
//
session_start();
if (session_is_registered('cart')) {
session_register('cart');
}require 'lib.inc.php'; // loadproducts()
loadproducts(); // load products in $master_products_list
// make $curr_product global
$curr_product = array();// loop through all the products and pull up the product
// that we are interested in
foreach ($master_products_list as $prod_id => $product) {
if (trim($prod_id) == trim($_get[id])) {
$curr_product = $product;
}
}
// register our session
//session_register('cart');
//if(session_is_registered('cart')) echo "已经注册";
if ($_post[ordered]) { // if they have chosen the product
array_push($_session[cart][products], array(trim($_post[id]), $_post[quantity]));
$_session[cart][num_items] += $_post[quantity];
}
?><html>
<head>
<title>
<?php if ($_post[ordered]) { ?>
已经添加 <?php echo $curr_product[name]; ?> 到您的购物篮
<?php } else { ?>
添加 <?php echo $curr_product[name]; ?> 到您的购物篮
<?php } ?>
</title>
</head>
<body>
<?php if ($_post[ordered]) { ?>
<h1><?php echo $curr_product[name]; ?>
添加至购物篮成功</h1><a href="cart.php">返回</a> 商品列表页面.
<?php } else { ?>
<h1>添加 <?php echo $curr_product[name]; ?> 到您的购物篮</h1><form action="<?php echo $php_self; ?>" method="post">
商品名称: <?php echo $curr_product[name]; ?>
<br>
商品说明: <?php echo $curr_product[desc]; ?>
<br>
商品单价: rmb<?php echo $curr_product[price]; ?>
<br>
商品数量: <input type="text" size="7" name="quantity">
<input type="hidden" name="id" value="<?php echo $_get[id]; ?>">
<input type="hidden" name="ordered" value="1"><input type="submit" value="添加至购物栏">
</form>
<?php } ?>
</body>
</html>
php代码
<?php
//
// cart.php: the main file
//
session_start();require 'lib.inc.php';
//判断购物篮会话变量cart是否注册,不注册则注册cart变量
if (session_is_registered('cart')) {
session_register('cart');
}
// 如果购物篮没有初始化,则初始化购物篮
if (!isset($_session[cart][num_items])) {
$_session[cart] = array("num_items" => 0,
"products" => array());
}
// from site_lib.inc, loads the $master_products_list array
loadproducts(); //载入物品列表
?><html>
<head>
<title>演示会话跟踪的购物篮程序</title>
</head><body>
<h1>欢迎进入网上商店</h1>
<?php
if ($_session[cart][num_items]) { // if there is something to show
?>
<h2>当前在购物篮里的物品</h2>
<br>
<table border="2" cellpadding="5" cellspacing="2">
<tr>
<th>
商品名称
</th>
<th>
商品说明
</th>
<th>
单价
</th>
<th>
数量
</th>
<th>
</th>
</tr>
<?php
// loop through the products
foreach ($_session[cart][products] as $i => $product) {
$product_id = $product[0];
$quantity = $product[1];$total += $quantity *
(double)$master_products_list[$product_id][price];
?>
<tr>
<td>
<?php echo $master_products_list[$product_id][name]; ?>
</td>
<td>
<?php echo $master_products_list[$product_id][desc]; ?>
</td>
<td>
<?php echo $master_products_list[$product_id][price]; ?>
</td>
<td>
<form action="change_quant.php" method="post">
<input type="hidden" name="id" value="<?php echo $i; ?>">
<input type="text" size="3" name="quantity"
value="<?php echo $quantity; ?>">
</td>
<td>
<input type="submit" value="数量更改">
</form>
</td>
</tr>
<?php
}
?>
<tr>
<td colspan="2" align="right">
<b>合计: </b>
</td>
<td colspan="2">
rmb:<?php echo $total; ?>
</td>
<td> </td>
</tr>
</table>
<br>
<br>
<?php
}
?><h2>商店待出售的商品</h2>
<br>
<i>
我们提供以下商品待售:
</i>
<br>
<table border="2" cellpadding="5" cellspacing="2">
<tr>
<th>
商品名称
</th>
<th>
商品说明
</th>
<th>
单价
</th>
<th>
</th>
</tr>
<?php
// show all of the products
foreach ($master_products_list as $product_id => $item) {
?>
<tr>
<td>
<?php echo $item[name]; ?>
</td>
<td>
<?php echo $item[desc]; ?>
</td>
<td>
$<?php echo $item[price]; ?>
</td>
<td>
<a href="add_item.php?id=<?php echo $product_id; ?>">
添加至购物篮
</a>
</td>
</tr>
<?php
}?>
</table>
购物车
<?php
//
// change_quant.php:
// change the quantity of an item in the shopping cart.
//
session_start();
if (session_is_registered('cart')) {
session_register('cart');
}// typecast to int, making sure we access the
// right element below
$i = (int)$_post[id];// save the old number of products for display
// and arithmetic
$old_num = $_session[cart][products][$i][1];if ($_post[quantity]) {
$_session[cart][products][$i][1] = $_post[quantity]; //change the quantity
} else {
unset($_session[cart][products][$i]); // send the product into oblivion
}// update the number of items
$_session[cart][num_items] = ($old_num >$_post[quantity]) ?
$_session[cart][num_items] - ($old_num-$_post[quantity]) :
$_session[cart][num_items] + ($_post[quantity]-$old_num);
?><html>
<head>
<title>
数量修改
</title>
</head>
<body>
<h1> 将数量: <?php echo $old_num; ?> 更改为
<?php echo $_post[quantity]; ?></h1>
<a href="cart.php">返回</a> 商品列表页面.
</body>
</html>
打开文件
<?php
//物品数组
$master_products_list = array();
//载入物品数据函数
function loadproducts() {
global $master_products_list;
$filename = 'products.txt';$fp = @fopen($filename, "r")
or die("打开 $filename 文件失败");
@flock($fp, 1)
or die("锁定 $filename 文件失败");//读取文件内容
while ($line = fgets($fp, 1024)) {
list($id, $name, $desc, $price) = explode('|', $line); //读取每行数据,数据以| 格开
$id = trim($id); //去掉首尾特殊符号
$master_products_list[$id] = array("name" => $name, //名称
"desc" => $desc, //说明
"price" => $price); //单价
}@fclose($fp) //关闭文件
or die("关闭 $filename 文件失败");
}
?>
浏览器关闭的过程中,服务器上的 session 数据并没有被销毁,因为这时候没有发送任何请求,服务器那边不会知道是否要销毁 session 的数据。浏览器再次启动重新打开页面的时候,发送的 session id 还是原来的 id,虽然你说没用到 cookie,但是这个 id 就是通过 cookie 发送的。
你可以看看 php.ini 的设置,主要看这两项:
代码如下 | 复制代码 |
session.gc_maxlifetime session.cookie_lifetime |
方法二利用onload函数
代码如下 | 复制代码 |
<body onunload="ajax()"> |
本文章利用用大量的例子来讲解php教程代码对图片操作的讲解。下面来看看一个个实例教程吧.
<?php
$height = 300;
$width = 300;
//创建背景图
$im = imagecreatetruecolor($width, $height);
//分配颜色
$white = imagecolorallocate ($im, 255, 255, 255);
$blue = imagecolorallocate ($im, 0, 0, 64);
//绘制颜色至图像中
imagefill($im, 0, 0, $blue);
//绘制字符串:hello,php
imagestring($im, 10, 100, 120, 'hello,php', $white);
//输出图像,定义头
header ('content-type: image/png');
//将图像发送至浏览器
imagepng($im);
//清除资源
imagedestroy($im);
?>
实例二生成缩略图片
<?php
header("content-type: image/jpeg");
// 载入图像
$imagen1 = imagecreatefromjpeg("imagen1.jpg");
$imagen2 = imagecreatefromjpeg("imagen2.jpg");// 复制图像
imagecopy($imagen1,$imagen2,0,0,0,0,200,150);// 输出jpeg图像
imagejpeg($imagen1);//释放内存
imagedestroy($imagen2);
imagedestroy($imagen1);?>
获取图片大小信息
<?php
$info = getimagesize("imagen2.jpg");
print_r($info);?>
绘制png图片
<?php
//png格式图像处理函数
function loadpng ($imgname) {
$im = @imagecreatefrompng ($imgname);
if (!$im) { //载入图像失败
$im = imagecreate (400, 30);
$bgc = imagecolorallocate ($im, 255, 255, 255);
$tc = imagecolorallocate ($im, 0, 0, 0);
imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
imagestring($im, 4, 5, 5, "error loading: $imgname", $tc);
}
return $im;
}
$imgpng=loadpng("./karte.png");
/* 输出图像到浏览器 */
header("content-type: image/png");
imagepng($imgpng);
?>
给图片加文字
本款教程主要是讲对数据库操作的php代码范例,有php操作mysql数据连接,以及删除数据,查询数据 修改数据,修改更新记录等实例。<?php
//创建 100*30 图像
$im = imagecreate(100, 30);
// white background and blue text
$bg = imagecolorallocate($im, 200, 200, 200);
$textcolor = imagecolorallocate($im, 0, 0, 255);
// write the string at the top left
imagestring($im, 5, 0, 0, "hello world!", $textcolor);
// output the image
header ("content-type: image/jpeg");
imagejpeg ($im);
imagedestroy($im);?>
简单查询数据
代码如下 | 复制代码 |
<?php //显示用户列表
while($row=mysql_fetch_array($result)){ echo "<br><br><br><a href=query.php>继续查询</a>"; |
删除数据
代码如下 | 复制代码 |
<?php $result=mysql_query("select * from userinfo");
while($row=mysql_fetch_array($result)){ }//显示列表的内容 $sql="delete from userinfo where id=".$_get[id]; }//else($id部分) |
修改,更新记录
代码如下 | 复制代码 |
<?php $result=mysql_query("select * from userinfo");
while($row=mysql_fetch_array($result)){ }//显示列表的内容 |
保存记录到数据库
代码如下 | 复制代码 |
<?php |
用php教程实现连接服务器,还有实现连接imap服务器,最后通过php编写的代码来实现上传和下载文件
代码如下 | 复制代码 |
<?php |
邮件发送函数mail
代码如下 | 复制代码 |
<?php mail( "163@111cn.net", "欢迎你", "hello,你好! " ); ?> |
代码如下 | 复制代码 |
<?php //连接imap服务器 $mbox = imap_open("{imap.example.org}", "username", "password", op_halfopen) or die("连接失败: " . imap_last_error()); $list = imap_getmailboxes($mbox, "{imap.example.org}", "*"); if (is_array($list)) { foreach ($list as $key => $val) { echo "($key) "; echo imap_utf7_decode($val->name) . ","; echo "'" . $val->delimiter . "',"; echo $val->attributes . "<br />n"; } } else { echo "imap_getmailboxes 失败: " . imap_last_error() . "n"; } //关闭imap连接 imap_close($mbox); ?> |
连接ftp服务器
代码如下 | 复制代码 |
<?php // 连接ftp服务器 // 上传文件 // 关闭ftp连接 |
ftp文件上传下载功能
代码如下 | 复制代码 |
<?php $file = 'somefile.txt'; $remote_file = 'readme.txt'; // 连接ftp服务器 $conn_id = ftp_connect($ftp_server); //使用用户名、密码登陆 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); //上传文件 if (ftp_put($conn_id, $remote_file, $file, ftp_ascii)) { echo "成功上传 $file 文件n"; } else { echo "上传 $file 文件失败n"; } // 关闭ftp连接 ftp_close($conn_id); ?> |
ftp删除文件
代码如下 | 复制代码 |
<?php $file = 'public_html/old.txt'; // 连接ftp服务器 $conn_id = ftp_connect($ftp_server); // 验证用户名和密码 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // 删除指定文件 if (ftp_delete($conn_id, $file)) { echo "$file 文件删除成功 n"; } else { echo "删除 $file 文件失败n"; } // 关闭ftp连接 ftp_close($conn_id); ?> |
ftp获取远程文件大小
代码如下 | 复制代码 |
<?php $file = 'somefile.txt'; // 连接ftp服务器 $conn_id = ftp_connect($ftp_server); //验证用户名和密码 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); //获取指定文件的大小 $res = ftp_size($conn_id, $file); if ($res != -1) { echo " $file 文件大小为 $res字节"; } else { echo "获取远程文件大小失败"; } //关闭ftp连接 ftp_close($conn_id); ?> |
相关文章
PHP session_start()很慢问题分析与解决办法
本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25- 这篇文章主要为大家详细介绍了ASP.NET购物车的实现过程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
- 这篇文章主要给大家介绍的是关于Lua语言新手入门的简单教程,文中通过示例代码一步步介绍的非常详细,对各位新手们的入门提供了一个很方便的教程,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。...2020-06-30
PHP分布式框架如何使用Memcache同步SESSION教程
本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25- 这篇文章主要为大家详细介绍了JS实现购物车中商品总价的计算 ,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-07
- 这篇文章主要介绍了C#中的session用法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
Python3使用Selenium获取session和token方法详解
这篇文章主要介绍了Python3使用Selenium获取session和token方法详解,需要的朋友可以参考下...2021-02-17- 这篇文章主要为大家详细介绍了React列表栏及购物车组件使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-28
- 这篇文章主要介绍了C#线程入门教程之单线程介绍,本文讲解了什么是进程、什么是线程、什么是多线程等内容,并给出了一个单线程代码示例,需要的朋友可以参考下...2020-06-25
- session和cookie是网站浏览中较为常见的两个概念,也是比较难以辨析的两个概念,但它们在点击流及基于用户浏览行为的网站分析中却相当关键。基于网上一些文章和资料的参阅,及作者个人的应用体会,对这两个概念做一个简单的阐述...2013-09-11
- HTML 首先载入jQuery库文件和jquery.fly.min.js插件。复制代码 代码如下: <script src="jquery.js"></script> <script src="jquery.fly.min.js"></script> 接着,将商品信息html结构布置好,本例中,我们用四个商品并排...2015-03-15
- 这篇文章主要为大家详细介绍了vue实现简单购物车案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-01
- session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们购物车经常使用session来做临时的记录保存哦。使用session保存页面登录信息1、数据库连接...2015-10-21
- 这篇文章主要介绍了Vue使用axios引起的后台session不同操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-14
- 这篇文章主要介绍了CocosCreator入门教程之用TS制作第一个游戏,对TypeScript感兴趣的同学,一定要看一下...2021-04-16
- 在购物网站中,加入购物车的功能是必须的功能,有的网站在用户点击加入购物车按钮时,就会出现该商品从点击出以抛物线的动画相似加入购物车,这个功能看起来非常炫,对用户体验也有一定的提高。下面介绍基于jquery fly插件实现加入购物车抛物线动画效果...2016-04-06
- PHP的session功能,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,以便大家查阅。 1. 错误提示 引用 代...2016-11-25
- 要设置php生存有效时间我们可以利用session_set_cookie_params函数或修改php.ini文件哦,下面小编来介绍一下。 第一种方法:session_set_cookie_params 函数原型 voi...2016-11-25
- 这里主要讲到关于在php教程类的调用,申请明,使用以前各种类的实例方法与操作过程,让你清楚的知道php类的construct destruct clone call wake sleep用法。 简单购物车...2016-11-25
- 这篇文章主要介绍了jQuery使用cookie与json简单实现购物车功能的方法,介绍了jQuery实现购物车的步骤与关键代码,需要的朋友可以参考下...2016-04-18