我是桌面C#开发人员(不是ASP),我想知道小型个人项目的版本定位.当然,这些都是为了尽可能扩大受众范围,所以我一直瞄准.NET 3.0(这是没有任何服务包的Windows Vista系统上的最新版本)和2.0(这是最简单的与VS2008兼容的兼容版本).
不幸的是,这使我无法学习任何技术,例如3.0版后推出的LINQ,并且即将转向VS2010,我想知道我是否应该以牺牲用户为代价来定位新的4.0平台,而不是最新的和最好的,或者应该我只是坚持尝试尽可能广泛的用户群?
注意:配置保存在PHP文件中config.php.
我已经看到了不同的做法,这里是一个简短的示例列表(我在这些示例中存储数据库信息):
常数:全局,只读
define('DB_USER','user12');
define('DB_PASS','21user');
Run Code Online (Sandbox Code Playgroud)
使用GLOBALS数组:全局,可变,重复,与其他全局变量混合
$GLOBALS['DB_USER']='user12';
$GLOBALS['DB_PASS']='21user';
Run Code Online (Sandbox Code Playgroud)
使用非全局数组但提升了globaly:可能比第二个选项更差
$config=array(); ...
$config['DB_USER']='user12';
$config['DB_PASS']='21user';
... global $config;
mysql_connect('localhost',$config['DB_USER'],$config['DB_PASS']);
Run Code Online (Sandbox Code Playgroud)
定义类属性:(全局,可枚举)
class Config {
public $DB_USER='user12';
public $DB_PASS='21user';
}
Run Code Online (Sandbox Code Playgroud)
标准/选项/特点:
在系统运行期间可能需要更改配置,因此选项1已不可行.第三种选择也不太干净.
在写这篇文章的时候,我对主观和封闭的讨论发出了重大警告.因此,请继续关注主题,并给出有效的理由来解答您的问题.
这是一个非常明显的问题,考虑到我对不同的答案非常熟悉,你可能会问,为什么我要大惊小怪呢?问题是,我正在开发一个框架,并且与另一个框架(*ahem*joomla*ahem*)不同,我不想通过他们错误的投掷错误信息的解决方案,最终必须更改/在将来重新定位.
编辑:首先,配置文件的位置与我无关.如果他们愿意,我会确保人们可以轻松更改位置,但这不是必需的.首先,廉价的虚拟主机不允许这样做,其次,就安全性而言,这真的不是一个好的选择.为什么?因为,框架需要知道配置的位置.真的,通过默默无闻的安全措施不起作用.我宁愿修复所有RFI和XSS(例如),而不是偏执地将配置文件隐藏在多个层下.
我正在尝试使用 Kotlin Exposed 将记录批量插入到 SQL 表中。我已经按照公开文档设置了代码,但是,正在执行的 SQL 语句是单独的插入语句而不是 1 个批量插入语句。
位于此处的文档: https: //github.com/JetBrains/Exposed/wiki/DSL 有关批量插入的内容如下:
批量插入
批量插入允许在一个 sql 语句中将实体列表映射到数据库原始数据中。它比一条一条插入效率更高,因为它只启动一条语句。这是一个例子:
val cityNames = listOf("Paris", "Moscow", "Helsinki")
val allCitiesID = cities.batchInsert(cityNames) { name ->
this[cities.name] = name
}
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
val mappings: List<Triple<String, String, String>> = listOf(triple1, triple2, triple3)
transaction {
TableName.batchInsert(mappings) {
this[TableName.value1] = it.first
this[TableName.value2] = it.second
this[TableName.value3] = it.third
}
}
Run Code Online (Sandbox Code Playgroud)
我期望看到打印的是 1 个批量插入语句,其语法如下
INSERT INTO TableName (value1, value2, value3) values
(triple1value1, triple1value2, triple1value3),
(triple2value1, triple2value2, triple2value3),
(triple3value1, triple3value2, triple3value3), ... …Run Code Online (Sandbox Code Playgroud) 这可能是关于惯例,最佳做法和/或个人偏好的问题:
所以我是一个git noob,我的网站代码不值得分享,所以我不使用github等.
知道git不需要中央存储库我想:很棒,我的工作站和服务器是两个节点,我只是将更改从我的工作站推送到服务器.
当我开始时,代码只在服务器上,所以我:
git initgit clone me@myserver:path/to/repogit push me@myserver:path/to/repo我得到了奇怪的结果.我在本地添加的文件出现在服务器上,但未反映对现有文件的更改.
然后我读了一个警告,不要推送到已检出的远程分支.所以新的设置是:
git clone --bare制作一个裸库~/repos/mysite.git- 不是公用文件夹)git push me@myserver:repos/mysite.gitgit pull ~/repos/mysite.git获取最新信息这是正确的?这合乎逻辑吗?这是你会做的吗?
我正在尝试使用servlet进行IPN回调.我正在使用的代码由paypal提供,用于验证ipn数据.但每次我收到INVALID回复.
这是代码:
Enumeration en = req.getParameterNames();
String str = "cmd=_notify-validate";
while (en.hasMoreElements()) {
String paramName = (String) en.nextElement();
String paramValue = req.getParameter(paramName);
//str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue,"UTF-8"); // for UTF-8 i set the encode format in my account as UTF-8
//str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue,"ISO-8859-1");// for ISO-8859-1 i set the encode format in my account as ISO-8859-1
str = str + "&" + paramName + "=" …Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的错误,好吧,MSIE.
似乎它在所有主要的MSIE版本上都失败了:6,7,8和9(!)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" ><head><title>test</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
var test=jQuery('#in');
test.focus(function(){
if(test.val()=='empty')test.val('');
test.attr('readonly',false);
});
test.blur(function(){
if(test.val()=='')test.val('empty');
test.attr('readonly',true);
});
});
</script>
</head><body>
<input type="text" value="empty" readonly="readonly" id="in"/>
</body></html>
Run Code Online (Sandbox Code Playgroud)
让我解释一下这个系统是如何工作的以及出了什么问题.
当用户单击(聚焦)输入框时,应使输入框可编辑(即丢失只读标志).然后,当他/她离开输入框(即模糊事件)时,完成一些处理(未在代码中示出)并且输入框是只读的.
这在大多数浏览器(firefox,opera,基于webkit)中都很有魅力,但不是任何版本的IE(包括9 beta).问题是在IE中,用户必须单击输入框两次.
此时,您可能会问第一次输入框是否只读?不,我测试了它,javascript报告它是可编辑的.
轻松修复,只需在输入框上触发点击事件(模拟用户的双击行为),不是吗?没有,.click()并且.focus()都失败了.不知道为什么.
编辑:知道光标确实显示在文本框中,至少是明显的.
重要提示:人们,请在回答前至少尝试一下代码!
我正在尝试使用以下代码将一些JSON发布到使用cURL的Web服务:
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_URL, 'http://index.yolink.com/index/define?o=json&ak=APIKEY');
curl_setopt($ch, CURLOPT_HTTPHEADERS,array('Content-Type: application/json'));
$data = array(
'ignore-robots' => 'false',
'language' => 'english',
'crawl-delay' => '0',
'depth' => '3',
'root' => array('url' => 'http://bartleby.com/')
);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$result=curl_exec($ch);
var_dump($result);
Run Code Online (Sandbox Code Playgroud)
我得到以下回报:
string(282)"HTTP/1.1 200 OK服务器:Apache-Coyote/1.1访问控制允许 - 来源:*内容类型:text/plain内容 - 长度:120日期:星期五,2011年3月18日19:03:23 GMT {"code":"error.indexdefinition.invalid","message":"为/ define提供的内容无效.错误:文件过早结束.."}"
我发现这篇博文似乎是相关的 - text/plain即使我已经指定了ContentTypein CURLOPT_HTTPHEADERS,它似乎确实在发送application/json.但添加http_build_query没有帮助.
在此先感谢您的帮助!
我相信这对你们所有人来说都很容易,但这对我来说是全新的。
基本上,我想检查登录用户的个人资料是否附加了某些元数据,网站上是否会显示某些内容。
用户的元数据存储在 wp_usermeta 表中,该表包含 umeta_id、user_id、meta_key 和 meta_value。本质上,我需要查看 user_id 是否有一个名为“test”的 meta_key。
我知道 get_user_meta() 函数,但我无法让它按照我想要的方式工作......
global $current_user;
get_currentuserinfo(); // wordpress global variable to fetch logged in user info
$userID = $current_user->ID; // logged in user's ID
$havemeta = get_user_meta($userID, 'test', true); // stores the value of logged in user's meta data for 'test'.
if (isset($havemeta)){
echo $havemeta;
} else {
echo "No";
}
Run Code Online (Sandbox Code Playgroud)
这段代码的理论是,我检查 meta_key 'test' 是否包含一个 meta_value,如果为真,则执行 X 否则执行 Y。令人烦恼的是,并非所有用户都有一个 'test' 的 meta_key。因此,如果登录用户没有此元密钥,则代码不起作用。此外,我不想检查元键的实际值(我所关心的可以是 NULL),我只想知道登录用户是否存在这样的键。
有任何想法吗?
关于执行以下操作的做法存在一些争议:
a, input, textarea, button {
outline: none;
}
Run Code Online (Sandbox Code Playgroud)
可访问性问题是一个常见问题.
我不打算完全删除此功能(如上面的代码所示); 但是,这个功能通过在不受欢迎的区域添加非预期的边框(嗯,轮廓?)而极大地混淆了我的原始设计.
主要问题是这些轮廓实际上遵循元素周围的矩形区域,而不是其轮廓(即它忽略边界半径等).
例:
div {
margin: 64px;
}
input {
font-size: 20px;
border-radius: 16px;
border: 2px solid #CCC;
padding: 2px 12px;
}
button {
font-size: 20px;
border-radius: 32px;
text-transform: uppercase;
color: #FFF;
border: 2px solid #CCC;
background: #CCC;
padding: 6px 3px;
cursor: pointer;
}Run Code Online (Sandbox Code Playgroud)
<div>
<input type="text" placemark="Search query..."/>
<button>Go</button>
</div>Run Code Online (Sandbox Code Playgroud)
我所知道的唯一解决方案是运行上面的代码并使用我自己的系统.
采用这种方法时最佳做法是什么?
这种行为在PHP中是否正确?
<?php echo '-' . 1 + 1 . ' crazy cats'; ?>
// Outputs:
0 crazy cats
Run Code Online (Sandbox Code Playgroud)
据我所知,减号被连接到第一个'1'和'-1'连接到整数,而不是'2'连接到字符串.
请解释原因.
解决它的最佳方法是什么?这个?
<?php echo '-' . (string)1 + 1 . ' crazy cats'; ?>
Run Code Online (Sandbox Code Playgroud)