小编Mar*_*iek的帖子

仅接受来自经过身份验证的用户的某些ajax请求

确保仅对经过身份验证的用户接受某些ajax调用某些页面的最佳做法是什么?

例如:

假设我有一个名为blog.php的主页(我知道,创意很丰富).我们还说有一个名为delete.php的页面,它查找参数post_id,然后从数据库中删除一些条目.

在这个非常人为的例子中,blog.php上有一些机制,它通过ajax向delete.php发送一个删除条目的请求.

现在,这种机制只适用于blog.php上经过身份验证的用户.但是什么阻止某人用一堆随机数调用delete.php并删除网站中的所有内容?

我做了一个快速测试,我在blog.php中设置了一个会话变量,然后对delete.php进行了ajax调用,如果会话变量设置与否则返回(不是).

处理这类事情的可接受方式是什么?


好.我第一次尝试这个时一定很疯狂.

我刚刚做了另一个测试,就像上面描述的那样,它完美无缺.

php authentication ajax

8
推荐指数
1
解决办法
1801
查看次数

这是处理PHP类中的getter/setter的合理方法吗?

我将尝试使用这个问题的格式,我非常愿意接受有关更好的方法来处理它的建议.

我不想只是在问题中转储一堆代码,所以我已经发布了该类的代码refactormycode.

基类,便于类属性处理

我的想法是人们可以在这里发布代码片段或进行更改refactormycode并将链接发布回他们的重构.基于此,我会做出投票并接受答案(假设有一个明确的"赢家").

无论如何,对班级本身:

我看到很多关于getter/setter类方法的争论,最好是直接访问简单的属性变量,还是每个类都定义了明确的get/set方法,等等等等等等.我喜欢使用显式方法的想法,以防您以后需要添加更多逻辑.然后,您不必修改使用该类的任何代码.但是我讨厌有一百万个看起来像这样的函数:

public function getFirstName()
{
   return $this->firstName;
}
public function setFirstName($firstName)
{
   return $this->firstName;
}
Run Code Online (Sandbox Code Playgroud)

现在我确定我不是第一个这样做的人(我希望有一个更好的方法可以让别人向我建议).

基本上,PropertyHandler类有一个__call魔术方法.通过__call以"get"或"set"开头的任何方法然后被路由到将值设置或检索到关联数组的函数.获取或设置后,数组中的键是调用方法的名称.因此,如果进入__call的方法是"getFirstName",则数组键是"FirstName".

我喜欢使用__call,因为它会自动处理子类已经定义了"getFirstName"方法的情况.我的印象(我可能错了)是__get和__set魔术方法不这样做.

所以这是一个如何工作的例子:

class PropTest extends PropertyHandler
{
    public function __construct()
    {
        parent::__construct();
    }
}

$props = new PropTest();

$props->setFirstName("Mark");
echo $props->getFirstName();
Run Code Online (Sandbox Code Playgroud)

请注意,PropTest实际上没有"setFirstName"或"getFirstName"方法,PropertyHandler也没有.所有这一切都是在操纵数组值.

另一种情况是你的子类已经扩展了其他东西.由于PHP中不能具有真正的多重继承,因此可以使子类具有PropertyHandler实例作为私有变量.您必须再添加一个函数,但事情的行为方式完全相同.

class PropTest2
{
    private $props;

    public function __construct()
    {
        $this->props = new PropertyHandler();
    }

    public function __call($method, $arguments)
    {
        return $this->props->__call($method, $arguments);
    }
}

$props2 = new PropTest2();

$props2->setFirstName('Mark');
echo $props2->getFirstName(); …
Run Code Online (Sandbox Code Playgroud)

php oop

8
推荐指数
2
解决办法
3156
查看次数

收件箱管理(在Outlook中)

我已经在有组织的收件箱和收件箱之间来回走动,我收到的绝对是我所收到的一切.

您是否建议将所有内容保留在收件箱中或进行整理?如果你组织它,是否有任何方法可以让你疯狂或可能是一个Outlook(2003)插件来帮助完成这项任务?

