我想阻止用户意外发布两次评论.我使用PRG(post redirect get)方法,以便我将数据插入另一个页面,然后将用户重定向回显示注释的页面.这允许用户根据需要刷新多次.但是,当用户返回并再次单击提交或者他们点击提交100次非常快时,这不起作用.我不想要100个相同的评论.
我在SO上查看了相关问题,发现令牌最好.但我无法使用它.
//makerandomtoken(20) returns a random 20 length char.
<form method="post" ... >
<input type="text" id="comments" name="comments" class="commentbox" /><br/>
<input type="hidden" name="_token" value="<?php echo $token=makerandomtoken(20); ?>" />
<input type="submit" value="submit" name="submit" />
</form>
if (isset($_POST['submit']) && !empty($comments))
{
$comments= mysqli_real_escape_string($dbc,trim($_POST['comments']));
//how do I make the if-statment to check if the token has been already set once?
if ( ____________){
//don't insert comment because already clicked submit
}
else{
//insert the comment into the database
}
}
Run Code Online (Sandbox Code Playgroud)
所以我将令牌作为隐藏值,但我如何使用它来防止多次单击提交.
方法: …
我的笔记本电脑是64位,所以当我开始使用Qt时,我选择了64位QtCreator.现在我遇到了一个问题,我希望我生成的可执行文件可以在32位linux系统上运行.
我可以设置QtCreator来生成32位可执行文件吗?这样我就可以决定生成32位或64位的.
我不想安装另一个32位QtCreator> <.
我有一个函数来检查对象列表,看看它们是否被点击并相应地触发OnClick事件.我相信功能正常,但是我遇到了问题:
当我挂钩其中一个OnClick事件并删除并将该元素插入列表中的不同位置(此程序的典型功能)时,我收到"Collection was modified ..."错误.
我相信我明白发生了什么:
我的问题是,如何让我允许函数遍历所有对象,在适当的时间触发必要的事件,并仍然让用户可以选择操作对象在列表中的位置?
我跑一些Monte Carlo模拟和广泛利用Excel函数的NORM.INV使用Office Interrop.此函数采用三个参数(概率,平均值,标准差)并返回累积分布的倒数.
我想将我的代码移到Web应用程序中,但这需要在服务器上安装Excel.有没有人知道一个与NORM.INV具有同等功能的C#统计库?
我正在使用nicEdit编辑器,我已经添加了自己的自定义图像大小调整脚本.但我想禁用Firefox中出现的默认_moz_resizing.
我希望能够更好地控制调整大小的图像.(例如:仅允许图像调整大小并继承父容器的宽度.)
所以我写了一个自定义脚本.但是,由于Firefox有自己的图像大小调整控件(_moz_resizing),我如何禁用它?如果没有办法,我有一个非常简单的解决方法,我检测Firefox是否关闭我的自定义脚本并使用_moz_resizing.
但我不会有细粒度的控制,我将不得不依赖Firefox中的浏览器错误.:(
我在Eclipse中的logcat窗口只显示每个异常的StackTrace的前几行.这意味着我经常看不到发生异常的地方.有没有办法改变这个设置?
我有一个使用Paperclip来管理文件的模型.
删除模型后,我显然希望删除该文件,但我似乎无法找到如何使用Paperclip删除文件.
我曾尝试self.sourcefile = nil if !sourcefile.dirty?在before_destroy闪避,但没有任何效果.
(我希望能够在测试时在本地删除文件,然后在S3上使用时删除 - 所以我需要一个纯回形针解决方案)
有任何想法吗?
如何使用JavaScript for Windows 禁用ctrl+ alt+ del,alt+ F4,ALT+ TAB,键?
我今天已经工作了好几个小时,而且我非常接近解决方案,但显然需要一些人的帮助.我正试图通过iPhone将图像发布到Web服务.我先发布代码,然后解释我尝试过的所有内容:
NSData *imageData = UIImageJPEGRepresentation(barCodePic, .9);
NSString *soapMsg =
[NSString stringWithFormat:
@"<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><WriteImage xmlns=\"http://myserver/imagewebservice/\"><ImgIn>%@</ImgIn></WriteImage></soap:Body></soap:Envelope>", [NSData dataWithData:imageData]
];
NSURL *url = [NSURL URLWithString:@"http://myserver/imagewebservice/service1.asmx"];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength =
[NSString stringWithFormat:@"%d", [soapMsg length]];
[req addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[req addValue:@"http://myserver/imagewebservice/WriteImage" forHTTPHeaderField:@"SOAPAction"];
[req addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[req setHTTPMethod:@"POST"];
[req setHTTPBody: [soapMsg dataUsingEncoding:NSUTF8StringEncoding]];
conn = [[NSURLConnection alloc] initWithRequest:req delegate:self];
if (conn) {
webData = [[NSMutableData data] retain];
}
Run Code Online (Sandbox Code Playgroud)
首先,这个代码适用于除图像之外的任何东西.Web服务在我的本地网络上运行,我可以随意更改源代码,如果我将"ImgIn"参数更改为字符串并传入一个字符串,一切正常,我得到一个返回值没问题.因此,根本没有连接问题,我能够在此服务器上调用并从此Web服务获取数据没有问题.但我需要通过ImgIn参数将图像上传到此Web服务,因此上面的代码是我迄今为止最好的镜头.我也有didReceiveResponse,didReceiveData,didFailWithError等都被处理.上面的代码每次都会触发didRecieveResponse.但是,didReceiveData永远不会被触发,就像Web服务本身甚至从未运行过一样.当我调试Web服务本身时,当我使用字符串参数时它运行和调试很好,但是使用image参数时,它甚至在我调用它时都不会进行调试.它几乎就像ImgIn参数太长(当我将它输出到屏幕时它很大)并且Web服务只是呛到它.我已经读过在使用这种方法时必须编码到Base64,但我找不到任何关于如何完成的良好链接.如果那就是我做错了,你能不能提供如何做到这一点的代码,而不仅仅是"你需要使用Base64",我真的很感激,因为我几乎找不到任何关于如何用例.除此之外,我有点失落,似乎我正在做其他一切正确的事情.请帮忙!几乎像ImgIn参数太长(当我将它输出到屏幕时它很大)并且Web服务只是呛到它.我已经读过在使用这种方法时必须编码到Base64,但我找不到任何关于如何完成的良好链接.如果那就是我做错了,你能不能提供如何做到这一点的代码,而不仅仅是"你需要使用Base64",我真的很感激,因为我几乎找不到任何关于如何用例.除此之外,我有点失落,似乎我正在做其他一切正确的事情.请帮忙!几乎像ImgIn参数太长(当我将它输出到屏幕时它很大)并且Web服务只是呛到它.我已经读过在使用这种方法时必须编码到Base64,但我找不到任何关于如何完成的良好链接.如果那就是我做错了,你能不能提供如何做到这一点的代码,而不仅仅是"你需要使用Base64",我真的很感激,因为我几乎找不到任何关于如何用例.除此之外,我有点失落,似乎我正在做其他一切正确的事情.请帮忙!你能不能提供如何做的代码,而不仅仅是"你需要使用Base64",我真的很感激,因为我几乎找不到如何用一个例子来实现它.除此之外,我有点失落,似乎我正在做其他一切正确的事情.请帮忙!你能不能提供如何做的代码,而不仅仅是"你需要使用Base64",我真的很感激,因为我几乎找不到如何用一个例子来实现它.除此之外,我有点失落,似乎我正在做其他一切正确的事情.请帮忙!
谢谢
我经常发现自己需要迭代STL向量.当我这样做时,我需要访问vector 元素及其索引.
我曾经这样做:
typedef std::vector<Foo> FooVec;
typedef FooVec::iterator FooVecIter;
FooVec fooVec;
int index = 0;
for (FooVecIter i = fooVec.begin(); i != fooVec.end(); ++i, ++index)
{
Foo& foo = *i;
if (foo.somethingIsTrue()) // True for most elements
std::cout << index << ": " << foo << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
在发现BOOST_FOREACH之后,我将其缩短为:
typedef std::vector<Foo> FooVec;
FooVec fooVec;
int index = -1;
BOOST_FOREACH( Foo& foo, fooVec )
{
++index;
if (foo.somethingIsTrue()) // True for most elements
std::cout …Run Code Online (Sandbox Code Playgroud)