Php 显示用户登录的数据
我想显示表中的用户数据,因此一旦用户登录到网站,页面上就会显示文本“Welcome(firstname)(lastname)” firstname的列是“firstname”,lastname是“lastname”。 我尝试过许多不同的方法,但它们似乎都返回错误,我无法让它工作。如果有人能帮忙,那就太好了 这是我的密码:Php 显示用户登录的数据,php,mysql,Php,Mysql,我想显示表中的用户数据,因此一旦用户登录到网站,页面上就会显示文本“Welcome(firstname)(lastname)” firstname的列是“firstname”,lastname是“lastname”。 我尝试过许多不同的方法,但它们似乎都返回错误,我无法让它工作。如果有人能帮忙,那就太好了 这是我的密码: <html> <head> <title>Landing page</title> <link rel="styleshe
<html>
<head>
<title>Landing page</title>
<link rel="stylesheet" type="text/css" href="css.css">
</head>
<body>
<?php
/* ESTABLISH FIRST YOUR CONNECTION TO YOUR DATABASE */
$con = new mysqli("localhost", "root", "", "user_login"); /* REPLACE NECESSARY DATA */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if($stmt = $con->prepare("SELECT Username, Password FROM users WHERE Username = ? AND Password = ?")){
$stmt->bind_param("ss",$_POST["username"],$_POST["password"]);
$stmt->execute();
$stmt->store_result();
$checklog = $stmt->num_rows;
if($checklog > 0){
/* HERE IS YOUR CODE WITH SUCCESSFUL LOGIN */
session_start();
$_SESSION["logged_in"] = "YES";
echo "<h1>You are now logged in</h1>";
echo "<p><a href='secure1.php'>Link to protected file</a></p>";
echo "<p><a href='secure2.php'>Link to protected file #2</a></p>";
}
else {
/* HERE IS YOUR CODE WITH UNSUCCESSFUL LOGIN */
session_start();
$_SESSION["logged_in"] = "NO";
echo "<h1>You are NOT logged in </h1>";
echo "<p><a href='secure1.php'>Link to protected file</a></p>";
echo "<p><a href='secure2.php'>Link to protected file #2</a></p>";
}
$stmt->close();
}
?>
<p><a href="public.html">Public Page</a></p>
<p><a href="logout.html">Logout</a></p>
</body>
</html>
登录页
我所犯的错误是什么?我如何纠正它?试试这个
<?php if($stmt = $con->prepare("SELECT firstname,lastname,Username, Password FROM users WHERE Username = ? AND Password = ?")){
$stmt->bind_param("ss",$_POST["username"],$_POST["password"]);
$stmt->execute();
//$stmt->store_result();
//$checklog = $stmt->num_rows;
$results = $stmt->fetch(PDO::FETCH_ASSOC);
$_SESSION['firstname'] = $results['firstname'];
$_SESSION['lastname'] = $results['lastname'];
print_r($_SESSION);
您可以执行$stmt->fetch(PDO::fetch\u ASSOC)
并将结果存储在$Result
$result = $stmt->fetch(PDO::FETCH_ASSOC)
$Firstname = $result["Firstname"];
由于您可能只有一个匹配行,我建议您必须具有类似$checklog==1的条件
所以,你应该有这样的东西
$checklog = $stmt->num_rows;
if($checklog == 1) // Allows only for one match
{
session_start();
$_SESSION["logged_in"] = "YES";
$result = $stmt->fetch(PDO::FETCH_ASSOC); // Fetch the row into $result
$Firstname = $result["Firstname"]; // This is your First Name
$Lastname = $result["Lastname"]; // This is your Last Name
}
$_SESSION["FirstName"] = $result["Firstname"];
$_SESSION["LastName"] = $result["Lastname"];
您可以像这样在会话中使用名字
和姓氏
$checklog = $stmt->num_rows;
if($checklog == 1) // Allows only for one match
{
session_start();
$_SESSION["logged_in"] = "YES";
$result = $stmt->fetch(PDO::FETCH_ASSOC); // Fetch the row into $result
$Firstname = $result["Firstname"]; // This is your First Name
$Lastname = $result["Lastname"]; // This is your Last Name
}
$_SESSION["FirstName"] = $result["Firstname"];
$_SESSION["LastName"] = $result["Lastname"];
更新:
以下是专为您手工制作的酷炫且完全更新的版本:)
我冷静地花了10分钟来构建它:)
您尝试回显“欢迎(名字)(姓氏)”的代码在哪里?您得到了什么错误?您需要在查询中获取Firstname和Lastname,然后使用结果变量打印它们。它显示了一个错误:语法错误,意外的“$Firstname”(T_变量)。对不起,我还在学PHPSorry,是我的错,我错过了代码>在$result=$stmt->fetch(PDO::fetch_ASSOC)行中代码>我已经更新了,你能试试吗?谢谢你的帮助;但是,在第27行出现了一个新的错误:“警告:mysqli_stmt::fetch()需要0个参数,给定1个参数:”$result=$stmt->fetch(PDO::fetch_ASSOC);//将行提取到$result中“谢谢。我已经更新了我的答案,您现在可以检查它了。”。。抱歉,回复晚了:)我不确定您的数据库中是否有FirstName
或FirstName
,您可以相应地更改它:)您好,我收到了错误:“警告:mysqli_stmt::fetch()需要精确的0个参数,行中给出了1个:“$results=$stmt->fetch(PDO::fetch_ASSOC);”,如果我有错误,请道歉,我对PHP很陌生