小编Mar*_*ato的帖子

在PHP关联数组索引中使用空格是不好的做法吗?

我必须使用关联数组传递一些参数,如下所示:

$blockGroup['name=products type=complete']
Run Code Online (Sandbox Code Playgroud)

做一些测试我发现它有效,但这是一个不好的做法?是否有可能产生任何错误或意外行为?

谢谢你的任何建议!

编辑1

我在视图实现中使用这个数组,完整的结构是:

$blockGroup['name=products type=complete'][] =
    array(
        'name' => 'GeForce',
        'value' => '99.99'
    );
Run Code Online (Sandbox Code Playgroud)

php arrays

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

用于搜索可以位于三个不同表中的唯一ID的SQL查询

我有三个控制产品,颜色和尺寸的桌子.产品可以有或没有颜色和大小.颜色可以或不具有尺寸.

product      color                           size
-------      -------                         -------
id           id                              id
unique_id    id_product (FK from product)    id_product (FK from version)
stock        unique_id                       id_version (FK from version)
title        stock                           unique_id
                                             stock
Run Code Online (Sandbox Code Playgroud)

unique_id所有表中都存在的列是一个串行类型(自动增量),它的计数器与三个表共享,基本上它作为它们之间的全局唯一ID.

它工作正常,但我想在我必须选择一些基于的字段时提高查询性能unique_id.

因为我不知道unique_id我在找什么,我正在使用UNION,如下所示:

select title, stock
from product 
where unique_id = 10

UNION

select p.title, c.stock
from color c
join product p on c.id_product = p.id
where c.unique_id = 10

UNION

select p.title, s.stock
from size s
join product p on s.id_product = p.id …
Run Code Online (Sandbox Code Playgroud)

sql postgresql postgresql-8.1

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

正则表达式使用Javascript验证巴西货币

我需要使用Javascript验证包含巴西钱(其名称为"Real")的一些表单文件.它具有以下格式:

            0,01
            0,12
            1,23
           12,34
          123,45
        1.234,56
       12.235,67
      123.456,78
    1.234.567,89
   12.345.678,90
  123.456.789,01
1.234.567.890,12
Run Code Online (Sandbox Code Playgroud)

我的正则表达式知识很弱,有人可以帮助我吗?

javascript regex validation currency

4
推荐指数
1
解决办法
4174
查看次数

使用Postgres从多个模式中选择(检索)所有记录

我有一个PostgreSQL数据库,其中包含一些模式,如下所示:

My_Database
 |-> Schemas
    |-> AccountA
    |-> AccountB
    |-> AccountC
    |-> AccountD
    |-> AccountE
           .
           .
           .
    |-> AccountZ
Run Code Online (Sandbox Code Playgroud)

所有的模式都有一个名为表product具有称为列title.我想知道是否可以执行select语句来检索具有特定条件的所有模式的所有记录.

我到目前为止找到的唯一方法是按帐户运行查询帐户,如下所示.

SET search_path TO AccountA;

SELECT title FROM product WHERE title ILIKE '%test%';
Run Code Online (Sandbox Code Playgroud)

模式是动态创建的,因此我不知道它们的名称或存在多少名称.

sql postgresql inheritance database-design postgresql-8.4

4
推荐指数
1
解决办法
2570
查看次数

PHP中使用$ _POST和$ _GET变量的最佳实践

考虑到一个项目将工作多个开发人员并且将不断更新和维护,考虑到可读性和安全性,下面两个代码中的哪些代码可以被认为是PHP中的最佳实践?如果我们谈论性能,第二种选择可能会好一点,但有办法解决这一点.

选项1

$user = $_POST['user'];
$pass = $_POST['pass'];

// Prevent SQL Injection and XSS
$user = anti_injection($user);
$pass = anti_injection($pass);

if(strlen($user) <= 8 && strlen($pass) <= 12)
{
    // SQL query
    $sql = "SELECT id 
            FROM users 
            WHERE username = '$user' AND password = '$pass';";
}
Run Code Online (Sandbox Code Playgroud)

选项2

// Retrieve POST variables and prevent SQL Injection and XSS
$_POST['user'] = anti_injection($_POST['user']);
$_POST['pass'] = anti_injection($_POST['pass']);

