Php 用户注册/登录?
我是PHP新手,login.PHP会让你使用用户名而不是电子邮件。你如何使它,我可以让用户的登录只是通过电子邮件,一个密码,而不是他们使用那里的用户名密码 Login.phpPhp 用户注册/登录?,php,mysql,session,login,Php,Mysql,Session,Login,我是PHP新手,login.PHP会让你使用用户名而不是电子邮件。你如何使它,我可以让用户的登录只是通过电子邮件,一个密码,而不是他们使用那里的用户名密码 Login.php <?php session_start(); // Header file require_once "views/template/header.php"; if ($_GET["op"] == "login") { if (!$_POST["username"] || !$_POST["password"])
<?php
session_start();
// Header file
require_once "views/template/header.php";
if ($_GET["op"] == "login")
{
if (!$_POST["username"] || !$_POST["password"])
{
die("You need to provide your e-mail and password.");
}
// Create query
$q = "SELECT * FROM `users` "
."WHERE `username`='".$_POST["username"]."' "
."AND `password`=PASSWORD('".$_POST["password"]."') "
."LIMIT 1";
// Run query
$r = mysql_query($q);
if ( $obj = @mysql_fetch_object($r) )
{
// Login good, create session variables
$_SESSION["valid_id"] = $obj->id;
$_SESSION["valid_user"] = $_POST["username"];
$_SESSION["valid_time"] = time();
// Redirect to member page
Header("Location: members.php");
}
else
{
// Login not successful
die("Sorry, could not log you in. Wrong login information.");
}
}
else
{
//If all went right the Web form appears and users can log in
echo "<form action=\"?op=login\" method=\"POST\">";
echo "Username: <input name=\"username\" size=\"15\"><br />";
echo "Password: <input type=\"password\" name=\"password\" size=\"8\"><br />";
echo "<input type=\"submit\" value=\"Login\">";
echo "</form>";
echo "Don't have account <a href='register.php'>create account now!</a>";
}
require_once "views/template/footer.php";
?>
只需查找电子邮件而不是用户名:
// Create query
$q = "SELECT * FROM `users` "
."WHERE `email`='".$_POST["username"]."' "
."AND `password`=PASSWORD('".$_POST["password"]."') "
."LIMIT 1";
并更改表单标签:
echo "Email: <input name=\"username\" size=\"15\"><br />";
echo“电子邮件:
”;
这是最快的解决办法。显然,为了更彻底,您需要用电子邮件替换登录脚本中的所有“Username”或$\u POST['Username']
,因为它是。更改标题(“Location:members.php”)代码>至标题(“位置:http://www.php.net");
如果条件不可能,则需要在前两个中同时设置GET和POST信息。如果没有获取信息,您将看到表单,如果有获取信息,$_POST['username']
将计算为true并执行die()。@baerbjoern,虽然它不是RESTfully正确的,但您只需将?yourgetvariable=value
放在POST表单方法的末尾即可。@baerbjoern:您可以同时执行GET和POST操作。
echo "Email: <input name=\"username\" size=\"15\"><br />";