我正在向if我的数据库抽象层添加一个语句,以挑选出对少数数据库表的任何尝试查询.
基本上,如果我的应用程序试图从被称为members或者members_profiles我想调用我的if语句的数据库表中创建,读取或销毁数据.
if (
preg_match('/INSERT INTO [members|members_profiles]/', $sql) ||
preg_match('/UPDATE [members|members_profiles]/', $sql) ||
preg_match('/DELETE FROM [members|members_profiles]/', $sql))
{
// do if statement stuff here...
}
Run Code Online (Sandbox Code Playgroud)
我不是正则表达式/ preg-match master,但if如果SQL查询匹配,则上述语句将返回true:
INSERT INTO members ... 要么 INSERT INTO members_profiles ...UPDATE members ... 要么 UPDATE members_profiles ...DELETE FROM members ... 要么 DELETE FROM members_profiles ...或者我的preg-match语法是否关闭?
我正在开发一个Facebook应用程序供页面使用.具有Web表单的页面必不可少,然后通过提交的数据创建数据库记录.没有什么太复杂的了.当我在处理发布数据时尝试区分网站时,会出现复杂性.这就是我所拥有的:
<?php
require_once('../lib/facebook.php');
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
switch ($signed_request['page']['id']) {
case '144778562245193':
define('SITE_ID', '3');
define('SITE', 'UK Boxing Events');
define('DOMAIN', 'ukboxingevents.com');
define('BODY_CLASS', 'boxing');
break;
case '147183265335890':
define('SITE_ID', '1');
define('SITE', 'UK Wrestling Events');
define('DOMAIN', 'ukwrestlingevents.com');
define('ANALYTICS_ID', 'UA-xxxxxxx-xx');
define('BODY_CLASS', 'wrestling');
break;
case '157856417600021':
define('SITE_ID', '2');
define('SITE', 'UK MMA Events');
define('DOMAIN', 'ukmmaevents.com');
define('BODY_CLASS', 'mma');
break;
default:
die('Invalid page.');
break;
}
if (isset($_POST['add_event'])) {
// submit handler; writes to database
}
?> …Run Code Online (Sandbox Code Playgroud) 这可能听起来像一个简单而琐碎的问题,但我在WordPress主题头文件中使用以下标记:
<html <?php language_attributes(); ?>>
Run Code Online (Sandbox Code Playgroud)
哪个是输出:
<html dir="ltr" lang="en-US">
Run Code Online (Sandbox Code Playgroud)
我希望将lang属性更改为"en-GB"作为我的博客,并且语言文章是用英国英语(en-GB)编写的,但我找不到在WordPress管理设置中设置此参数的位置,并且在wp_options数据库表中它也是一个值,让我相信设置lang值必须是某种黑暗的艺术?
我被要求开发一个社交网站以配合游戏.该游戏采用Flash(仅作为.swf文件提供),并将托管在社交网站上.
在测试和开发过程中出现的一个问题是会话超时.我知道会话长度可以(理论上)使用,php.ini但在这种情况下它似乎没有工作,很可能是由于我们的托管服务提供商的限制.
会话暂停,因为游戏在弹出窗口中打开,如果访问者长时间停留在游戏窗口,关闭窗口然后尝试使用社交网站,下一页加载会提示他们登录.
因此,如果我将一个小的JavaScript代码段放到我的页面的头部,只是触发对网站上托管的文件的请求,这会持续会话吗?如果是这样,这种做法有什么缺点吗?
我想知道是否有本机PHP函数来执行以下操作:
采用两个参数:输入数组和键名称的第二个数字数组,并仅返回名称在第二个数字数组中的输入数组中的键.
所以Facebook已经改变了身份验证过程.再次.PHP SDK中的示例是:
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,现在我们如何验证尚未进行身份验证的用户?我们只是创建一个else语句并调用结果$facebook->getLoginUrl()吗?
此外,上面的示例给出了一个错误,因为调用$facebook->getUser()返回我的用户ID,但是当我尝试调用$facebook->api('/me')给出错误时我的应用程序失败了:
致命错误:未捕获OAuthException:必须使用活动访问令牌来查询有关当前用户的信息.在第560行的/home/woohoobi/public_html/facebookv2/inc/facebook.php中引用
有关如何验证未经过身份验证的用户的任何帮助都会很棒.
我建立一个网站,有三种型号:Store,StoreReview,和User.该网站列出商店,用户可以查看商店.因此,我的Store模型可以有很多StoreReview行,每StoreReview行属于User一行.
我的问题是:在获取所有Store行时,如何获取相关User的StoreReview行?目前我正在使用:
<?php
class StoresController extends AppController {
public function view($slug) {
$stores = $this->Store->find('all');
}
}
Run Code Online (Sandbox Code Playgroud)
但这只返回'StoreReview'行.因为这User行是另一个更深的层次,我不确定如何获取它; 我已经检查过CakePHP的文档和Googled,但是CakePHP最近重新开始了他们的文档站点,我的Google搜索网站上的示例都没有用.
先感谢您.
我有一个事件监听器,以及一个在点击时触发自定义事件的元素.它们的设置如下:
$(document).on('customEventName', function(e) {
// do something
});
$(document).on('click', '[data-action]', function(e) {
e.preventDefault();
$(document).trigger( $(this).attr('action') );
});
Run Code Online (Sandbox Code Playgroud)
假设我有一个锚标记(<a href="#" data-target="customEventName">)触发click事件,那么我如何<a>在我的监听器中获取该标签及其属性?我想要在对象上解析任何其他data-属性.
我在Laravel应用程序中的两个模型中存在关系问题.我的模特是:
class Invoice extends Eloquent {
protected $table = 'invoices';
public function line_items()
{
return $this->hasMany('LineItem');
}
}
Run Code Online (Sandbox Code Playgroud)
和:
class LineItem extends Eloquent {
protected $table = 'line_items';
public function invoice()
{
return $this->belongsTo('Invoice');
}
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我Invoice使用以下内容获取一行:
$invoice = Invoice::find($id);
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试访问该line_items属性以获取LineItem与我的发票相关的行,则会收到以下错误:
为foreach()提供的参数无效
为什么是这样?我根据Laravel的文档设置了我的模型:http://laravel.com/docs/eloquent#one-to-many
我在使用PostgreSQL的PHP应用程序时遇到问题.我有一个简单的SQL语句,如下所示:
select count(*) as aggregate from "categories" where "promoter_id" = ? order by "sort_order" asc
Run Code Online (Sandbox Code Playgroud)
但它会触发以下错误:
SQLSTATE [42803]:分组错误:7错误:列"categories.sort_order"必须出现在GROUP BY子句中或用于聚合函数LINE 1:... om"categories"其中"promoter_id"= $ 1 order by" sort_orde ... ^(SQL:从"categories"中选择count(*)作为聚合,其中"promoter_id"= 7 order by"sort_order"asc)
该sort_order列包含用于"排序"记录的任意无符号整数.
上述语句由Eloquent(Laravel的ORM)发布,似乎只是计算带有WHERE子句的表中的记录,那为什么会触发此错误?我真的不想将sort order列分组以防有重复值(即两个sort_order值为的记录2),但这似乎是错误消息建议的解决方案.
有替代解决方案吗?我对PostgreSQL很陌生,所以这似乎是我迄今为止没有遇到MySQL的特点.
我正在CakePHP中构建一个API.我有一个功能,作为其执行的一部分首先破坏与会话相关的cookie.我使用以下代码来执行此操作.
public function new_thing () {
// I first call another controller to use functions from that controller
App::import('Controller', 'Person');
$PersonsController = new PersonsController;
// This function call is the problem
// This does not throw any errors but does not destroy the cookie as requested
$PersonsController->_kill_auth_cookie()
}
// This is from the Person controller, these are the functions used in the API
// This is the function that sets the cookies
public function _set_auth_cookie( $email ) {
setcookie(Configure::read('auth_cookie_name'), $email); …Run Code Online (Sandbox Code Playgroud)