如何在PHP中通过电子邮件id使用会话获取表的另一个数据
我的桌名-人 我的表列如何在PHP中通过电子邮件id使用会话获取表的另一个数据,php,mysql,session,Php,Mysql,Session,我的桌名-人 我的表列 fname lname email password 我想通过电子邮件id或密码使用会话从表中获取fname。我想在登录后在另一个页面上显示fname。请帮帮我 session_start(); $cser = mysqli_connect("localhost", "root", "", "srptech") or die("connection failed:" . mysqli_error()); if (isset($_REQUEST['login
fname lname email password
我想通过电子邮件id或密码使用会话从表中获取fname。我想在登录后在另一个页面上显示fname。请帮帮我
session_start();
$cser = mysqli_connect("localhost", "root", "", "srptech") or die("connection failed:" . mysqli_error());
if (isset($_REQUEST['login'])) {
$c = $_REQUEST['fname'];
$a = $_REQUEST['email'];
$b = $_REQUEST['password'];
$res = mysqli_query($cser, "select fname from persons where email='$a'and password='$b'");
while ($row = mysql_fetch_array($res)) {
$fname = $row['fname'];
$_SESSION["user-name"] = $fname;
}
$result = mysqli_num_rows($res);
if ($result == true) {
$_SESSION["login"] = "1";
$_SESSION["email-id"] = $a;
header("location:my-account.php");
exit();
session_write_close();
} else {
header("location:index.php?err=1");
}
}
另一个页面是my-account.php
session_start();
if (!isset($_SESSION["login"])) // $_SESSION is a variable and login is a SESSION name
{
header("location:index.php");
} else {
echo 'Welcome' . '<h3>' . $_SESSION["email-id"] . '</h3>';
echo 'Welcome' . '<h3>' . $_SESSION["user-name"] . '</h3>';
}
session_start();
如果(!isset($\u SESSION[“login”])/$\u SESSION是变量,login是会话名称
{
标题(“location:index.php”);
}否则{
回显“欢迎”。“$\u会话[“电子邮件id]”;
回显“欢迎”。“$\u会话[“用户名]”;
}
电子邮件在另一页上回送,但不显示fname(回送)
错误-用户名无效。
如何在另一页上回显fname?请帮助我。我更新了您的脚本,现在可以安全地使用不可能的SQL注入
<?php
if (isset($_REQUEST['login']))
{
$Email = $_REQUEST['email'];
$Password = $_REQUEST['password'];
$DB = new mysqli("localhost", "root", "", "srptech");
if ($DB->connect_errno)
{
printf("Connect failed: %s\n", $DB->connect_error);
exit();
}
$STMT = $DB->prepare("SELECT `fname` FROM `persons` WHERE `email` = ? AND `password` = ? LIMIT 1");
$STMT->bind_param("ss", $Email, $Password);
$STMT->execute();
$STMT->bind_result($FirstName);
$STMT->fetch();
$STMT->close();
if ($FirstName)
{
session_start();
$_SESSION["user-name"] = $FirstName;
$_SESSION["login"] = "1";
$_SESSION["email-id"] = $Email;
header("location:my-account.php");
exit();
}
header("location:index.php?err=1");
}
?>
哎哟!这意味着您正在使用纯文本密码!!!PHP提供并请使用它们。如果您使用的是5.5之前的PHP版本,我还建议您使用一些合理的代码缩进。它帮助我们阅读代码,更重要的是,它将帮助您为自己的利益调试代码。您可能会被要求在几周/几个月内修改此代码,最终您会感谢我。您的脚本甚至可以在MYSQLI_uuquo
或PDO
API的更多侧注中使用:标题(“location:index.php”)代码>将不起作用,因为您在此处有输出:?>我想从我的表中获取fname,并将其设置为另一页上的session和echo。请帮助我使用我的代码。“试试这个”答案,但不要解释为什么它能解决问题,很少能与最好的答案竞争。请包括你改变了什么以及为什么!旁注:a
丢失了@Ali Khazaee您的代码中有一个错误-错误是-------解析错误:语法错误,在C:\xampp\htdocs\PHP\loginprocess.PHP的第19行
@ShaktiRana,请重试