对于它的价值,我觉得我的收件箱中的所有内容都更有效率,按日期分组.我觉得花费更多时间以任何其他方式进行收件箱管理.

email gtd outlook

8
推荐指数
2
解决办法
2019
查看次数

什么是最有用的java多用途开源库?

是否有所有程序员都应该了解的开源库?我在想一些通用的,一种对标准的扩展,java.util它包含对各种应用程序都有用的基本函数.

java open-source

8
推荐指数
2
解决办法
2593
查看次数

.net应用程序在Linux上运行吗?

.net应用程序在linux上运行吗?

有没有免费/付费的互操作库?

.net linux

8
推荐指数
2
解决办法
2153
查看次数

将您的Javascript放在.php文件中有什么好处?

我偶尔会遇到通过PHP文件包含一些Javascript的页面:

<html>
  <head>
    <script type="text/javascript" src="fake_js.php"></script>
  </head>
  <body onload="handleLoad();">
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

其中fake_js.php的内容可能如下所示:

<?php header('Content-type:  text/javascript') ?>

function handleLoad() {
    alert('I loaded');
}
Run Code Online (Sandbox Code Playgroud)

包含这样的Javascript有什么优点(或缺点)?

javascript php

8
推荐指数
2
解决办法
1204
查看次数

GD库是否使用了大量内存?

我想在我的PHP脚本中使用GD库从外部服务器生成一个随机大图片的小缩略图.每次调用页面时,GD库都会重新生成缩略图并显示它.

这会降低服务器速度还是耗尽不寻常的内存量?

php gd

8
推荐指数
2
解决办法
2256
查看次数

什么<%#"无论"%>在ASP.NET中是什么意思?

可能重复:
asp.net的.aspx页面中各种符号的含义

我熟悉它<%= "whatever" %>作为一种捷径<% Response.Write("whatever"); %>.

但我最近遇到了一些使用的代码<%# %>.在这个特定的代码库中,它只在一个内部使用<asp:Repeater />但是我

<%# %>什么以及何时可以/应该使用它?

c# asp.net syntax webforms-view-engine

8
推荐指数
1
解决办法
2万
查看次数

100%宽度标题不填充浏览器

当浏览器窗口小到足以强制水平滚动条并向右滚动时,标题的背景颜色在浏览器边缘之前结束.我正在使用CSS课程.

.s_header {
    margin: 0;
    width: 100%;
    display: block;
    border-bottom: 1px solid #000;
    background-color:#b8dbec;
    height:133px;
}
Run Code Online (Sandbox Code Playgroud)

内容<div class="s_header">不如下面的4列表那样宽,其中内容总计为840px,图像宽度为+ padding,140px为固定宽度列.因此,当浏览器窗口小于840px时,会有一个水平滚动条,除了滚动时标题的背景被切断之外.

<div class="s_header">body和html 的父元素,100%宽度表示窗口宽度.我试过包括溢出:在.s_header课堂上看得见但没有成功.

体宽也设置为100%边距0

当滚动条出现时,是否有一种简单的方法可以让背景在右侧延伸?

问题页面就在这里

任何建议将不胜感激.

css width

7
推荐指数
2
解决办法
1万
查看次数

在使用XML布局时,尝试将TextView动态添加到ScrollView时会崩溃

这是一个非常简单的例子,我在R.layout.main中定义了一个ScrollView.然后我尝试动态添加TextView.

不幸的是这崩溃了.

ScrollView scroll = (ScrollView) this.findViewById(R.id.scrollView1);

TextView tv1 = new TextView(this);
tv1.setText("This is tv1");

scroll.addView(tv1);

setContentView(R.layout.main);
Run Code Online (Sandbox Code Playgroud)

现在我可以这样做:

ScrollView scroll = new ScrollView(this);
TextView tv1 = new TextView(this);
tv1.setText("This is tv1");

scroll.addView(tv1);

setContentView(scroll);
Run Code Online (Sandbox Code Playgroud)

但我真的希望能够在XML中定义一些基本UI元素,然后动态添加其他元素.

最好的方法是什么?

android

7
推荐指数
1
解决办法
2万
查看次数