我阅读了关于jQuery验证器的回复,其中概述了一种根据数据库中的值检查用户名的方法.
我已经尝试过实现这个方法,但无论从PHP文件返回什么,我总是得到用户名已被取消的消息.
这是自定义方法......
$.validator.addMethod("uniqueUserName", function(value, element) {
$.ajax({
type: "POST",
url: "php/get_save_status.php",
data: "checkUsername="+value,
dataType:"html",
success: function(msg)
{
// if the user exists, it returns a string "true"
if(msg == "true")
return false; // already exists
return true; // username is free to use
}
})}, "Username is Already Taken");
Run Code Online (Sandbox Code Playgroud)
这是验证码...
username: {
required: true,
uniqueUserName: true
},
Run Code Online (Sandbox Code Playgroud)
是否有一种特定的方式我应该从PHP返回消息.
谢谢
一个
我用 :
$product->getPrice();
Run Code Online (Sandbox Code Playgroud)
得到未格式化的价格,我可以用ajax计算"数量X价格".
我想重新格式化当前区域设置和货币的总数.我怎样才能做到这一点?
如何使用PHP获取CSV文件中的总行数?我正在使用这种方法,但可以让它正常工作.
if (($fp = fopen("test.csv", "r")) !== FALSE) {
while (($record = fgetcsv($fp)) !== FALSE) {
$row++;
}
echo $row;
}
Run Code Online (Sandbox Code Playgroud) 我目前正在进行一项使用Server-Sent Events接收消息的聊天.但是,我遇到了一个问题.服务器发送的事件从未连接并保持挂起状态,因为页面未加载.
例如:
<?php
while(true) {
echo "data: This is the message.";
sleep(3);
ob_flush();
flush();
}
?>
Run Code Online (Sandbox Code Playgroud)
我希望每隔3秒,"数据:这就是消息." 将被输出.相反,页面只是不加载.但是,对于服务器发送的事件,我需要这种行为.有没有办法来解决这个问题?
编辑:
完整代码:
<?php
session_start();
require "connect.php";
require "user.php";
session_write_close();
echo $data["number"];
header("Content-Type: text/event-stream\n\n");
header('Cache-Control: no-cache');
set_time_limit(1200);
$store = new StdClass(); // STORE LATEST MESSAGES TO COMPARE TO NEW ONES
$ms = 200; // REFRESH TIMING (in ms)
$go = true; // MESSAGE CHANGED
function formateNumber ($n) {
$areaCode = substr($n, 0, 3);
$part1 = substr($n, 3, 3);
$part2 = substr($n, 6, …
Run Code Online (Sandbox Code Playgroud) 我正在学习如何通过以下教程创建自定义扩展,http://www.pierrefay.fr/category/developpement/magento
当我尝试打开扩展程序管理员时,我得到了 Fatal error: Class 'Mage_Test_Helper_Data' not found in /var/www/html/dev/app/Mage.php on line 520
但我认为我没有在扩展中的任何地方使用帮助类.欢迎您提出建议.
这是我的config.xml文件
<?xml version="1.0"?>
<config>
<modules>
<Package_Test>
<version>1.0.0</version>
</Package_Test>
</modules>
<frontend>
<routers>
<routerfrontend>
<use>standard</use>
<args>
<module>Package_Test</module>
<frontName>test</frontName>
</args>
</routerfrontend>
</routers>
<layout>
<updates>
<test>
<file>test.xml</file>
</test>
</updates>
</layout>
</frontend>
<admin>
<routers>
<test>
<use>admin</use>
<args>
<module>Package_Test</module>
<frontName>admintest</frontName>
</args>
</test>
</routers>
</admin>
<adminhtml>
<layout>
<updates>
<test>
<file>test.xml</file>
</test>
</updates>
</layout>
<menu>
<test translate="title" module="adminhtml">
<title>My Module</title>
<sort_order>100</sort_order>
<children>
<items module="Test">
<title>Address Book</title>
<action>admintest/adminhtml_index</action>
</items>
</children>
</test>
</menu>
</adminhtml>
<global> …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在DynamoDB表上使用扫描操作来匹配具有给定"标记"的项目.项目的标签存储在单个集合属性中.例如:
machine-1: tags = "windows", "iis", "64bit" machine-2: tags = "windows", "fs"
现在,我有一个高级支持开放的支持案例,但它需要花费一些时间.我想要做的是匹配机器,其中'tags'包含条目"windows" 和 "iis".
我可以使用CONTAINS
模式匹配单个,并指定单个AttributeValue,例如字符串值为"windows".
但是,CONTAINS
不支持单个AttributeValue或多个AttributeValues中的集合.它给出了一个错误.
所以我尝试过IN
(AWS高级支持也建议):但是,无论我使用单个AttributeValue(甚至只是再次查找"windows"或多个),我得到零结果.
文档IN
很差.该操作用4个无信息的词来描述,实际上是:" 检查完全匹配 ".
虽然我等待支持可能会继续进行几轮问答,但是有人在阅读这个熟悉这种查询的扫描吗?(如果可以的话,请先在你的答案中测试你所说的内容:我想我已尝试过明显的答案了!)
对于ref,扫描文档:http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_Scan.html
我有一张名为Bookings的桌子.此表包含表示针对特定服务进行的预订的数据,其中包含许多变量.
不久之前,我遇到了当前数据结构的问题,因此对预订的任何影响时间,日期或价格的更改都会影响其他相关财务记录,日期预订列表等.
我当时的解决方案是创建一个修改表来跟踪对预订所做的任何更改.然后,每当要求预订模型返回预订时,它将添加修改(在afterFind()
蛋糕回调中)并提供最新版本的预订,如下所示(借用Paint绘图):
当您要求预订模式返回预订#1234时,此方法可以正常工作.它返回最新的预订表示,包括所有修改(彼此叠加),包括包含所有修改的数组和原始预订数据以供参考.
我的问题是我最近意识到我需要能够使用自定义条件查询此模型,并且如果其中一个条件在其中一个修改中实现,则结果将不匹配,因为模型正在搜索原始模型记录而不是最终呈现的记录.我查询模型以返回abc
蓝色(不是灰色)的行的示例:
在该示例中,模型直接查看原始数据,其中行为abc
蓝色并且不返回此结果,因为蓝色值位于在找到原始结果后附加的修改中.
我现在所做的是查询beforeFind()
Booking模型的回调以查找符合给定条件的修改,加入预订以确保任何其他条件仍然匹配.当它在上面的例子中返回蓝色时,它将结果作为类属性存储在数组中,并继续使用常规find()
,但不包括退回该预订的ID(因为我们发现了更新的最新版本) ).然后它将它们合并在一起,再次将它们排序等afterFind()
.
这是有效的,虽然我希望它有点啰嗦.
毕竟,我已经意识到在这个应用程序的其他部分,有些模型可以手动加入预订表并搜索预订.所以现在我需要一种方法能够将所有这些手动连接中的修改直接合并到MySQL中的表中,而不会影响原始数据,最好不要更改我的代码.
我的想法是我需要删除手动连接并创建模型关联.请问beforeFind()
和afterFind()
我说查询客户模型的hasMany预订(将修改应用到每个预订)其预订模式仍运行?
我的另一个选择是通过删除修改中可能包含的任何条件从MySQL返回更多行,然后使用PHP根据我的搜索条件过滤结果.这个选项让我感到有些害怕,因为如果没有这个标准,结果集可能会很大......
我该如何实现这种数据结构?我的关键要求仍然是我不想更改原始的预订记录,而是在顶部添加修改记录,但我需要能够通过模型查询预订(包括修改).
我想尝试在幕后尽可能多地保持这种集成,所以我不必通过我的整个应用程序来改变n
看起来像这样的查询数量:
$get_blue = $this->Booking->find('all', array(
'conditions' => array(
'Booking.abc' => 'blue'
)
));
Run Code Online (Sandbox Code Playgroud)
我希望能够隐含地包括对预订的任何修改,以便在上述查询中返回最新的预订.
另一个问题是当预订模型手动加入搜索查询时,如下所示:
$get_transactions_on_blue_bookings = $this->Transaction->find('all', array(
'joins' => array(
array(
'table' => 'sql_bookings_table', // non-standard Cake format, I know - it's an example
'alias' => 'Booking',
'type' => 'LEFT', …
Run Code Online (Sandbox Code Playgroud) 我开始鄙视PHP-FPM了!处理错误是可怕的!
我得到了一个NetworkError: 502 Bad Gateway
,虽然我知道错误发生在哪里,因为我手动逐行注释,直到我发现坏线,我不知道为什么这条线导致问题.
在你问什么是导致错误的行之前,这不是我的问题,我的问题是我无法让PHP告诉我错误是什么.它只是响应502错误.
这是我的配置
nginx网站
location ~ .+?\.php {
fastcgi_split_path_info ^(.+?\.php)/?(.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param LOG_PATH /var/www/sites/api/logs;
fastcgi_param ENVIRONMENT dev;
fastcgi_buffer_size 128k;
fastcgi_buffers 254 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
proxy_intercept_errors on;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
}
Run Code Online (Sandbox Code Playgroud)
php.ini中
[PHP]
engine = On
expose_php = Off
max_execution_time = 30
memory_limit = 128M
default_socket_timeout = 5
session.save_path = /var/www/session/
file_uploads = Off
upload_tmp_dir = …
Run Code Online (Sandbox Code Playgroud) 我想知道有什么区别之间reindexAll()
和reindexEverything()
在Magento索引?
我们最近将Magento应用程序从私有主机迁移到AWS Web服务.我们注意到Magento的一些内部功能在迁移后需要花费相当长的时间才能执行,因此开始调查.
其中一个查询是一个简单的客户选择查询,对属性表有大约9-10个常规连接以获取属性.
我们对查询进行了一些测试,发现旧主机和AWS之间的区别在于旧主机上,MySQL优化器似乎使用正确的索引,而在AWS中,它使用filesort,忽略索引.
使用FORCE INDEX(index_name)
使得查询在AWS中正确执行,但是我们不想走这条路,而是宁愿在数据库配置中修复问题,而不是在我们的Magento应用程序中进行手动破解.要清楚,这不是我们的索引的问题,它们是正确设置的.
背景:
FORCE INDEX()
用来强制RDS的行为方式与旧主机相同时旧的MySQL服务器运行的是版本5.1.61,我们运行的AWS RDS实例是5.6.19.一个咨询小组向我们建议我们将我们的RDS实例降级到5.1.61,但是我们再次不想这样做,因为它不是一个可持续的解决方案.
有问题的查询如下(为了空间而从select中删除字段缩短了):
SELECT
`e`.*
-- various field names here, removed
FROM `customer_entity` AS `e`
LEFT JOIN `customer_entity_int` AS `at_default_billing` ON (`at_default_billing`.`entity_id` = `e`.`entity_id`) AND (`at_default_billing`.`attribute_id` = '13')
LEFT JOIN `customer_address_entity_varchar` AS `at_billing_postcode` ON (`at_billing_postcode`.`entity_id` = `at_default_billing`.`value`) AND (`at_billing_postcode`.`attribute_id` = '30')
LEFT JOIN `customer_address_entity_varchar` AS `at_billing_city` ON (`at_billing_city`.`entity_id` = `at_default_billing`.`value`) AND …
Run Code Online (Sandbox Code Playgroud)