phpajax接收php返回值app的数据没有处理返回给app后就成 ? 了

开发APP没有数据怎么办?
(window.slotbydup=window.slotbydup || []).push({
id: '2611110',
container: s,
size: '240,200',
display: 'inlay-fix'
您当前位置: &
[ 所属分类
作者 红领巾 ]
随着智能手机越来越普及、用户对手机软件越发依赖,App市场需求与发展前景也逐渐蓬勃。根据维基百科上的资料,截至2014年8月,Google Play上的应用数量在130万以上;同年9月份,App Store的应用数量同样超过了130万款。
同时,越来越多的企业和个人已经意识到APP的价值,出于对技术的敬畏,很多企业下意识认为开发APP是一个有难度的技术活儿,所以就算有心想开发一个APP来对企业或者产品做宣传、交易,也担心APP的后续的技术支持、内容管理、维护等问题。
现在,是时候打消这种疑虑了。
疑虑1 开发成本高——跨平台开发工具
一款APP至少需要iOS和Android两个版本。人员支出成本相对较高,功能较复杂的开发时间至少需要3-4个月。在Android碎片化如此严重的今天,屏幕分辨率多达上百种,系统版本横跨数十个,屏幕及系统版本的适配给开发者带来了极大的困扰;同时iPhone6和iPhone6 plus以及iOS8.0的出现使得iOS开发也出现了屏幕以及系统版本适配的问题,整个开发周期可能会更久。
目前,国内外有不少跨平台的App开发工具,比如Appcelerator、PhoneGap等,开发者只要编写一次代码,即可同时编译出iOS、Android等平台的App安装包来,并且在各个平台上运行效果一致。国内类似产品【APICloud】,开发者使用标准的HTML、JS和CSS进行App开发,兼容目前市场上流行的所有JS/CSS框架,任何WebApp都可以在APICloud上运行。
疑虑2 没有内容数据——通过第三方获取
没有数据,如何开发APP?通过第三方渠道获取数据是目前相对来说最好的选择。
数据堂于2014年底推出的移动应用大数据云服务【数+】,面向移动应用开发者免费提供实时数据API服务。以美食大数据云服务为例,该服务以数据接口形式提供给APP开发者,开发者可快速调用包括餐厅、菜品、评价、特色服务等信息的实时在线数据。目前美食大数据覆盖近500个城市及地区、200万家餐厅,200万道菜品、3000万次用餐评价,覆盖率达90%。
类似于美食大数据云服务,数+同时还提供丽人、汽车、生活服务、休闲娱乐等行业的大数据云服务。该业务以数据中间件产品为起点,将发展成为综合性的移动开发者数据服务平台。
疑虑3 产品快速迭代
第三方统计报告显示,有17%的APP版本更新的频率是每周,48%的APP版本更新的频率是每月,所以版本的快速迭代是一个成功APP要重视的重要因素之一。
APP客户端的商业使用,已经逐渐普及。不快就等于Die,这就是一个对APP的市场结论,抢占市场先机是第一步。这些跨平台开发工具、数据资源不仅节省了开发时间和资金,更为APP开发者提供了便捷的开发方式,创意很快落地成形,让现实照进梦想。
转载请注明本文标题:本站链接:
分享请点击:
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
人生就像一场舞会,教会你最初舞步的人,却未必能陪你走到散场。
手机客户端
,专注代码审计及安全周边编程,转载请注明出处:http://www.codesec.net
转载文章如有侵权,请邮件 admin[at]codesec.netPHP(ThinkPHP)与手机app之间共享信息的解决思路 - Coding 博客PHP(ThinkPHP)与手机app之间共享信息的解决思路知道了这些存储方式怎么来选择,我就不讲了,这里选用 localstorage(即上面说的web storage)的原因两个:1. 能存储 5M 内的数据2. 能够长久存储 然后,大家要看 了解如何使用localstorage 包含了 PHP 所有的session 信息,包括 session 的各个管理方法。你可能需要先简单了解下 ,我们需要用到的有哪些?我们需要人工控制 session 的话怎么做?
扩展阅读类
扩展阅读类
此方法是 ThinkPHP 使用的 session 管理操作绑定方法。 这也是大多数自定义 session的 使用方法。 扩展阅读 :
ThinkPHP 框架已经写好的
首先ThinkPHP框架封装了下session 的管理操作见
中的 :下面这段代码的核心就
session_set_save_handler(
array(&$hander,&open&),
array(&$hander,&close&),
array(&$hander,&read&),
array(&$hander,&write&),
array(&$hander,&destroy&),
array(&$hander,&gc&));
它定义了用哪个方法来关联session生成/销毁/写入/读出。我们在
可以看到这样一对方法
这两个方法一个是加密 session 会话信息,一个解密 session 会话信息,方便我们直接操作 session 时使用 中有了简单的说明。本文其实也是对他的详细说明。核心的代码就是那个session_decode 和session_id($id)
需要说明有以下几点:1. 将 session 信息保存在数据库中减少了io读写拥堵2. 可以通过 session id 快速定位到数据记录3. 可以通过设置 session 过期时间保证数据库中 session 能够得到长效保存4. 重定义 sessionid 后其实只是将现有的 session 会话改了个名字,你必须将原有的session 信息回复回去5. 客户端需要讲接收到的 token 写入到 localstorage,然后每次发送的时候都作为 body 发送给服务器6. 服务端要在入口页面或者基础类的初始化程序中使用 session 处理7. 服务端使用了这种方式不需要重新造轮子,不需要再写一套自己的信息管理方式,所有信息通过 session 共享,token 也不用特意另行生成,使用默认的 session_id 即可 来读取。
道理都是相同的,我也是一个懒人,之所以使用 ThinkPHP 就是因为这一套是完善的一个东西,用起来比较方便,YII 和 CodeIgniter 也是很方便扩展的,别的框架没用过不太清楚。欢迎大家留言回复至于大家自己写的框架更好扩展了,只需要那个session_set_save_handler这个方法定义下就可以了。so easy!本文主要是用于引导初学者掌握 PHP 中的 session 管理,面向的知识面比较窄,也比较精确,PHP 的东西还是要打架多死记硬背,然后活学活用。以 java python go 等其他语言为后端的,其实也是着重在 session 管理上,可以参考,然后找一下本语言内的 session 方法。您所在的位置: &
关于PHP写APP接口的安全问题探讨(一)
时间: 编辑:菜问 来源:本站整理
在探讨这个问题之前,先要确认一点的是,作为一名互联网Coder,无论你是前端或者后端你都要对http请求要有一定的了解,知道http特性,要清楚的了解http里面的Request与Response是什么,知道为什么网站会存在cookie,session,验证码的意义和必要性。因为探讨APP接口的安全性就是在探讨HTTP请求的安全性;
我一般把APP接口分为三类,普通接口,表单接口,会员接口;本文重点讨论会员接口
一般为GET请求,比如获取新闻列表 GET /index.?module=news&action=list,为了防止采集或者暴力查询,我们PC端一般做如下处理:
防止本站被它站file_get_contents,所以要识别user_agent,如果不是通过浏览器来访问的话直接不给看。
如果别人通过伪造user_agent来访问的话,就通过单位时间ip的访问量来控制抓取方,可以写一套算法,如果再一个ip在前后一分钟多于多少次访问量来处理。但是,会有一种情况,即某个小区或公司内都是使用某一个IP的外网的话,这样搞就会自寻死路,所以还要配合浏览器中的cookie来处理总结: 请求头可以伪造,IP地址可以变更,cookie可以清空,基本上PC端是很难防这个问题的,比如淘宝,点评等大站的数据我也是经常去采的。
那APP端如何处理这个问题呢?我们可以抓点评APP的http请求包来看一下:
GET http://114.80.165.113/mapi/ugcuserfeeds.bin?filtertype=5&userid=&token=a9cdff854d989f61eabf0fc9904eb51ff&start=0 HTTP/1.1
Host: 114.80.165.113
Accept: */*
pragma-appid:
pragma-newtoken: cabf96c8ef2bac73b88f799e49aab4a426d414f994b5f
pragma-token: a9cdff854d989f61eabf0fc9904eb51ff
pragma-dpid: 1942797
pragma-device: 566fe5aeb75a827967fbadba98a4a6
Proxy-Connection: keep-alive
pragma-os: MApi 1.1 (dpscope 7.5.0 iPhone 8.3 iPhone7,1; a0d0)
Accept-Language: zh-cn
network-type: wifi
User-Agent: MApi 1.1 (dpscope 7.5.0 iPhone 8.3 iPhone7,1; a0d0) Paros/3.2.13
当你直接访问http://114.80.165.113/mapi/ugcuserfeeds.bin?filtertype=5&userid=&token=a9cdff854d989f61eabf0fc9904eb51ff&start=0的时候,直接从服务器端给挡住,并返回450错误;PHP的服务器一般为Apache或Nignx,我们也可以在配置项中根据与客户端开发人员约定的一些自定义的Request头信息,比如上面的parama-*,在服务器配置项中可以获取到这些自定义的Request头信息,然后根据是否为约定好的Request信息,如果不是就rewrite到450;
但是,我们通过抓包既可获得全部请求头信息,这时可以完全模拟请求头信息来获取数据;
很多APP最多到此步既可获得该API接口的数据,而且是非常便于处理的on格式,而点评APP到此处直接返回的是一堆看上去是经过压缩的乱码数据:这有点类似于PC端gzip,服务器端返回的是gzip的压缩数据,而浏览器来解压这个gzip来获取真正的数据,然后再显示出来;我不知道点评的这个乱码数据是否也是这个原理,如果是的话,不得不说真的是&棒棒哒&,因为解压的算法是发生在自己的APP端,这不仅保证了数据的安全性,而且还节省带宽流量,加快的数据传输速度。具体是怎么样做的,暂时还不得而知;
即类似html中的from表单,主要是往服务器提交数据的。一般是post方式的http请求,主要的危险是来自于强刷HTTP请求,撑爆数据库;在PC端我们一般通过验证码来解决这个问题,而在APP端,我能想到的也只有通过验证码的方式,只不过PC端的是把验证码存进session,而APP端是存进cache里面;但如果加上验证码的话,在用户体验上肯定会大打折扣,关于这一点肯定有更好的方式解决,具体怎么解决,暂时还不得而知;
所谓会员接口,就是类似/index.php?module=users&action=info&user_id=333的请求,然后服务器端直接根据user_id来做相应的会员操作,这是及其危险的接口处理,等于把当前的会员系统全暴露出来了,只要对方改一下user_id既可操作所有会员对应的接口。一般在PC端,我们是通过加密的cookie来做会员的辨识和维持会话的;但是cookie是属于浏览器的本地存储功能。APP端不能用,所以我们得通过token参数来辨识会员;而这个token该如何处理呢?
首先,先说说在做该接口加密前,我一共经历的四个方案:
方案一与APP端开发人员约定特定的md5组合算法,然后两端比对一下,如果相同就allow,不相同就deny;但是,这也是不安全的,如果APP程序被反编译,这些约定的算法就会暴露,特别是在安卓APP中,有了算法,完全就可以模拟接口请求通过验证;
方案二数据库会员表的password是带上了随机密窜并经过双重加密的md5值;在用户登录的时候,我返回会员相应的uid和password,password虽然是明文的,别人知道也不能登录,毕竟是经过加密的,然后每次请求接口的时候user_id=333&token=aa37e10ceab8a2d5020568f,通过主键uid可以很快的找到当前uid对应的token,然后再来比对;但是这样想法是too yang too simple的,抓包的人虽然不能通过密文密码来登录该会员,然而一旦知道了这个token,除非用户更改密码,否则也可以一直通过这个token来操作该会员的相关接口;
方案三通过对称加密算法,该加密算法对uid+网站公钥进行时效加密,在一定时效内可用。在会员登录成功时,服务器端对该ID加密后返回给客户端,客户端每次请求接口的时候带上该参数,服务器端通过解密认证;但是这样做,也是不安全的。因为,防外不防内,听说这次的携程宕机就是因为内部离职人员的恶意操作。内部不怀好意的人员如果知道相应的算法规则后,就算没有数据库权限,也可以通过接口来操作相关会员;
方案四会员登录的时候请求登录接口,然后服务器端返回给客户端一个token,该token生成的规则是 网站公钥 + 当前uid + 当前时间戳 + 一段随机数双重加密,根据需求决定是把该token放进cache等一段时间自动失效,还是放进数据库(如果要放进数据库的话,单独拎出一张表来,顺便记录用户的登录,登出时间),在用户登出登录的时候改变一下,确保该token只能在用户人为登出登录之间有用。为保安全,应保证让用户在一段时间内自动退出;此方案配合Linux和数据库的权限管理可以防外又防内;
其他接口开发的注意事项
数据格式最好使用JSON格式数据,因为JSON有较好的跨平台性。在生成JSON的时候,要注意json的两种格式:对象(字典) 与 数组;mobile端开发语言中没有类似PHP中的foreach不能遍历对象,只能遍历数组,他们对对象的操作一般都是通过键名去取键值。
不管是成功,还是失败。接口必须提供明确的数据状态信息,并且不能返回NULL,如果返回NULL的话,在IOS端会崩掉。
热门关键字PHP适合做app即时通讯的服务端吗?
最近想写一个Adroid版的即时通讯app,刚好对PHP也会一些,想问下大家PHP适合做即时通讯的服务端吗?有什么优劣之处吗?
按投票排序
swoole!不用解释!!
前段时间裸写了一个PHP部分基于SocketiOS部分是用的SocketRocket主要就是PHP监听端口等待客户端请求,并对请求做出相应的处理客户端则按照连接-登录-发送&接收消息的模式来1、客户端请求连接,服务端给予该连接一个index,返回连接成功2、客户端检测到连接成功后,发送身份信息到服务端登录,若是信息正确,服务端将该账号信息与连接index绑定,返回登录成功3、客户端对某一id账号发送聊天信息,服务端将该聊天信息保存到数据库,同时检索该接收方是否有与之对应的连接index,有则发送聊天信息,接收方会监听到该信息并响应。如果不在线则push notification。同时也会返回发送成功的信息给发送方,以便确认发送成功。用是能用,服务端经常挂掉,后来还是加RESTful后备方案。。。。
哈哈,我们项目上就是用的GatewayWorker写的聊天模块。
等你实现了一个即时通讯的后端后,估计你也没欲望写即时通讯的app了,绝对是看见就吐的程度。php即时通讯服务端可以采用workerman,是一个高性能的php socket服务器框架。在workerman 的基础上又有GatewayWorker,TCP长连接的应用框架,简化你的工作量。不过也就是个地基,还要你自己实现一大堆东西来建房子。如果是为了研究的话,可以写写看。如果你的中心是做出app来,还不如用这些bass服务。例如:都有即时通讯服务提供,接入SDK调调方法就可以了,专心于自己的业务。这些服务商都是有免费版本的,用户少的话基本上不用收费。
必须workerman的GatewayWorker支持多协议、分布式部署、热更新例子文档非常全
如果你要问能不能,答案是能。实际项目中合不合适要对比,要看项目资源,要看团队的选型,还要看领导的心情。你这么问,想必你肯定做过调研比如java,对它们各自的优势有大致了解。根据的经验,我的答案是值得尝试使用php!反正是你自己写,也熟悉的,何不放开撸。
php在消息主动推送那里应该不行 需要客户端轮训询请求 检测是否有新的消息 请求服务器端 然后服务器端响应 因此app需要定时请求服务器 时间的取舍不好做 短了代价太高 长了新消息不及时 可以用一般的java socket就可以 发送udp包 原生socket几句代码就够了 指定地址 指定端口 后台跑一个service监听端口 服务器端写好相应的接受收 nodejs 对socket已经封装了 通信更好写 我的回答可能还有一些错误 自己做过这些 不对的地方欢迎大家指正
以我用php的情况来看,感觉轮询问题不大,数据库操作会是瓶颈,我没做过只是觉得。我用第三方野狗做过感觉 还可以。
做出来了就合适,做不出来就不合适,有些事情吧,你不去做,我不去做,就没人了,要知道,你我都不是个看客,而是时代的参与者
绝对可以,而且很靠谱。最近使用PHP做了两个聊天的项目,一个是APP,一个是H5。我用的是workerman的chat案例改写的,文档很充分,案例也比较多。
已有帐号?
无法登录?
社交帐号登录WebApp是指基于Web的系统和应用,其作用是向广大的最终用户发布一组复杂的内容和功能
你都以小数点去拆分了,必然得到的结果肯定不带有小数点。如果你想带上小数点,那么可以在得到的内容里加上小数点即可即可,因为这些都是先知的,可控的。split一般用在日期()、电话()等一些有规律,拆分后好操作的字符串。
你都以小数点去拆分了,必然得到的结果肯定不带有小数点。如果你想带上小数点,那么可以在得到的内容里加上小数点即可即可,因为这些都是先知的,可控的。split一般用在日期()、电话()等一些有规律,拆分后好操作的字符串。
你还没有登录,请先 登录 或 注册 慕课网账号
只要你学的好,有这个能力,什么项目都能做。小项目比如计算器,飞机大战。。。
大项目比如滴滴打车,QQ。。。
只要你足够优秀,都能做,只是时间问题(⊙o⊙)
只要你学的好,有这个能力,什么项目都能做。小项目比如计算器,飞机大战。。。
大项目比如滴滴打车,QQ。。。
只要你足够优秀,都能做,只是时间问题(⊙o⊙)
你还没有登录,请先 登录 或 注册 慕课网账号
把这段指定明确了。这个是加载springmvc容器(子容器),要加载spring上下文容器(父容器)是直接在init-param里面配置的。下面我贴出我的常用配置信息。你对比一下[ 查看全部 ]
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:spring/spring-*.xml&/param-value&
&/init-param&把这段指定明确了。&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:spring/spring-web.xml&/param-value&
&/init-param&这个是加载springmvc容器(子容器),要加载spring上下文容器(父容器)是直接在init-param里面配置的。下面我贴出我的常用配置信息。你对比一下&?xml version="1.0" encoding="UTF-8"?&
&web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="/xml/ns/javaee"
xsi:schemaLocation="/xml/ns/javaee
/xml/ns/javaee/web-app_2_5.xsd"
id="hanson" version="2.5"&
&display-name&hanson-manager&/display-name&
&!--加载spring上下文容器--&
&!-- context-param标签 作用:该元素用来声明应用范围(整个WEB项目)内的上下文初始化参数。
param-name 设定上下文的参数名称。必须是唯一名称 param-value 设定的参数名称的值 --&
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:spring/applicationContext-*.xml&/param-value&
&/context-param&
&!--字符编码过滤器--&
&filter-name&EncodingFilter&/filter-name&
&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&UTF-8&/param-value&
&/init-param&
&!--实现restful风格--&
&filter-name&HiddenHttpMethodFilter&/filter-name&
&filter-class&org.springframework.web.filter.HiddenHttpMethodFilter&/filter-class&
&filter-mapping&
&filter-name&EncodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&filter-mapping&
&filter-name&HiddenHttpMethodFilter&/filter-name&
&url-pattern&/&/url-pattern&
&/filter-mapping&
&!--spring上下文监听器--&
&listener&
&listener-class&org.springframework.web.context.ContextLoaderListener&/listener-class&
&/listener&
&!--配置前端控制器--&
&servlet-name&hanson-manager&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:spring/mvc-dispatcher-servlet.xml&/param-value&
&/init-param&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&hanson-manager&/servlet-name&
&url-pattern&/&/url-pattern&
&/servlet-mapping&
&welcome-file-list&
&welcome-file&index.jsp&/welcome-file&
&/welcome-file-list&
&/web-app&
你还没有登录,请先 登录 或 注册 慕课网账号
慕课网的视频不允许下载的,你可以下载手机客户端然后就可以缓存了
慕课网的视频不允许下载的,你可以下载手机客户端然后就可以缓存了
你还没有登录,请先 登录 或 注册 慕课网账号
没有规定,建议直接学习C#或者java,有时间再看点C,毕竟不做底层开发了解
c即可。c#和java都是面相对象需要,选择一个语言为主,
没有规定,建议直接学习C#或者java,有时间再看点C,毕竟不做底层开发了解
c即可。c#和java都是面相对象需要,选择一个语言为主,
你还没有登录,请先 登录 或 注册 慕课网账号
面试最重要的几点:问题回答的流畅度:一个问题你结结巴巴的回答人家肯定不要你的问题回答的准确度:一句简洁明了的话比啰嗦半天才表达清楚的要好重点问题的回答思路:ajax,json,cookie等问题都是企业常问的,这些是重点中的重点,需要思路清晰的表达出来会有面试官:以上做好了
最后就是忽悠,忽悠好了你就么问题了!
面试最重要的几点:问题回答的流畅度:一个问题你结结巴巴的回答人家肯定不要你的问题回答的准确度:一句简洁明了的话比啰嗦半天才表达清楚的要好重点问题的回答思路:ajax,json,cookie等问题都是企业常问的,这些是重点中的重点,需要思路清晰的表达出来会有面试官:以上做好了
最后就是忽悠,忽悠好了你就么问题了!
你还没有登录,请先 登录 或 注册 慕课网账号
struts.xml和web.xml为什么都是未保存状态
struts.xml和web.xml为什么都是未保存状态
你还没有登录,请先 登录 或 注册 慕课网账号
学的基础就是为了工作需求,新手刚来上班,就先琢磨他们的代码学习,学不懂就问看起来友好的同事。这个过程都是会有的,加上你之前就是有基础,扎实不扎实也无从考量,就从工作上继续反思和学习
学的基础就是为了工作需求,新手刚来上班,就先琢磨他们的代码学习,学不懂就问看起来友好的同事。这个过程都是会有的,加上你之前就是有基础,扎实不扎实也无从考量,就从工作上继续反思和学习
你还没有登录,请先 登录 或 注册 慕课网账号
先设置body的font-size为62.5%。然后所有数值不用px,都改用rem,例如12px改为0.12rem,这样就可以适配手机屏幕了。望采纳
先设置body的font-size为62.5%。然后所有数值不用px,都改用rem,例如12px改为0.12rem,这样就可以适配手机屏幕了。望采纳
你还没有登录,请先 登录 或 注册 慕课网账号
如果目前有自己的技能,可以用技能养活自己,用课余时间来学习,牛人总是在民间。望采纳哦!
如果目前有自己的技能,可以用技能养活自己,用课余时间来学习,牛人总是在民间。望采纳哦!
你还没有登录,请先 登录 或 注册 慕课网账号
/link?url=K-yzIpnfHN0svRBOUgsavmWWgL2UAmuf2-8wRkda4pumcugaS42BcH1EjmIkR01C6GOOlHERKWi5znt6nlVDCIvVnSbLJPPWm_7e3fsmCIW
/link?url=K-yzIpnfHN0svRBOUgsavmWWgL2UAmuf2-8wRkda4pumcugaS42BcH1EjmIkR01C6GOOlHERKWi5znt6nlVDCIvVnSbLJPPWm_7e3fsmCIW
你还没有登录,请先 登录 或 注册 慕课网账号
你好,这一句有问题:localhost:8080/hello/mvc冒号应该是英文的冒号,像这样:localhost:8080/hello/mvc可以试试看。望采纳!
你好,这一句有问题:localhost:8080/hello/mvc冒号应该是英文的冒号,像这样:localhost:8080/hello/mvc可以试试看。望采纳!
你还没有登录,请先 登录 或 注册 慕课网账号
给你看几篇手记,关于前端面试的:/article/7541 /article/4379/article/1030 /article/5623
给你看几篇手记,关于前端面试的: /article/4379 /article/5623
你还没有登录,请先 登录 或 注册 慕课网账号
错误语句是 checkcode = checkcode.toUpperCase();
错误语句是 checkcode = checkcode.toUpperCase();
你还没有登录,请先 登录 或 注册 慕课网账号
不关客户端的事,是服务器端的判断条件写错了,导致没有正确的接收
不关客户端的事,是服务器端的判断条件写错了,导致没有正确的接收
你还没有登录,请先 登录 或 注册 慕课网账号
推荐一本书《maven实战》
推荐一本书《maven实战》
你还没有登录,请先 登录 或 注册 慕课网账号
和后台服务器分离,搭建资源服务器。分担访问压力。^_^。望采纳。不懂可追问。
和后台服务器分离,搭建资源服务器。分担访问压力。^_^。望采纳。不懂可追问。
你还没有登录,请先 登录 或 注册 慕课网账号
主要的文件夹就这么多,其他的文件夹要根据项目内容来定了[ 查看全部 ]
用来存放静态文件
用来存放引用的文件
用来存放手机版页面
用来存放后台页面主要的文件夹就这么多,其他的文件夹要根据项目内容来定了
你还没有登录,请先 登录 或 注册 慕课网账号
在你租用的服务器上安装tomcat,jre。把项目放到tomcat目录下的webapp下,设置好环境变量,到tomcat的bin目录下执行startup启动tomcat服务器
在你租用的服务器上安装tomcat,jre。把项目放到tomcat目录下的webapp下,设置好环境变量,到tomcat的bin目录下执行startup启动tomcat服务器
你还没有登录,请先 登录 或 注册 慕课网账号
首页上一页
10858人关注
Bootstrap是Twitter推出的一个开源的用于前端开发的工具...
4657人关注
SQL Server 是Microsoft 公司推出的关系型数据库管...
7710人关注
大数据(big data,mega data),或称巨量资料,指的是...
本月最佳回答网友
Copyright (C)
All Rights Reserved | 京ICP备 号-2

我要回帖

更多关于 php接收app上传文件 的文章

 

随机推荐