Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示用户登录的数据_Php_Mysql - Fatal编程技术网

Php 显示用户登录的数据

Php 显示用户登录的数据,php,mysql,Php,Mysql,我想显示表中的用户数据,因此一旦用户登录到网站,页面上就会显示文本“Welcome(firstname)(lastname)” firstname的列是“firstname”,lastname是“lastname”。 我尝试过许多不同的方法,但它们似乎都返回错误,我无法让它工作。如果有人能帮忙,那就太好了 这是我的密码: <html> <head> <title>Landing page</title> <link rel="styleshe

我想显示表中的用户数据,因此一旦用户登录到网站,页面上就会显示文本“Welcome(firstname)(lastname)”

firstname的列是“firstname”,lastname是“lastname”。 我尝试过许多不同的方法,但它们似乎都返回错误,我无法让它工作。如果有人能帮忙,那就太好了

这是我的密码:

<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很陌生