Tag: PHP的

我应该使用EAV模型吗?

我正在为电子商务应用程序devise我的数据库/域,我很难搞清楚如何存储产品。 该网站将出售各种各样的产品,笔,丁字裤,纹身,雨伞,一切。 这些产品中的每一个都会共享一些常见的属性,高度,宽度,长度,重量等,但是一些产品具有特殊的数据。 例如,笔具有不同的墨水颜色和提示/盖子,小册子可以具有不同types的折叠。 到目前为止,我已经想出了20多个额外的属性,但这些属性可能只适用于网站上1%的产品。 所以我想知道是否可以实现一个EAV模型来处理额外的数据。 请记住,当客户在前端查看网站时,会有像eBay和carsales.com.au上的过滤侧边栏。 (所以要记住会有一些查询) 由于系统需要保持灵活性,我认为实现Class Tableinheritance并不现实。 这是因为,沿着轨道,我们可能在将来有更多的属性,新的产品types。 另一件事我已经考虑使用NoSQL数据库(可能是MongoDB),但是我对这些types的数据库没有经验,它甚至可以解决我的问题吗? 审查选项: 具有许多列的单一产品实体 独立属性实体(EAV) 切换到无模式持久性 我正在构build一个具有属性实体的原型,以查看它是多么的灵活,并且testing性能以及查询如何失控。 编辑:当然,我打开任何其他的解决scheme。

PHP中的CSRF(跨站请求伪造)攻击实例和预防

我有一个网站,人们可以像这样投票: http://mysite.com/vote/25 这将对项目25进行投票。我只想让注册用户可以使用,只有当他们想这样做。 现在我知道有人在网站上忙碌,有人给他们这样的链接: http://mysite.com/vote/30 那么他的投票就会放在这个项目上,而他却不想这样做。 我已经阅读了OWASP网站上的解释 ,但是我不太了解它 这是CSRF的一个例子,我怎样才能防止这个。 我能想到的最好的事情就是像链接一样添加链接。 但是,如果把所有的环节都放在一边,这将是相当令人恼火的。 有没有其他的方式做到这一点。 另一件事可能有人可能会给我一些其他的例子,因为该网站似乎相当神职我。

什么是PHP中的工厂devise模式?

这使我困惑,用最简单的话来说,它有什么作用? 假装你正在向你的母亲或某人求解。

有Facebook的sharer.php更改为不再接受详细的参数?

我们已经打开了一个共享popup窗口(通过window.open)的URL像 https://www.facebook.com/sharer/sharer.php?s=100&p[title]=EXAMPLE&p[summary]=EXAMPLE&p[url]=EXAMPLE&p[images][0]=EXAMPLE 直到上个月的某个未知点,一切都很好。 现在发生的事情是; popup对话框出现,并正确包括由查询string参数提供的标题,描述,图像和URL,但是当提交post时,在Facebook上产生的贴子缺less标题,描述和图像,尽pipe它仍然链接到正确的url。 有谁知道是否有最近的变化,可能突然停止这个工作? 抢先一些常见的反应: “sharer.phpurl被弃用” – 使用似乎继续下去,似乎共识是它基本上被认为是坚持 – 我还没有看到任何具体的迹象表明,它应该突然停止工作 – 可能已经错过了一些东西 “使用JavaScript SDK /这些OG元标签” – 在我的具体情况下是不可能的 – 只要相信我…我可以解释你是否真的想要,但实际上并不相关。 “使用提要对话框” – 由于缺乏FB页面附件的发布支持,因此不合适

在课堂上使用PDO

我有几个类执行一些MySQL查询和准备语句。 但是,我迷失在如何将PDO对象包含在这些类中。 例如,我想要做这样的事情: <?php $dbh = new PDO(…); class Foo extends PDO { public $dbh; public function bar() { $this->dbh->prepare('SELECT * FROM table'); $this->dbh->execute(); } } ?> 不幸的是,这是行不通的。 任何人都可以build议一个优雅的方式做到这一点 谢谢你的时间。 抱歉,我是新手,如果您对任何事情不清楚,请留下您的意见,我会尽我所能来回应!

我怎样才能捕捉到PHPtypes提示“可捕捉的致命错误”?

我试图在我的一个类中实现PHP5的Type Hinting, class ClassA { public function method_a (ClassB $b) {} } class ClassB {} class ClassWrong{} 正确的用法: $a = new ClassA; $a->method_a(new ClassB); 产生错误: $a = new ClassA; $a->method_a(new ClassWrong); 可捕获的致命错误:传递给ClassA :: method_a()的参数1必须是ClassB的实例,ClassWrong的实例被赋予… 我可以知道是否有可能发现这个错误(因为它说“可捕捉”)? 如果是的话,怎么样? 谢谢。

您必须启用openssl扩展才能通过https下载文件

我想安装Zend Framework 2.所以我下载了框架应用程序。 正如在ZF2手册中提到的,我们必须发出命令 php composer.phar install 在骨架里面。 但是我得到一个错误 您必须启用openssl扩展才能通过https下载文件 然后我启用了SSL中的ssl_module,我检查了php_ini文件,我可以看到下面一行 延长= php_openssl.dll 还是我得到了同样的错误。 任何人有任何线索我错过了什么?

阻止通过http直接访问文件,但允许php脚本访问

我正在将我的文件(pdf,doc,flv等)加载到缓冲区中,并通过脚本将其提供给我的用户。 我需要我的脚本能够访问文件,但不允许直接访问它。 什么是实现这个最好的方法? 我应该做我的权限或用.htaccesslocking目录吗?

我如何强制用户通过HTTPS而不是HTTP访问我的页面?

我只有一个页面,我想强制访问作为一个HTTPS页面(在Apache上的PHP)。 如何在不使整个目录需要HTTPS的情况下做到这一点? 或者,如果您从HTTP页面向HTTPS页面提交表单,是否通过HTTPS而不是HTTP发送? 这是我的例子: http://www.example.com/some-page.php 我只想通过以下方式访问它: https://www.example.com/some-page.php 当然,我可以把这个页面的所有链接都指向HTTPS版本,但是这并不能阻止一些愚蠢的人通过HTTP来访问它。 我想过的一件事是在PHP文件的头部添加一个redirect,以确保他们正在访问HTTPS版本: if($_SERVER["SCRIPT_URI"] == "http://www.example.com/some-page.php"){ header('Location: https://www.example.com/some-page.php'); } 但是这不可能是正确的方式,可以吗? 顺便说一句,请不要留意url。 我知道,如果它实际上是一个有购物车等的网页,那么你会以不同的方式去做。 把它看作是一个网站上的一个网站,它出售一个价格的一个项目,你input你的信用卡信息将被提交到外部网站上的支付网关,以便为你的卡充值一次。

是否有可能在PHP中创build静态类(如在C#中)?

我想在PHP中创build一个静态类,它的行为就像在C#中一样,所以 构造函数在第一次调用该类时自动调用 没有实例化要求 这种东西… static class Hello { private static $greeting = 'Hello'; private __construct() { $greeting .= ' There!'; } public static greet(){ echo $greeting; } } Hello::greet(); // Hello There!