PHP6取消了get_magic_quotes_gpc函数
把服务器的PHP版本升到6以后,发现系统彻底空白,猜到是PHP程序运行时出问题了,逐步调试了一下,原来get_magic_quotes_gpc函数的问题,也就是下面这段代码的地方:
if (!get_magic_quotes_gpc()) {
$_REQUEST = array_map( 'addslashes', $_REQUEST);
}
把服务器的PHP版本升到6以后,发现系统彻底空白,猜到是PHP程序运行时出问题了,逐步调试了一下,原来get_magic_quotes_gpc函数的问题,也就是下面这段代码的地方:
if (!get_magic_quotes_gpc()) {
$_REQUEST = array_map( 'addslashes', $_REQUEST);
}
1. session在server端(一般是Apache with PHP module)如何存在的?
默认的,php会将session保存在/tmp目录下,文件名为这个样子:sess_01aab840166fd1dc253e3b4a3f0b8381。每一个文件对应了一个session(会话)。
more /tmp/sess_01aab840166fd1dc253e3b4a3f0b8381 username|s:9:”jiangfeng”;admin|s:1:”0″; #变量名|类型:长度:值
删除这里的session文件,就表示对应的session失效了。
使用以下PDO代码进行参数的模糊查找,结果没有返回数据
$db = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD, $pdo_options);
$query = $database->prepare('SELECT * FROM table WHERE name LIKE "%:name%"');
$query->bindValue(':name', $name, PDO::PARAM_STR);
$query->execute();
while ($results = $query->fetch())
{
echo $results['name'];
}
ASP.NET支持在web.config中直接进行访问权限的管理,具体如下,以下是网站根目录下的web.config代码片段
<configuration> <location path="Styles/Site.css"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location> <system.web> <compilation debug="true" targetFramework="4.0" /> <authentication mode="Forms"> <forms loginUrl="~/Account/Login.aspx" timeout="2880" /> </authentication> <authorization> <allow users="maple,maple2"/> <deny users="*"/> </authorization> </configuration>
MVC出色的地方是优雅的URL格式和代码结构,很实用。
使用过程中遇到一个问题是需要对MVC的请求做统一的token验证,如果验证不过则跳转到制定页面。网上方法不多,不过还是找到了解决办法,即重写控制器的OnActionExecuting方法,在动作执行前进行统一的预处理,实现代码如下:
用C#基于.NET Framework 4.0开发的程序,调试一切正常,但发布后放到正式环境就出现了以下错误
若 要针对 .NET Framework 4.0 或更高版本进行编译,则提供程序选项中“compilerVersion”特性的值必须为“v4.0”或更高版本。若要针对 .NET Framework 3.5 或更低版本编译此 Web 应用程序,则请从 Web.config 文件的 <compilation> 元素中移除 targetFramework 特性。
解决办法:
在网站的Web.config中增加或修改configuration>system.codedom配置节
在C#中用Membership时遇到了这个问题,如下
找不到存储过程 ‘dbo.aspnet_CheckSchemaVersion’
根据提示,通过数据库管理器建立这个存储过程就OK了,这个方法这里不提。但因为数据库是新建的,所以很可能有很多相关的存储过程都没有。于是找到了一下的方法:
运行C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe ASP.NET SQL Server数据库安装向导来进行配置。
通过配置对应的数据库即可,问题解决。
C#用Membership功能时报了这么个错误
找不到存储过程 ‘dbo.aspnet_Membership_GetUserByUserId’
根据提示,很显然数据库里缺少响应的存储过程,用数据库管理器打开对应的数据库执行以下sql语句即可。
class和struct语法几乎相同,但其本质却截然不同:class是引用类型,struct是值类型,也就是说在内存中存储方式有别,由此产生的一系列差异性。
class(类)是面向对象编程的基本概念,是一种自定义数据结构类型,通常包含字段、属性、方法、构造函数、索引器、事件等。在.NET中,所有的类都继承自System.Object类,是一种引用类型,也就是说,当我们new出一个类的实例时,对象保存了该实例实际数据的引用地址,而对象的值保存在托管堆中。
近期评论