小编Fra*_*ger的帖子

如何在没有后备数据库的情况下实现基于FORM的身份验证

我有一个PHP脚本作为CGI程序运行,HTTP Authenticate标头被吃掉并吐出.所以我想实现某种基于FORM的身份验证.作为附加约束,没有数据库,因此不能存储会话数据.

我非常愿意拥有主用户名和密码.我只需要保护应用程序免受不知道这些凭据的入侵者的侵害.

那你将如何实现呢?

饼干?

我可以提供表单,如果它有效,我可以发回一个cookie,它是IP地址的哈希密码.然后我可以阻止页面呈现,除非事物正确解密.但我不知道如何在PHP中实现它.

php authentication cookies cgi http

6
推荐指数
1
解决办法
3277
查看次数

您在实施/使用WebDAV方面有哪些经验?

对于当前项目,我正在考虑实现WebDAV以呈现客户端可以访问的虚拟文件存储.到目前为止我只进行了Google研究,但看起来我只能实现两种方法:

GET, PROPFIND
Run Code Online (Sandbox Code Playgroud)

我认为这很棒.我只是好奇.如果我想通过以下方式实现文件上传:

PUT
Run Code Online (Sandbox Code Playgroud)

我还没有实现它,但看起来很简单.我唯一担心的是,如果用户使用标准的Vista Explorer或OSX Finder,是否会显示进度表.

我想我正在寻找一些有WebDAV经验的人的故事.

windows asp.net filesystems macos webdav

6
推荐指数
3
解决办法
5972
查看次数

如何在Python中处理YAML流

我有一个命令行应用程序连续输出以下形式的YAML数据:

- col0: datum0
  col1: datum1
  col2: datum2
- col0: datum0
  col1: datum1
  col2: datum2
...

它永远都是这样做的.我想写一个Python脚本,不断读取每个记录.

PyYAML库似乎最擅长于完全加载的字符串并将它们解释为完整的YAML文档.有没有办法将PyYAML置于"流媒体"模式?

或者我自己选择将数据分块并一点一点地输入PyYAML?

python streaming command-line yaml

6
推荐指数
1
解决办法
2151
查看次数

无法将OpenGL应用程序移植到Windows

我正在尝试将OpenGL应用程序移动到Windows.

据我所知,Windows有一个不错的OpenGL实现.但我开始认为它不......

具体来说,我使用数组缓冲区和glDrawArrays.

当我尝试在Visual Studio 2008 Pro中编译我的代码时,我收到以下错误:

vertexbuffers.cpp(31) : error C3861: 'glGenBuffers': identifier not found
vertexbuffers.cpp(32) : error C2065: 'GL_ARRAY_BUFFER' : undeclared identifier
vertexbuffers.cpp(32) : error C3861: 'glBindBuffer': identifier not found
vertexbuffers.cpp(33) : error C2065: 'GL_ARRAY_BUFFER' : undeclared identifier
vertexbuffers.cpp(33) : error C2065: 'GL_STATIC_DRAW' : undeclared identifier
vertexbuffers.cpp(33) : error C3861: 'glBufferData': identifier not found

当我检查<GL\gl.h>(包含在内C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl)时,我看到:

/* ClientArrayType */ 
/*      GL_VERTEX_ARRAY */
/*      GL_NORMAL_ARRAY */
/*      GL_COLOR_ARRAY */
Run Code Online (Sandbox Code Playgroud)

更新,但似乎那些含量在其他地方定义.

如果我无法访问这些功能,我应该如何生成缓冲区?

该文档并未说明这些数组类型已被禁用.如何在Windows上访问OpenGL上的 …

c++ windows opengl visual-studio

6
推荐指数
2
解决办法
8343
查看次数

tabBarController和navigationControllers在横向模式中,第二集

我有一个UITabBarController,每个选项卡处理一个不同的UIViewController,根据需要推送堆栈的新控制器.在其中两个选项卡中,当达到特定控制器时,我需要能够旋转iPhone并以横向模式显示视图.经过艰苦的努力,我发现必须继承UITabBarController以覆盖shouldAutorotateToInterfaceOrientation.但是,如果我只是在实现中返回YES,则会出现以下不良副作用:

旋转iPhone时,每个标签中的每个控制器都会自动进入横向模式.

甚至覆盖shouldAutorotateToInterfaceOrientation在每个控制器中返回NO不起作用:当iPhone旋转时,控制器处于横向模式.

我在子类UITabBarController中实现了如下的shouldAutorotateToInterfaceOrientation:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if([self selectedIndex] == 0 || [self selectedIndex] == 3)
        return YES;

    return NO;
}
Run Code Online (Sandbox Code Playgroud)

因此,只有我感兴趣的两个选项卡实际上支持横向模式.有没有办法在特定选项卡的堆栈上支持特定控制器的横向模式?

我尝试过没有成功的事情