if(strlen($_POST['user']) <= 8 && strlen($_POST['pass']) <= 12)
{
    // SQL query
    $sql = "SELECT id …
Run Code Online (Sandbox Code Playgroud)

php postgresql optimization

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

Google Universal Analytics跟踪代码生成空白页面

这是我第一次使用新版本的Google Analytics(Universal Analytics),所以当我在</head>获取所有网址的空白页面之前,我会将下面的代码放入imediatally .

以下是Google提供的代码:

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-1234567-89', 'mysite.com');
  ga('send', 'pageview');

</script>
Run Code Online (Sandbox Code Playgroud)

有人知道为什么会这样吗?似乎是一个错误,但我不知道如何解决这个问题.

javascript php google-analytics smarty universal-analytics

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

在PostgreSQL数据库的所有模式中向表中添加一列

我有一个Postgres 8.4架构,如下所示:

My_Database
 |-> Schemas
       |-> AccountA
       |-> AccountB
       |-> AccountC
       |-> AccountD
       |-> AccountE
      ...
       |-> AccountZ
Run Code Online (Sandbox Code Playgroud)

所有模式都有一个调用的表product,我想立即为它们添加一个布尔列.是否有可能做到这一点?

我到目前为止找到的唯一方法是按帐户运行以下SQL帐户.

ALTER TABLE product ADD COLUMN show_price boolean NOT NULL DEFAULT TRUE;
Run Code Online (Sandbox Code Playgroud)

sql postgresql ddl plpgsql postgresql-8.4

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

不可见的reCAPTCHA发送具有多种形式的空g-captcha-chasponse

我正在尝试使用Google Invisible reCAPTCHA,但是g-recaptcha-response当我在同一页面中有多个表单时,它将发送POST参数为空。这是我的代码:

谷歌JS

<script src="//google.com/recaptcha/api.js?hl=pt-BR&onload=captchaCallback&render=explicit" async defer></script>
Run Code Online (Sandbox Code Playgroud)

表格1

<form action="/site/Contact/send" id="form1">
    <input type="text" name="nome" required>

    <div class="g-recaptcha"
        data-sitekey="xxxxxxxxxxxxxxxxxxxxxxxx"
        data-callback="form1Callback"
        data-size="invisible">
    </div>

    <button type="submit">Send</button>

</form>
Run Code Online (Sandbox Code Playgroud)

表格2

<form action="/site/Contact/send" id="form2">
    <input type="text" name="nome" required>

    <div class="g-recaptcha"
        data-sitekey="xxxxxxxxxxxxxxxxxxxxxxxx"
        data-callback="form2Callback"
        data-size="invisible">
    </div>

    <button type="submit">Send</button>
</form>
Run Code Online (Sandbox Code Playgroud)

我的JS(基于此答案

$(document).ready(function() {

    window.captchaCallback = function(){
        $('.g-recaptcha').each(function(index, el) {
            var attributes = {
                'sitekey'  : $(el).data('sitekey'),
                'size'     : $(el).data('size'),
                'callback' : $(el).data('callback')
            };

            grecaptcha.render(el, attributes);
        });
    };

    window.form1Callback = function(){
         $('#form1').submit(); …
Run Code Online (Sandbox Code Playgroud)

javascript forms jquery recaptcha invisible-recaptcha

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

使用 preventDefault() 提交表单但保留浏览器自动完成功能

我正在使用 ajax 发送表单数据,因此要覆盖我正在使用的默认浏览器行为preventDefault(),但我希望保留浏览器功能以记住输入的数据以供将来自动完成。

是否有可能做到这一点?

HTML

<form id="form-login" action="/padrao/Login/executaLoginAjax" method="post">
    <input type="text" id="usuario" name="usuario[email]" class="entradas" placeholder="Usuário" maxlength="80" required />
    <input type="password" id="senha" name="usuario[senha]" class="entradas" placeholder="Senha" maxlength="12" required />
    <input type="submit" id="btn-logar" value="Acessar o sistema" />
</form>
Run Code Online (Sandbox Code Playgroud)

Javascript

$('#form-login').submit(function(event){

    event.preventDefault();

    var action = $(this).attr('action');
    var dados  = $(this).serialize();

    $.ajax({
        type: "POST",
        url: action,
        data: dados,
        dataType: "json",

        success: function(json){

            if(json.sucesso){
                window.location.href = 'http://' + location.host + '/home';
            }else{
                alert('fail');
            }

        }

    });

});
Run Code Online (Sandbox Code Playgroud)

html javascript ajax jquery

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

在原型的构造函数中初始化属性时获取"未定义"

我开始使用原型,如果我使用代码,我得到了预期的结果:

$(document).ready(function() {
    var MyObject = new MyClass();

    MyObject.assign();

    MyObject.console();
});

function MyClass() {
    var myProperty;
};

MyClass.prototype = {

    assign: function() {
        this.myProperty = 'Hello world!';
    },

    console: function() {
        console.log(this.myProperty); // Shows 'Hello world!'
    }
};
Run Code Online (Sandbox Code Playgroud)

但是下面的代码返回undefined.我不明白为什么,有人可以帮我吗?

$(document).ready(function() {
    var MyObject = new MyClass();

    MyObject.console();
});

function MyClass() {
    var myProperty = 'Hello world!';
};

MyClass.prototype = {

    console: function() {
        console.log(this.myProperty); // Shows 'undefined'
    }
};
Run Code Online (Sandbox Code Playgroud)

javascript jquery prototype

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

使用jQuery的大型HTML,换行符和.html()方法

我必须使用jQuery .html()方法在DIV中动态加载以下HTML .

<div class="box-gerenciamento-versoes-variacoes">
    <div class="detalhes-versao">
        <p><span>Cor</span> do produto:</p> <img src="/admin/imagens/cores/preto-amarelo.png" height="18" width="18" title="Preto e amarelo" alt="" /> <span class="nome-cor">Preto e amarelo</span>
    </div>

    <div class="box-enviar-fotos">
        <input type="button" class="botao-enviar-fotos" value="" /> 0 fotos enviadas
    </div>

    <div class="div_clear"></div>

    <div class="etiquetas-tamanho-estoque">
        <p class="etiqueta-tamanho">Tamanho:</p>
        <p class="etiqueta-estoque">Estoque:</p>
    </div>

    <ul class="gerenciamento-tamanho">
        <li>
            PP
            <input type="text" />
        </li>
        <li>
            P
            <input type="text" />
        </li>
        <li>
            M
            <input type="text" />
        </li>
        <li>
            G
            <input type="text" />
        </li>
    </ul>

    <div class="div_clear"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,内容不小,而且该.html()方法不允许换行,所以要加载这些内容我必须删除所有换行符,但这样做代码会很丑,应用程序维护会有什么困难.

如何 …

jquery standards readability

0
推荐指数
1
解决办法
6391
查看次数