使用PHP身份验证脚本的Javascript登录页面 - 哪种实现最好?

我为我的HTTP文件服务器编写了一个有效的php身份验证脚本。 现在,我想写一个带有一些漂亮图形的登录页面。 我通常用HTML5,javacscript和CSS编写我的页面。 我不知道如何实现php身份验证脚本。 到目前为止,我认为我有两种方式:</ p>


  1. 在html5和javascript中编写登录页面,用户输入后使用ajax调用php脚本 输入框中的名称/密码,将用户名和密码传递给脚本,并使php返回ether true或false,具体取决于该用户是否经过身份验证。 问题是,我不知道如何让php返回true或false给javascript。</ p> </ li>

  2. 编写一个PHP前端控制器模型,其中index.php加载html5,javascript, 和css用于图形,如果用户通过身份验证,则重定向到html文件服务器的普通index.html文档。 这个问题是我不熟悉使用php作为前端控制器,我不知道我是否可以使用javascript动态更改元素以获得特殊效果,就像它是一个普通的html5页面一样。 </ p> </ li>
    </ ol>
    </ div>

展开原文

原文

I wrote a working php authentication script for my HTTP file Server. Now, I want to write a login page with some nice graphics. I usually write my pages in HTML5, javacscript, and CSS. I am not sure how to implement the php authentication script. So far I have two ways I think I know of:

  1. Write the login page in html5 and javascript, use ajax call to the php script after user enters name/password in input boxes, pass the username and password to the script, and have php return ether true or false depending on if that user was authenticated. Problem is, I do not know how to get php return true or false to javascript.

  2. Write a PHP front controller model where the index.php loads html5, javascript, and css for graphics and if user is authenticated then redirect to the normal index.html document for the html file server. The problem with this is I am not familiar with using php as the front controller and I don't know if I can dynamically change elements with javascript for special effects just as if it was a normal html5 page.

dpcwz210393
dpcwz210393 如果您习惯使用javascript并且想要在服务器端安全地处理自动化。你应该看看nodejs.org它的服务器端javascripting...
7 年多之前 回复
dou4624
dou4624 这听起来像你的背景,你最好做#1。您将不得不考虑使用PHP处理AJAX请求,并且更有可能遇到您必须解决的安全问题。或者,您可以使用PHP脚本(这将更容易保护)。对于单个功能而言,前端控制器不值得使用,现在开始使用脚本,并且当您有其他功能可以共享时,担心共享功能。
大约 8 年之前 回复

3个回答



您可以使用 jQuery </ a >用于发出Ajax请求的库。

请求将以这种方式(它是javascript):</ p>

  function submitLogin(enteredUsername,enteredPassword){

$ .post('login.php',{username: enteredUsername,password:enteredPassword},
function(response){
if(response.result == true){
//此处成功代码
} else {
//此处失败代码
}
登录时,应使用以下代码:</ p>

  &lt;?php 

$ username = $ _POST ['username'];
$ password = $ _POST ['password'];
// ...在此处检查用户名和密码
echo json_encode(array( 'result'=&gt; true)); //这是响应,真或假
exit;

?&gt;
</ code> </ pre>
</ div>

展开原文

原文

You can use jQuery library for making Ajax request. Request will look this way (it's javascript):

function submitLogin(enteredUsername, enteredPassword) {

  $.post('login.php', {username: enteredUsername, password:enteredPassword},   
  function(response) {
      if (response.result == true) {
         // success code here
      } else {
         // fail code here
      }
  }, 'json');
}

login.php file should have this code:

<?php

$username = $_POST['username'];
$password = $_POST['password'];
//... check username and password here
echo json_encode(array('result' => true)); // this is response, true or false
exit;

?>



在对freenode进行大量询问之后,我发现最好将文档隐藏在Web根目录之外,并且有一个服务器端脚本 像index.php用户身份验证后,像php一样为自己服务。 </ p>

我可以使用来自nginx的auth_basic,但我想要一个更强大的加密或散列 - 因此是服务器脚本语言。 我想像facebook这样的大鱼类使用像auth_basic模块这样的网络服务器认证......但是更加个性化和开发的版本。 所以,在我的情况下,我会将文件放在web根目录之外。 </ p>
</ div>

展开原文

原文

After doing alot of asking around on freenode, I found it is best to hide the documents outside of web root and have a server side script like php serve them itself after user authentication from the index.php.

I could use auth_basic from nginx, but I wanted a stronger encryption or hash - hence a server scripting language. I suppose the big fishes like facebook use webserver authentication like auth_basic module...but a much more customized and developed version. So, in my situation I will place the files outside of web root.



我建议第一个解决方案。 您可以使用 http://api.jquery.com/jQuery.post/
来获取 你的PHP返回到javascript。 </ p>
</ div>

展开原文

原文

I would suggest the first solution. You can use http://api.jquery.com/jQuery.post/ to get your php return to javascript.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问