(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

if([self selectedIndex] == 0 || [self selectedIndex] == 3)
{   
   if ([[self selectedViewController] isKindOfClass: [landscapeModeViewController class]])
           return YES;
    }

     return NO;
Run Code Online (Sandbox Code Playgroud)

}

另外,我尝试使用委托方法didSelectViewController,但没有成功.任何帮助是极大的赞赏.谢谢.

iphone landscape uitabbarcontroller uiviewcontroller

6
推荐指数
2
解决办法
1万
查看次数

尝试使用HttpListener时为什么会出现"AccessDenied"?

赢7和VS2010 B2.我正在尝试使用内置编写一个最小的Web服务器HttpListener.但是,我一直收到AccessDenied异常.这是代码:

    int Run(string[] args) {

        _server = new HttpListener();
        _server.Prefixes.Add("http://*:9669/");
        _server.Start();

        Console.WriteLine("Server bound to: {0}", _server.Prefixes.First());

        _server.BeginGetContext(HandleContext, null);
    }
Run Code Online (Sandbox Code Playgroud)

如果我绑定到系统端口,我可以理解需要以管理员身份运行,但我不明白为什么我对9669的绑定应该需要特殊权限.

有任何想法吗?

.net sockets web-services

6
推荐指数
1
解决办法
1万
查看次数

如何使用POSIX线程实现阻塞读取

我想实现一个遵循大致接口的生产者/消费者场景:

class Consumer {
private:
    vector<char> read(size_t n) {
        // If the internal buffer has `n` elements, then dequeue them
        // Otherwise wait for more data and try again
    }
public:
    void run() {
        read(10);
        read(4839);
        // etc
    }
    void feed(const vector<char> &more) {
        // Safely queue the data
        // Notify `read` that there is now more data
    }
};
Run Code Online (Sandbox Code Playgroud)

在这种情况下,feedrun将运行在独立的线程和read应该是一个阻挡读出(如recvfread).显然,我需要在我的双端队列中进行某种互斥,我需要某种通知系统来通知read再试一次.

我听说条件变量是要走的路,但我所有的多线程经验都在于Windows,我很难绕过它们.

谢谢你的帮助!

(是的,我知道返回向量是没有效率的.让我们不要进入那个.)

c++ multithreading pthreads producer-consumer

5
推荐指数
1
解决办法
3793
查看次数

您可以使用哪些技术在有损单向通道上编码数据?

想象一下,你有一个本质上有损且单向的沟通渠道.也就是说,存在一些不可能消除的固有噪声,例如,随机位被切换.还想象它是一种方式 - 你不能请求重传.

但无论如何,您都需要通过它发送数据.您可以使用哪些技术通过该频道发送号码文字

  1. 是否有可能对数字进行编码,以便即使使用随机比特,它们仍然可以解释为接近原始值(有损传输)的值?

  2. 有没有办法以无损方式发送一串字符(ASCII,比如说)?

这只是为了好玩.我知道你可以使用莫尔斯电码或任何极低频率的二进制通信.我知道奇偶校验位和校验和,以检测错误和重试.我知道你不妨使用模拟信号.我只是好奇是否有任何有趣的计算机技术技术通过有损频道发送这些东西.

networking communication

5
推荐指数
1
解决办法
435
查看次数

Perl中的@ {$ list_ref}和@ $ list_ref是否相同?

我是新来的Perl和很好奇是否@{$list_ref}@$list_ref是完全等价的.

它们似乎是可以互换的,但我很紧张,有一些微妙的事情可能会让我失踪.

perl dereference

5
推荐指数
2
解决办法
240
查看次数

大量数据传输后,iPhone Socket失败

我的套接字测试应用程序有一个有趣的问题.

我已经设置了一个带有AcceptCallback函数的侦听套接字.我使用以下方法连接到侦听套接字:

CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, 
                                   (CFStringRef) self.clientService.hostName, 
                                   self.clientService.port, 
                                   &myReadStream,
                                   &myWriteStream);
Run Code Online (Sandbox Code Playgroud)

我已经将数据发送回监听套接字myReadStream和myWriteStream,我将这两个转换为它们的NSStream等价物.

发送许多单独的数据包后会出现此问题.数据包的大小无关紧要,它是似乎引入错误的数据包数(或CFStreamCreatePairWithSocketToHost创建数).

在我发送大量数据包(可能大约100或200)后,当我尝试通过NSOutputStream发送数据时,我在NSStreamEvent回调中收到错误:

Operation could not be completed. (NSUnknownErrorDomain error 8.)

然后,如果我尝试创建新服务并将其发布到网络上,当我尝试解析新地址时会出现错误.它在NSNetService:didNotResolve委托方法中给出了错误代码10(此外,错误描述在这里是空白的).

这几乎就像监听套接字是"满"的,但它似乎认为它运行正常,因为当我检查CFSocketIsValid时它返回true.

我很难过,花了几个小时试图调试情况......有什么想法吗?谢谢.

sockets iphone

5
推荐指数
1
解决办法
777
查看次数