> 백엔드 개발 > PHP 튜토리얼 > 如何不让smarty对url中的“&”转成“&”?

如何不让smarty对url中的“&”转成“&”?

WBOY
풀어 주다: 2016-06-23 13:27:01
원래의
1029명이 탐색했습니다.

后台:

function save_sort_handler(){	//-----获取应该返回的地址-----//	$backUrl=R('backUrl','');	if(empty($backUrl) && isset($_SERVER["HTTP_REFERER"])){		$backUrl=$_SERVER["HTTP_REFERER"];	}	$GLOBALS['smarty']->assign("backUrl",$backUrl);	//----------------------//	$GLOBALS['smarty']->display("takeaway_sort.dwt");}
로그인 후 복사


前台:
<script type="text/javascript">			alert('{$backUrl}');			var isComplete={$isComplete};						if(isComplete){				var result="保存成功!";			}			else{				var result="保存失败!";			}			if(confirm(result+" 是否返回?")){				location.href='{$backUrl}';			}			else{				var type='{$type}';				if(type!=''){					location.href="takeaway_sort.php?type={$type}&backUrl={$backUrl}";				}			}		</script>
로그인 후 복사


后台的echo和前台的alert出的$backUrl分别为:


回复讨论(解决方案)

转义一下不行吗?

你的来源url地址是什么样子?是否也是被处理过的。

你在 $GLOBALS['smarty']->assign("backUrl",$backUrl); 之前看一下 $backUrl
echo $backUrl;
应该是已经变了,与 smarty 无关

alert({$backurl|smarty:nodefaults}) 试试

来源地址本身没有错,是经过smarty的填充后才出错的。这个问题解决了,把参数填充在一个input元素的value里面就正确了:

后台:$GLOBALS['smarty']->assign("backUrl",$backUrl); 

前台:

谢谢大家的热心帮忙,你们提供的解决方案我没试。纯散分吧。另外各位有时间可以看看我的这个水贴,关于职业发展的问题:

http://bbs.csdn.net/topics/391823338

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