小编Chr*_*ris的帖子

如何在不创建公共页面的情况下测试Facebook页面选项卡应用程序?

我正在开发一个FB页面选项卡应用程序,我想为我的客户端提供一个用于测试应用程序的URL.我没有专门针对此应用的页面,也不想创建一个 - 应用的测试版本应保持私有.以这种方式私下测试页面选项卡应用程序的正常过程是什么?

facebook

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

打开包含Excel中特殊字符的.csv文件

我有一个系统导出.csv文件,一些行包含特殊的框字符,使得数据如下所示:

Please specify the primary type of opportunity which you’re proposing:
?? Please specify what type of sport:
?? What is this person’s vocation?
??? How long have they been in the industry?
Run Code Online (Sandbox Code Playgroud)

但是,当我在Excel中打开文件时,Excel会对框中的字符进行扭曲,使其最终看起来像这样:

Please specify the primary type of opportunity which you’re proposing:    
└─ Please specify what type of sport:   
└─ What is this person’s vocation?    
└── How long have they been in the industry?  
Run Code Online (Sandbox Code Playgroud)

该文件以纯文本形式保存到用户的硬盘中,我可以在文本编辑器中打开它并查看字符,所以我知道当Excel读入数据时会发生这种情况.

有什么想法吗?我怎么能阻止这个?

excel text

6
推荐指数
2
解决办法
3万
查看次数

Javascript - 覆盖或阻止执行

我正在开发一个客户端项目,我必须包括他们的页眉和页脚,其中包括一些核心javascript文件.我在页面上有几个PNG,但是它们的核心JS文件编码很差,并且在尝试用包含使用AlphaImageLoader过滤器的DIVS替换包含.png文件的IMG标记之前不检查IE 7.结果是在IE 7中,所有我的.png图像都被替换为具有默认display:block的DIV标记,导致在我的页面中的每个png图像之后出现换行符.

我想做的是用更好的方法覆盖它们的功能或以某种方式防止它们执行,但是我不能修改js文件本身,它们定义了函数并将它附加到窗口onload事件.我已经尝试在几个地方重新定义相同名称下的函数(标题,就在/ body标记之前,在$(document).ready等等...)但原始函数似乎总是执行,大概是因为原来的函数代码是与事件处理程序一起存储的内容,而不仅仅是指向函数的指针.

我能解决什么?有没有办法有选择地删除onload事件处理程序?

javascript jquery

6
推荐指数
1
解决办法
3116
查看次数

nhibernate僵局

我在ASP.NET页面中使用以下代码来创建记录,然后计算记录以确保我没有超过设置限制并回滚事务(如果有).

