Submitted by gouki on 2011, January 21, 10:17 PM
在开发的时候会遇到很多问题,比如就象今天,某个项目中用了swfupload,是集成的uploadify(可能打错了)?其他时候都正常,就突然今天出了点问题,因为昨天改版上线,今天被人发现了大的BUG,那就是商品不能上传图片了。这个问题非常严重,因为影响了用户的正常使用,但是我在测试的时候却没有发现任何 问题,照样正常上传,一下子就感觉特郁闷。
最后,客户截图出来,显示security error,然后问了一下,用的是IE。哦。。。我用的是firefox。于是換成IE测试,果然出现这种情况。
找了很多原因,都没有发现问题在哪里,JS啥的都没有出错,原来是正常的,现在是只有FIREFOX正常,这究竟是什么 原因 呢?
排查了很久,而且到最后就差要单独拎出来重写了,意外之中突然发现,URL里有两个斜杠,比如当前的页面可能就是类似 这样:http://www.neatstudio.com//upload/image/?act=upload,在host后面有两个斜杠。难道是这个原因 ?于是把那个斜杠去掉,再测试,结果真的成功了。现在想想,好象很多人都会忽略这个问题,但我就真的发现了,分析了一下源码,发现还真有这可能,因为它源码里是的路径是类似:../js/upload/swfobject.js。在URL里有//的时候,它解析的时候,可能会有偏差(没有仔细看,昨天一夜没睡,发现问题后立马解决了它了),对于路径就进行了处理,比如rtrim()之类的,搞定,开心的回家了。。
然后说一点yii中遇到的问题,比如获取当前controller的ID,就是Yii::app()->controller->id,如果获取当前的action的ID,那就是Yii::app()->controller->action->id。也有人说是$this->actionId,我是没有成功过。。
当然,要记得,在init()方法时在,这些都是获取不到的,毕竟,人家还没有初始化,怎么可能有呢,于是我用的是Yii::app()->getRequest()->getPathInfo(),然后explode一下"/",弹出的最后一个就是action,前面的是controller,看了一下源码,官方获取,好象也是这样获取的。黑黑。。。。
好了,做完记录,睡觉了。。
Tags: swfupload, yii, controller, action
PHP | 评论:0
| 阅读:20813
Submitted by gouki on 2008, December 18, 1:34 PM
有时候我们不得不通过更改form的action来进行提交数据。当然大多数情况下,我们都是通过隐藏的字段来使action得到不同的数据。比如我们form的action是search.php,那么我们都是通过隐藏字段来使我们通过search.php搜索不同值,比如<input type="hidden" name="action" value="article">然后在search.php里面通过$_POST['action']=='article'来知道我们搜索的内容是文章而不是其他。
但如果我们搜索页面并非只有一个入口search.php怎么办?比如我们的全文搜索是search.php,搜索文章是search_article.php,搜索新闻是search_news.php。怎么办?当然我们可以通过下拉框的值来更改FORM的action,就可以了。
简单代码如下,
XML/HTML代码
- <script type="text/javascript">
- <!--
- function redirectForm( which ){
- var searchModeList = document.getElementById('searchMode');
- var actionFile = '';
- for (var i=0,sml=searchModeList.length; i<sml ; i++ ){
- if( i == searchModeList.selectedIndex ){
- actionFile = searchModeList[i].value;
- }
- }
- if( actionFile == ''){
- return false;
- }else{
- actionFileactionFile = actionFile + '.php';
- }
- which.action = actionFile;
- which.submit();
- }
- //-->
- </script>
- <form method="post" action="" onsubmit="return redirectForm(this);" id='searchForm'>
- <select id="searchMode">
- <option value="search" selected="selected">Default</option>
- <option value="search_article" >Article</option>
- <option value="search_news">News</option>
- </select>
- <input type="submit" />
- </form>
Tags: javascript, form, action
Javascript | 评论:1
| 阅读:36427