PHP应用程序通过web和桌面的单一入口点
我正在尝试创建一个登录过程。但似乎不可能创建一个能与桌面应用程序和标准网站协同工作的流程 相反,我在PHP应用程序通过web和桌面的单一入口点,php,login,Php,Login,我正在尝试创建一个登录过程。但似乎不可能创建一个能与桌面应用程序和标准网站协同工作的流程 相反,我在Usermanagement.php(这是一个类,icyntk)中有登录函数,但在另一个php文件(api/login.php)中有: 然后我还需要制作另一个login.php,以便与网站上的登录表单一起使用。因为我看不到从index.php文件(在登录表单所在的位置,它只有HTML)获取api/login.php脚本的结果(回声) 无论如何,我可以简化这一点,这样我只需要一个login.ph
Usermanagement.php
(这是一个类,icyntk)中有登录函数,但在另一个php文件(api/login.php
)中有:
然后我还需要制作另一个login.php
,以便与网站上的登录表单一起使用。因为我看不到从index.php
文件(在登录表单所在的位置,它只有HTML)获取api/login.php
脚本的结果(回声)
无论如何,我可以简化这一点,这样我只需要一个
login.php
?由于桌面应用程序中的数据不太可能通过$\u POST
数组发送,我会说不。网站和桌面应用程序是两种完全不同的应用程序,如果认为你可以在两者之间共享很多前端代码,那是不现实的
我会尝试将尽可能多的功能抽象到核心类中,然后创建两个独立的前端实现,以各自的方式利用核心。据我所知,您需要的是:
在PHP中,选中$\u POST['action']=='login'
,并调用login方法
编辑:当您的网站将使用PHP会话或cookie时,您可能希望使用自己的会话令牌跟踪登录状态,您可以将其传递到桌面应用程序,以便它可以用于连续调用API,因此您无需处理cookie。这些令牌还应绑定到IP,可能还有客户的其他“个人”信息;理想情况下,这些信息应该散列到令牌或加密的令牌中(客户端不必“解密”,只需将其返回以进行身份验证)。令牌在不活动后也应超时
另外,在阅读了您以前的问题之后,我担心您可能会尝试做一些不好的事情,比如通过网络发送哈希,然后简单地在您的用户表中检查该哈希,因为这里讨论了JS端编码。如果你想在客户端实现一些加密算法,要么确保它是安全的(除非你对密码学感兴趣,否则很难做到这一点),要么求助于SSL。我会变得非常“利姆比”,然后说这就是你要做的:
<?php
if(isset($_POST['username'])) {
require_once '../usermanagement.php';
$m = new usermanage();
echo $m->login($_POST['username'], $_POST['password']);
}else{
?>Put your login form HTML here<?php
}
将您的登录表单HTML放在这里PHP不是为桌面应用程序设计的,因此…Jonathan,如果不知道您在最后一个问题(Cookie或会话ID的手动管理)中将要走哪条路径,这个问题是不可能回答的。目前,是你的应用程序让人尴尬:)有什么问题?我看不出这段代码有任何错误。显然,我并没有试图用php编写桌面应用程序。很抱歉,我在桌面应用程序中使用cookies作为会话ID。@luiscubal为true,但他正在尝试使桌面应用程序与PHP脚本交互,这应该是可行的。如果(!empty($\u POST['username'])和&!empty($\u POST['password'])
,则不使用其他块,在if语句中,您可以将其更改为重定向到索引页。唯一的问题是HTML表单以与vb.net相同的方式将登录信息发布到login.php。应用程序和表单之间的区别在于,应用程序会回显结果,但对于表单,结果会被获取到index.php,除非有其他方法可以这样做。@Jonathan如果是这样,那么您应该有两个单独的登录文件:桌面版和web版。原因是因为你有两个不同的界面:你不希望网络黑客侵入你的桌面版本,反之亦然。你仍然可以做一些事情,比如将登录名放在一个单独的文件中,然后include()
include它。当你给出这个答案时,你希望web版本如何工作?也许我应该这样做一般来说,您有一个带有HTML表单的页面和一个PHP文件来接受表单的输入(然后重定向回表单)
<?php
if(isset($_POST['username'])) {
require_once '../usermanagement.php';
$m = new usermanage();
echo $m->login($_POST['username'], $_POST['password']);
}else{
?>Put your login form HTML here<?php
}