using (var session = NhibernateHelper.OpenSession())
using (var transaction = session.BeginTransaction())
{
    session.Lock(mall, LockMode.None);

    var voucher = new Voucher();
    voucher.FirstName = firstName ?? string.Empty;
    voucher.LastName = lastName ?? string.Empty;
    voucher.Address = address ?? string.Empty;
    voucher.Address2 = address2 ?? string.Empty;
    voucher.City = city ?? string.Empty;
    voucher.State = state ?? string.Empty;
    voucher.Zip = zip ?? string.Empty;
    voucher.Email = email ?? string.Empty;
    voucher.Mall = mall;
    session.Save(voucher);

    var issued = session.CreateCriteria<Voucher>()
        .Add(Restrictions.Eq("Mall", mall))
        .SetProjection(Projections.Count("ID"))
        .UniqueResult<int>();

    if (issued >= mall.TotalVouchers)
    {
        transaction.Rollback();
        throw new VoucherLimitException(); …
Run Code Online (Sandbox Code Playgroud)

sql-server asp.net nhibernate

6
推荐指数
1
解决办法
3560
查看次数

如何检测图像中的不规则边框?

鉴于下面的图像,我可以使用什么算法来检测区域1和2(由颜色标识)是否有边框?

http://img823.imageshack.us/img823/4477/borders.png

如果那里有一个C#示例,那将是非常棒的,但我真的只是在寻找任何示例代码.

编辑:使用Jaro的建议,我想出了以下内容......

public class Shape
{
    private const int MAX_BORDER_DISTANCE = 15;

    public List<Point> Pixels { get; set; }

    public Shape()
    {
        Pixels = new List<Point>();
    }

    public bool SharesBorder(Shape other)
    {
        var shape1 = this;
        var shape2 = other;

        foreach (var pixel1 in shape1.Pixels)
        {
            foreach (var pixel2 in shape2.Pixels)
            {
                var xDistance = Math.Abs(pixel1.X - pixel2.X);
                var yDistance = Math.Abs(pixel1.Y - pixel2.Y);

                if (xDistance > 1 && yDistance > 1)
                {
                    if (xDistance * yDistance …
Run Code Online (Sandbox Code Playgroud)

c# language-agnostic

6
推荐指数
1
解决办法
1488
查看次数

Url片段为空

使用ASP.NET MVC3,url http://localhost:22713/tests#123456包含以下代码:

Your user agent: @Request.UserAgent<br />
Url: @Request.Url.AbsoluteUri<br />
Url fragment: @Request.Url.Fragment<br />
Run Code Online (Sandbox Code Playgroud)

收益:

Your user agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16 
Url: http://localhost:22713/tests 
Url fragment:
Run Code Online (Sandbox Code Playgroud)

为什么片段总是空的?我需要能够在服务器端解析此信息.

asp.net asp.net-mvc-3

6
推荐指数
1
解决办法
1303
查看次数

NHibernate,SQL Server - 枚举到int映射

我有一个类具有枚举类型,指示消息类型是电子邮件还是短信.枚举类型定义为:

public enum ReminderType
{
    Email = 1,
    Sms = 2
}
Run Code Online (Sandbox Code Playgroud)

使用此类型的类看起来像:

public class Reminder : EntityBase
{
    public virtual string Origin { get; set; }
    public virtual string Recipient { get; set; }
    public virtual ReminderType Type { get; set; }
    public virtual Business Business { get; set; }
    public virtual DateTime Created { get; set; }

    public Reminder()
    {
        Created = DateTime.UtcNow;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试将类型为Reminder的实体持久保存到数据库时,我收到以下错误:

System.Data.SqlClient.SqlException (0x80131904): Conversion failed when converting the nvarchar value 'Email' to data …
Run Code Online (Sandbox Code Playgroud)

nhibernate sql-server-2005 fluent-nhibernate

6
推荐指数
2
解决办法
2402
查看次数

如何处理僵尸网络和自动提交

简短的故事:我有一个网络应用程序,有很大的参与激励.因此,我们受到脚本编写者和机器人的严重攻击.基于提交的IP地址(1000+并且不断增长,没有任何模式),我倾向于认为提交的内容是由僵尸网络生成的.更糟糕的是,控制自动提交的人正在积极地将事情发展到每次我们做出改变时,他们会在几个小时内赶上来.

我们已经尝试过的一些措施:

  • Captcha,无论是第三方还是本土,都具有不同程度的可读性
  • 通过cookie和隐藏表单字段发送的反请求伪造令牌,在提交时进行比较
  • 隐藏的空蜜罐字段,如果字段包含数据,则会导致提交无提示失败
  • 一个隐藏的蜜罐字段,默认情况下包含数据,如果一段javascript没有运行以清除字段的值,则导致静默失败
  • 限制IP地址在特定时间段内提交的内容
  • 阻止已知由自动脚本使用的电子邮件域
  • 基于防火墙上每分钟的同时连接或连接来阻止主机
  • 阻止防火墙中最公然的IP地址
  • 使用外部地址验证服务来验证传入的地址

即使采取了所有这些措施,提交的文件不仅继续,而且似乎频繁增加,每天大约100,000+.

虚假条目现在使用完全有效的名字和姓氏,并且显然已经使用某种目录列表来确保他们使用的地址(看起来完全随机且完全不一致,顺便说一句)实际上是有效的美国邮政地址.此外,我已将传入的表单值记录到调试日志中并验证它们实际上是否提交了有效的验证码,表明它们具有足够的OCR来解密图像(代码本身从未发送到客户端,只有表示代码的GUID)存储在后端其他地方的代码)

事实上,我们甚至可以告诉条目的唯一方法是伪造的是他们提交的电子邮件地址和域名的模式.我们已尝试阻止最活跃的域名进入,但垃圾邮件发送者只是创建或查找新域名,他们可以从中生成一次性电子邮件地址并继续使用.

我现在已经筋疲力尽了,但我确信必须要做一些我没有尝试过的事情.这里有没有人有任何好主意?

security spam-prevention

6
推荐指数
1
解决办法
330
查看次数

离开数字输入字段时,Chrome安卓键盘输入不会更改回文本

例:

<form novalidate>
  <div class="field">
    <label for="name">Name:</label>
    <input type="text" name="name" id="name">
  </div>
  <div class="field">
    <label for="phone">Phone Number:</label>
    <input type="tel" name="phone" id="phone">
  </div>
  <div class="field">
    <label for="email">Email Address:</label>
    <input type="email" name="email" id="email">
  </div>
  <button type="submit">
    Submit
  </button>
</form>
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/cuvqkp14/

(在平板电脑上访问,Chrome桌面不是问题)

当我有两个或多个输入端,其类型为一个tel或者其INPUTMODE是numeric,点击Next了Android键盘上按钮以导航到下一个字段的结果numeric,即使下一个字段是键盘的布局type=text,type=email或INPUTMODE = text.我必须单击空格键左侧的ABC按钮,然后我可以输入字母字符.

我们已经在运行Android 8.0和Chrome 70+的多款Android平板电脑上对此进行了测试

如何将键盘布局强制恢复为alpha模式?

html5 android google-chrome

6
推荐指数
1
解决办法
526
查看次数

NHibernate事件监听器

我正在尝试使用FluentNHibernate向我的NHibernate配置添加IPostLoadEventListener的实现.我可以这样说明:

如何通过流畅的nhibernate添加事件监听器?

但是,创建一个新数组来替换旧数组会完全丢弃任何现有的事件侦听器.我可以像这样绕过它:

return Fluently.Configure()
    .Database(config)
    .Mappings(m => m.AutoMappings.Add(mappings))
    .ExposeConfiguration(cfg =>
        {
            cfg.EventListeners.PostLoadEventListeners =
                new IPostLoadEventListener[] { 
                    new UtcDateEventListener(),
                    new DefaultPostLoadEventListener() // <<< this one is the default
                };
            cfg.EventListeners.SaveOrUpdateEventListeners =
                new ISaveOrUpdateEventListener[] { 
                    new UtcDateEventListener(),
                    new DefaultSaveOrUpdateEventListener() // <<< this one is the default
                };
        })
    .BuildConfiguration()
    .BuildSessionFactory();
Run Code Online (Sandbox Code Playgroud)

但我只通过单步执行代码来确定我覆盖的默认事件监听器.我想添加我的事件监听器而不会覆盖任何现有的事件监听器,但是就像我上面所示,这样做对我来说似乎非常臭.现有的事件侦听器作为数组公开(而不是集合或列表,这将更有意义).有没有更清洁的方法来处理这个?

nhibernate

5
推荐指数
1
解决办法
3366
查看次数