我有一个可能连续由多个用户执行的查询.我很害怕,如果我运行db_last_insert_id命令,由于并发性,某些用户可能无法获得最后一个插入ID.但根据:http://api.drupal.org/api/function/db_last_insert_id/6,它说:
返回最后一个插入ID.此功能是线程安全的.
我的问题是,这个线程如何安全?代码只是:
<?php
function db_last_insert_id($table, $field) {
return db_result(db_query("SELECT CURRVAL('{". db_escape_table($table) ."}_". db_escape_table($field) ."_seq')"));
}
?>
Run Code Online (Sandbox Code Playgroud)
我没有看到任何关于锁定表或什么都没有?
我想尝试登录这个网址:
http://www.kalahari.com/marketplace/default.aspx
Run Code Online (Sandbox Code Playgroud)
提交的两个字段标记为:
ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInEmail
ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPasswordTextNormal
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试使用的代码:
$username = 'XXXXXXX';
$password = 'XXXXXXX';
$loginUrl = 'http://www.kalahari.com/marketplace/default.aspx';
$cookie = 'cookies.txt';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $loginUrl );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt($ch, CURLOPT_COOKIEJAR , $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_HEADER, FALSE );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$ret = curl_exec($ch); //access login page
// Collecting all POST fields
$postfields = array();
$postfields['ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInEmail'] = $username;
$postfields['ctl00$ctl00$ucMarketPlaceSupportNavigation$txtMPTopSignInPasswordTextNormal'] = $password;
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
$ret = curl_exec($ch);//Get result after login page. …Run Code Online (Sandbox Code Playgroud) 目前,如果我有4个选项卡,我按CTRL TAB,它不会从1到2,然后从2到3,依此类推.它按照我最后打开它的顺序在窗口之间跳转.
通过以下特征估算数据库大小的最准确方法是什么:
您可以假设varchar 32已完全填充(全部32个字符).如果填充每个字段并且存在以下情况,那将会有多大:
我的粗略估计是:id为1个字节,其他两个字段各为32位.粗略地说:
1 + 32 + 32 = 65 * 1 000 000 = 65 million bytes for 1 million rows
= 62 Megabyte
Run Code Online (Sandbox Code Playgroud)
因此:
这是一个准确的估计吗?
我正在执行以下命令:
<?php
copy ("http://localhost/.../DSCF8253.JPG" , "sites/default/files/DSCF8253.JPG"); // Success!
copy ("http://localhost/.../DSCF8260.JPG" , "sites/default/files/DSCF8260.JPG"); // Success!
copy ("http://localhost/.../HERMAN 085.jpg" , "sites/default/files/HERMAN 085.jpg" ); // Fail!
?>
Run Code Online (Sandbox Code Playgroud)
前两个复制正常,但不是最后一个.为什么?
它必须与文件名有关(最后一个在085之前有一个空格).
任何帮助将不胜感激!
我听说过跨站点脚本,人们可以访问cookie和狡猾的方式.所以我希望有人可以回答几个问题.我想以最纯粹的方式存储会话中的内容,但使用像Drupal这样的CMS.假设我们有这个:
$data = $fancyWebService->getSuperSecureDataThatOnlyTheCurrentlyLoggedInUserCanSee();
$_SESSION['basic_variable'] = $data;
Run Code Online (Sandbox Code Playgroud)
UPDATE
关于问题2.我的意思是,如果我在php文件中键入以下内容:
print '<pre>';
print_r($_SESSION);
die();
Run Code Online (Sandbox Code Playgroud)
(或只是vardump会话变量)...
我最终得到了我存储在那里的所有信息,未加密.我的问题是,用户是否可以通过某种方式找到一种方法来访问会话变量(除了通过我公开它),这会使得保留未加密的值是一个坏主意?
我试过进入PHPInfo,但没有任何东西可以告诉我它是64位还是32位.告诉这个最简单的方法是什么?
所以我有一个标准文件位于:
/sites/default/files/hello.png
Run Code Online (Sandbox Code Playgroud)
我可以像这样访问它:
http://www.example.com/sites/default/files/hello.png
Run Code Online (Sandbox Code Playgroud)
但是,使用i18n,如果前缀路径也可以用于这些文件,那将是很好的.例如,此链接不起作用:
http://www.example.com/us/sites/default/files/hello.png
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.
所以我的问题是,如何使这些"特定国家"路径也适用于文件?
我想我可能需要在htaccess中做一些事情,然后创建一个过滤和重定向这些路径的模块,但这听起来太费劲了,也许我错过了启用它的简单方法?
我有以下内容:
$oauth = new OAuth($consumer_key,$consumer_secret, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_AUTHORIZATION);
$oauth->setToken($oauth_access_token,$oauth_access_token_secret);
Run Code Online (Sandbox Code Playgroud)
当我执行时:
$h = $oauth->getRequestHeader(OAUTH_HTTP_METHOD_POST, $url);
Run Code Online (Sandbox Code Playgroud)
我得到标题:
OAuth oauth_consumer_key="XXXXXXX",oauth_signature_method="HMAC-SHA1",oauth_nonce="1454566103",oauth_timestamp="1454566103",oauth_version="1.0",oauth_token="XXXXXXX",oauth_signature="XXXXXXXXXX"
Run Code Online (Sandbox Code Playgroud)
问题是,我期待这样:
OAuth realm="1111", oauth_consumer_key="XXXXXXX",oauth_signature_method="HMAC-SHA1",oauth_nonce="1454566103",oauth_timestamp="1454566103",oauth_version="1.0",oauth_token="XXXXXXX",oauth_signature="XXXXXXXXXX"
Run Code Online (Sandbox Code Playgroud)
但是如何添加"领域"部分并不明显.如何添加领域,以便在生成签名时,它会在初始构建字符串中占据领域?
不幸的是,我已经达到了一个死胡同.由于各种遗留原因和其他原因,我无法将系统升级到PHP 5.4.而根据Facebook的,我需要5.4运行最新的SDK.
我愿意接受较低的SDK,但是:
奖金问题:
应该将作曲家路径更改为使用旧SDK?目前我有:
"facebook/php-sdk-v4":"4.0.*"