php中登录后跳转回原来要访问的页面实例
最简单的办法就是直接使用php $_SERVER['HTTP_REFERER']
如果我在A.php页面要登录
现在跳到B.php页面,我们只要在b.php中加如下代码
代码如下 | 复制代码 |
$url = $_SERVER['HTTP_REFERER']; |
但是上面的办法会有很多不足,如带参数等等,但在IE浏览器下的话,假如你是通过js的location来跳转的话,那这个值是获取不到的。
下面我做一个全面点的。
首先创建一个方法判断是否登录,如果没登录则
代码如下 | 复制代码 |
protected function checkLogin() { |
然后在需要登录的才能反问的页面调用这个方法:
代码如下 | 复制代码 |
$this->checkLogin(); |
这样如果你没有登录则跳转到登录页面。并带上了你之前页面的url:
然后获取URL提交登录:
代码如下 | 复制代码 |
public function login() { |
模板上获取到url后提交到php后台,登录后跳转到这个url ok搞定
在php数组中分为数组值与数组key,下面小编来给大家总结一下在php中数组值常用的操作方法包括有:数组中加入数值、判断 数组中的数值、删除特定数组值等有需要的同学可参考。php删除特定数组值
首先
代码如下 | 复制代码 |
var_dump($context['linktree']); |
得到
代码如下 | 复制代码 |
array(3) { [0]=> array(2) { ["url"]=> string(52) “http://127.0.0.1/testforum.cityofsteam.com/index.php” ["name"]=> string(28) “City of Steam Official Forum” } [1]=> array(2) { ["url"]=> string(55) “http://127.0.0.1/testforum.cityofsteam.com/index.php#c1″ ["name"]=> string(28) “City of Steam Official Forum” } [2]=> array(2) { ["url"]=> string(62) “http://127.0.0.1/testforum.cityofsteam.com/index.php?board=4.0″ ["name"]=> string(12) “Announcement” } } |
我要去掉中间那个。
用:unset($context['linktree']['1']);
结果:
代码如下 | 复制代码 |
array(2) { |
就少了一个[1]
让这中间的1自动编号:
代码如下 | 复制代码 |
|
但是这种方法的最大缺点是没有重建数组索引,就是说,数组的第三个元素没了。
经过查资料后,原来PHP提供了这个功能,只不过很间接。这个函数是array_splice()。
为了使用方便,我封装成了一个函数,方便大家使用:
代码如下 | 复制代码 |
<?php function array_remove(&$arr, $offset) { } $arr = array('apple','banana','cat','dog'); ?> |
经过测试可以知道,2的位置这个元素被真正的删除了,并且重新建立了索引。
程序运行结果:
代码如下 | 复制代码 |
Array ( [0] => apple [1] => banana [2] => dog ) |
php判断 数组中的数值
有专门的函数,不要用for循环,系统函数能实现快速搜索:
in_array
(PHP 4, PHP 5)
in_array — 检查数组中是否存在某个值
说明
bool in_array ( mixed $needle, array $haystack [, bool $strict] )
在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE。
如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
注意: 如果 needle 是字符串,则比较是区分大小写的。
注意: 在 PHP 版本 4.2.0 之前,needle 不允许是一个数组。
例 292. in_array() 例子
代码如下 | 复制代码 |
<?php $os = array("Mac", "NT", "Irix", "Linux"); if (in_array("Irix", $os)) { echo "Got Irix"; } if (in_array("mac", $os)) { echo "Got mac"; } ?> |
第二个条件失败,因为 in_array() 是区分大小写的,所以以上程序显示为:
Got Irix
例 293. in_array() 严格类型检查例子
代码如下 | 复制代码 |
<?php if (in_array('12.4', $a, true)) { 1.13 found with strict check |
例 294. in_array() 中用数组作为 needle
代码如下 | 复制代码 |
<?php if (in_array(array('p', 'h'), $a)) { 'ph' was found |
向一个数组中加入数值
我们可以通过函数来实现,将一个或多个元素插入到数组中去,也可以直接添加进去。
(1)向数组中直接添加数据,新元素的下标是从原数组下标最大值之后开始的。
(2)array_unshift()函数在数组的开头添加一个或多个元素。
语法如下:
int array_unshift ( array &array, mixed var [,mixed ...]) ;
array_unshift()将传入的元素插入到array数组的开头。元素是作为整体被插入的,传入元素将保持同样的顺序。所有的数值键名将从0开始重新计数,文字键名保持不变。
(3)array_push()函数将一个或多个单元添加到数组的末尾。
语法:
int array_push ( array &array, mixed var [, mixed ...]) ;
array_push()将array当成一个栈,并将传入的变量添加到array的末尾。该函数返回数组新的单元总数。向数组中添加数据的示例如下。
示例:
代码如下 | 复制代码 |
<?php $shili = array (“1″,”2″,”3″,”4″) ; $shili[]=5 ; //直接添加数据 print_r ( $shili ) ; echo “<br>” ; $shili2 = array (“m”,”n”) ; array_unshift ($shili2,”o”,”p”) ; //添加元素于数组的开头 print_r ( $shili2 ) ; echo “<br>” ; $shili3 = array (“Php”) ; array_push ($shili3, “MySQL”,”Apache”) ; //添加元素于数组的末尾 print_r ($shili3) ; ?> 结果为: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) Array ( [0] => o [1] => p [2] => m [3] => n ) Array ( [0] => Php [1] => MySQL [2] => Apache ) |
如果是ajax调用:
//$total,总数(int);$size,每页显示数量(int);$page,当前页(int),$url,链接(string);ajax,js函数名;
$page = new Page(array('total'=>$total,'perpage'=>$size,'nowindex'=>$page,'url' => $url,'ajax' => 'videoGoToPage'));
//变量$page_html为分页的html,参数4是分页的显示样式是第四种
$page_html = $page->show(4);
//然后在页面中加入jQuery包和js代码:
function videoGoToPage(u)
{
if(!u)
{
return false;
}
$.ajax({
type: “POST”,
url: “” + u,
data: “”,
success: function(msg){
//alert( “Data Saved: ” + msg );
$(“#tonglei”).html(msg);
}
});
}
如果不是ajax调用:
//直接去掉数组中'ajax'这项就可以了
$page = new Page(array('total'=>$total,'perpage'=>$size,'nowindex'=>$page,'url' => $url));
$page_html = $page->show(4);
说明:对于url,因为我用的是伪静态,比如我的页面链接是 search-1.html 表示第一页,search-2.html为第二页,那么我的$url变量
就应该写成 $url = 'search-';
分页类会自动补全后面的 “页数 .html”,这里可以根据自己的需要修改分页类。
下面把page.class.php分享给大家
代码如下 | 复制代码 |
<?php /** /** } /** /** /** function nowbar($style='',$nowindex_style='c') /** /** } /** if(isset($_GET[$this->page_name])){ /** /** /** |
php分页类源码下载包:http://file.111cn.net/download/2013/06/08/pageClass.rar
在php中下载文件我们用得最多的是直接使用readfile()函数,readfile()可以实现把服务器源文件给下载,下面我来给大家介绍readfile下载文件的方法与性能介绍例1
代码如下 | 复制代码 |
<?php // 文件将被称为 downloaded.pdf // PDF 源在 original.pdf 中 ?> |
例2
代码如下 | 复制代码 |
$item=trim($_GET['fileName']).".txt"; |
上面只能下载本地函数,如果要下载远程的我们可以如下操作PHP远程下载文件到本地的函数
代码如下 | 复制代码 |
<?php echo httpcopy("/baidu_sylogo1.gif"); function httpcopy($url, $file="", $timeout=60) { if(function_exists('curl_init')) { |
最后分享一个支持多种文件下载的类函数
代码如下 | 复制代码 |
<?php |
购物车类:shop_cart.php
购物车的操作:cart_action.php
首页:index.html
Ajax操作用到了jquery,还有一个jquery插件thickbox
不多说了你可以先看看效果示例
shop_cart.php当然是购物车的核心,但是这个类很简单,因为他又引进了cart_action.php用于对外操作。所以这个类显得相当精简。
购物车类shop_cart.php
代码如下 | 复制代码 |
cart_name = $name; /** /** /** /** /** /** /** /** ?> |
对于cart_action,他实现了shop_cart类与index的中间作用,用于更新,删除,增加商品的操作。
cart_action.php
代码如下 | 复制代码 |
getItemQuantity($_GET['order_code'])+$_GET['quantity']; if ( !empty($_GET['quantity']) ) { if ( !empty($_GET['remove']) ) { header('Location: cart.php'); ?> |
还有就是index.html实现对外的操作,也就是添加操作
代码如下 | 复制代码 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script type="text/javascript"> return false; |
还有就是cart.php这是我们的购物车
代码如下 | 复制代码 |
<?php include('shopping_cart.class.php'); session_start(); $Cart = new Shopping_Cart('shopping_cart'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <head> <title>Shopping Cart</title> <script src="js/jquery-1.2.6.pack.js" type="text/javascript"></script> <script src="js/jquery.color.js" type="text/javascript"></script> <script src="js/cart.js" type="text/javascript"></script> <link href="css/cart.css" rel="stylesheet" type="text/css" media="screen" /> </head> <body> <div id="container"> <h1>Shopping Cart</h1> <?php if ( $Cart->hasItems() ) : ?> <form action="cart_action.php" method="get"> <table id="cart"> <tr> <th>数量</th> <th>商品名称</th> <th>商品编号</th> <th>单价</th> <th>总价</th> <th>删除</th> </tr> <?php $total_price = $i = 0; foreach ( $Cart->getItems() as $order_code=>$quantity ) : $total_price += $quantity*$Cart->getItemPrice($order_code); ?> <?php echo $i++%2==0 ? "<tr>" : "<tr class='odd'>"; ?> <td class="quantity center"><input type="text" name="quantity[<?php echo $order_code; ?>]" size="3" value="<?php echo $quantity; ?>" tabindex="<?php echo $i; ?>" /></td> <td class="item_name"><?php echo $Cart->getItemName($order_code); ?></td> <td class="order_code"><?php echo $order_code; ?></td> <td class="unit_price">$<?php echo $Cart->getItemPrice($order_code); ?></td> <td class="extended_price">$<?php echo ($Cart->getItemPrice($order_code)*$quantity); ?></td> <td class="remove center"><input type="checkbox" name="remove[]" value="<?php echo $order_code; ?>" /></td> </tr> <?php endforeach; ?> <tr><td colspan="2"></td><td colspan="3" id="total_price">您的消费总金额是:¥<?php echo $total_price; ?></td></tr> </table> <input type="submit" name="update" value="保存购物车" /> </form> <?php else: ?> <p class="center">您还没有购物.</p> <?php endif; ?> <p><a href="load.php">加载简单的购物车</a></p> </div> </body> </html> |
相关文章
- 在很多网站用户先访问一个要登录的页面,但当时没有登录后来登录了,等待用户登录成功之后肯定希望返回到上次访问的页面,下面我就来给大家介绍登录后跳转回原来要访问的页...2016-11-25
- 本文章完美的利用了php的curl功能实现模拟登录discuz以及模拟发帖,本教程供参考学习哦。 代码如下 复制代码 <?php $discuz_url = ‘ht...2016-11-25
PHP传值到不同页面的三种常见方式及php和html之间传值问题
在项目开发中经常见到不同页面之间传值在web工作中,本篇文章给大家列出了三种常见的方式。接触PHP也有几个月了,本文总结一下这段日子中,在编程过程里常用的3种不同页面传值方法,希望可以给大家参考。有什么意见也希望大...2015-11-24- 直接为大家介绍制作过程,希望大家可以喜欢。HTML结构该页面切换特效的HTML结构使用一个<main>元素来作为页面的包裹元素,div.cd-cover-layer用于制作页面切换时的遮罩层,div.cd-loading-bar是进行ajax加载时的loading进...2015-10-30
Ruby on Rails实现最基本的用户注册和登录功能的教程
这里我们主要以has_secure_password的用户密码验证功能为中心,来讲解Ruby on Rails实现最基本的用户注册和登录功能的教程,需要的朋友可以参考下...2020-06-30- 这篇文章主要介绍了解决vue刷新页面以后丢失store的数据问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
- 什么是SSO?单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护...2015-11-08
- 什么是SSO?单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护...2015-11-08
- 【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
- 这篇文章主要为大家详细介绍了vue实现用户登录切换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-22
- 对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码。PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题...2015-10-21
- 这篇文章主要介绍了解决vuex数据页面刷新后初始化操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26
- 这篇文章主要介绍了java后台实现js关闭本页面,父页面指定跳转或刷新操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-16
- 这篇文章主要介绍了微信小程序 页面跳转传递值几种方法详解的相关资料,需要的朋友可以参考下...2017-01-16
- 出现phpmyadmin不能登录是我在修改我mysql服务器密码之后导致的,后来百度了相关的原因,原来是修改了mysql密码之后我们还需要在phpmyadmin目录中去修改config.inc.php中...2016-11-25
- 这篇文章主要介绍了JavaScript 获取滚动条位置并将页面滑动到锚点的的相关资料,帮助大家更好的理解和学习使用JavaScript,感兴趣的朋友可以了解下...2021-02-09
- 这篇文章主要介绍了基于JavaScript实现网页倒计时自动跳转代码 的相关资料,需要的朋友可以参考下...2015-12-29
- 这篇文章主要介绍了Nginx根据不同浏览器语言配置页面跳转的方法,包括一个简体繁体的基本判断方法及实际根据中英文跳转的例子,需要的朋友可以参考下...2016-05-22
- 这篇文章主要介绍了vue实现在进行增删改操作后刷新页面,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-05
- 这篇文章主要介绍了Pycharm 跳转回之前所在页面的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-05