我一直在阅读并询问有关SQL注入安全查询的问题,每个人都说我应该使用PDO,所以我只启用了我的MYSQL PDO扩展并进行了简单的查询.
所以这是我的代码:
public static function Add($catName, $catDescr = "", $catImgURL = "", $catSubLevel = 0, $catSubID = 0)
{
try
{
include_once "db_config.php";
$DBH = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
$STH = $DBH->prepare("INSERT INTO cat (catName, catDescr, catImg, catSubLevel, catSubID)
VALUES ('$catName', '$catDescr', '$catImgURL', $catSubLevel, $catSubID)");
$STH->execute();
}
catch (PDOException $e)
{
echo $e->getMessage();
}
}
Run Code Online (Sandbox Code Playgroud)
所以一切正常并且看似安全,但是当我做这样的事情时:
Cat::Add("Test Cat", "' OR 1==1 --");
Run Code Online (Sandbox Code Playgroud)
它给了我
警告:PDOStatement :: execute()[pdostatement.execute]:SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误; 检查与MySQL服务器版本对应的手册,以便在第25行的www\mCat.php第2行'== 1 - ','',0,0)附近使用正确的语法
我想这是因为我添加$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); …
我在使用Entity Framework的所有项目中使用POCO方法.这一切都很好,但我有一个问题:它在我的SQL Express上创建数据库,而不是我希望它将我的数据库存储在App_Data文件夹中的*.mdf文件中.
如果我有分区height: 100px;并且它包含一个链接 - 我可以使链接填充分区的高度而不用硬编码值吗?
<div><a href="#">hello</a></div>
div {
height: 100px;
width: 100px;
background: red;
}
a {
background: green;
height: 100%; /* This does not work. Is it possible to set this height to 100% of container? */
}
Run Code Online (Sandbox Code Playgroud)
我有个问题.我希望我footer能够在我的页面中处理其他所有可能的事情.诀窍是,我使用的广场插件,它有它自己的风格,因为即使我把某种原因,z-index: 99999;我footer现在还没有在上面.
这是galleria容器,插件的主要部分.
.galleria-container {
overflow: hidden;
width: 960px; /* This value is changed by JS */
height: 520px; /* This value is changed by JS */
min-width: 960px;
}
Run Code Online (Sandbox Code Playgroud)
这是我的页脚容器
#footer
{
z-index: 9999;
width: 700px;
height: 500px;
position: absolute;
background-color: aqua;
}
Run Code Online (Sandbox Code Playgroud)
哦,所以当我加载我的网站它很好,我可以看到我的页脚,但当我调整窗口,从而执行此代码,它再次隐藏.
$(".galleria-container").css("width", $(window).width());
$(".galleria-container").css("height", $(window).height());
Run Code Online (Sandbox Code Playgroud) 我需要创建一个包含多个类对象的数组.
例
class baseClass
{
//
};
class first : baseClass
{
//
};
class second : baseClass
{
//
};
Run Code Online (Sandbox Code Playgroud)
如何创建可以在其中保存first和/或second对象的数组?
这对我来说有点像家庭任务,所以我被迫使用数组,我已经搜索并知道它是用升级库来完成的,但我在这里没有选择......
我正在使用本地化actionfilterattribute,它工作得很好,除了我需要它重定向/到/en状态代码301而不是302.我怎样才能解决这个问题?
public class Localize : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// .. irrelevent logic here ..
// Set redirect code to 301
filterContext.HttpContext.Response.Status = "301 Moved Permanently";
filterContext.HttpContext.Response.StatusCode = 301;
// Redirect
filterContext.Result = new RedirectResult("/" + cookieLanguage);
base.OnActionExecuting(filterContext);
}
}
Run Code Online (Sandbox Code Playgroud)

我有两个动作,我想要我的路线/users和/users/{id}不同.但它会引发我的错误.
是否有可能实现这种排序而无需手动创建每个路径,我将有其他控制器将遵循类似的模式,并为所有这些编写自定义路线似乎是多余的和一般的坏主意.
控制器类型'UsersController'上的当前操作请求'Index'在以下操作方法之间是不明确的:System.Web.Mvc.ActionResult类型Api.Controllers.UsersController上的Index()System.Web.Mvc.ActionResult索引(Int32)在类型Api.Controllers.UsersController上
public class UsersController : Controller
{
public ActionResult Index()
{
return null;
}
public ActionResult Index(int id)
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud) 是否可以在Visual Studio 2012解决方案资源管理器窗口中隐藏文件夹?我有多个我不打算使用的文件夹/文件,它们只是弄乱了界面,而且很难找到东西.
您可以切换"显示隐藏文件",但实际上无法隐藏任何文件,这似乎非常不合逻辑.

WebApi项目包括我想要使用的自动化帮助生成,但它包含需要运行的多个文件夹.所有我关心的是控制器/模型,因为我正在构建Api本身.但是如果我从项目中删除/删除那些文件,那么帮助生成器将无法工作.
我有默认场景,你有Category自己,RootCategory和ChildCategories.如何指定我的流畅模型构建器以在删除时级联所有子类别?
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Category RootCategory { get; set; }
public virtual ICollection<Category> ChildCategories { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我试图使用流畅的模型构建器,但是当我尝试更新数据库时,这个会出错.
在表'类别'上引入FOREIGN KEY约束'FK_dbo.Categories_dbo.Categories_RootCategory_Id'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Category>().HasOptional(x => x.RootCategory).WithMany(x => x.ChildCategories).WillCascadeOnDelete(true);
}
Run Code Online (Sandbox Code Playgroud) c# asp.net-mvc entity-framework asp.net-mvc-4 entity-framework-5
我有简单的JSON,我需要解析对象.奇怪的是,即使我将我的JSON字符串复制并粘贴到JSONLint(http://jsonlint.com/),它也会起作用,但它会显示它是有效的.
var string = '{"token":"9eebcdc435686459c0e0faac854997f3","email":"201403050007950","id":"13","updated_at":"2014-03-05 10:34:51","messageguides":"[{\"name\":\"Un-named Messaging Guide 1\",\"pages\":[\"sustainabilitydirectors\",\"marketingnbusinessdevelopmentdirectors\"],\"date\":1394015692958}]"}';
var obj = JSON.parse(string); // Unexpected token n
console.log(obj);
Run Code Online (Sandbox Code Playgroud)