因此,我使用PHP和MySQL数据库创建了一个登录成功的登录页面。我的代码成功地检查了用户名和密码,并且只有在它们正确后才允许我进入下一页。
但是,我无法在成功登录页面上打印用户名。所以我不确定我的会话是否正常运行。
login.php
<!DOCTYPE HTML>
<html>
<?php
session_start();
?>
<head>
<title>Login</title>
</head>
<body>
<!--<form action ="SuccessfulLogin.php" method = "get"> --> // If I put this in my code, the whole program stops checking Username and Password, and just put me to the next page
<?php
//define variables and set to empty values
$nameErr = $loginErr = "";
$Username = $website = $Password = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["Username"])) {
$nameErr = "Name is required";
} else {
$Username = test_input($_POST["Username"]);
}
if (empty($_POST["Password"])) {
$passErr = "Password is required";
} else {
$Password = test_input($_POST["Password"]);
}
//continues to target page if all validation is passed
if ( $unameErr ==""&& $passErr ==""){
// check if exists in database
$dbc=mysqli_connect('localhost','testuser','password','Project')
or die("Could not Connect!\n");
$hashpass=hash('sha256',$Password);
$sql="SELECT * from Members WHERE Username ='$Username' AND Password='$hashpass';";
$result =mysqli_Query($dbc,$sql) or die (" Error querying database");
$a=mysqli_num_rows($result);
if ($a===0){
$loginErr="Invalid username or password";
}else{
$_SESSION["Username"]=$Username;
header('Location: /SuccessfulLogin.php');
}
}
}
// clears spaces etc to prep data for testing
function test_input($data){
$data=trim ($data); // gets rid of extra spaces befor and after
$data=stripslashes($data); //gets rid of any slashes
$data=htmlspecialchars($data); //converts any symbols usch as < and > to special characters
return $data;
}
?>
<h2 style="color:yellow" align="center"> Login </h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" align="center" style="color:#40ff00">
User Name: <input type="text" name="Username" value="<?php echo $Username;?>"/>
<span class="error">* <?php echo $unameErr;?></span>
<br/><br/>
Password:
<input type="text" name="Password" value=""/>
<span class="error">* <?php echo $passErr;?></span>
<br/><br/>
<span class="error">* <?php echo $loginErr;?></span>
<input type="submit" name="submit" value="Login"/>
</form>
<!--</form>--> // closing tag of form action SuccessfulLogin.php
</html>
成功ogin.php
<!doctype html>
<html>
<?php
session_start();
$Username=$_GET['Username'];
$_SESSION['Username']=$Username;
?>
<head>
<meta charset="utf-8">
<title>Login Form</title>
<link rel="stylesheet" href="RegisterLogin.css">
</head>
<body>
<!--<form action ="MemberMenu.php" method = "get">-->
<h2><?php echo "User $Username LOGGED IN"; ?></h2> // Doesn't print out the $Username
<p align="center"> <a href="MemberMenu.php"> Click here to be redirected to the menu page </a> </p>
<!--</form>-->
</footer>
</body>
</html>
更改这行代码
<?php
session_start();
$Username=$_SESSION['Username'];
$_SESSION['Username']=$Username;
?>
进入:
<?php
session_start();
$Username=$_SESSION['Username'];
?>
在此阅读有关PHP会话的更多信息
在本例中,您使用的是空的$\u GET[“Username”],然后将$\u SESSION[“Username”]设置为空变量。
这也是一种非常奇怪的用户身份验证方法。
您需要检查会话是否已设置。
改变
<?php
session_start();
$Username=$_GET['Username'];
$_SESSION['Username']=$Username;
?>
与
<?php
session_start();
if (isset($_SESSION['Username'])) {
$Username=$_SESSION['Username'];
echo $Username;
}
?>
问题内容: 我可以将值从一页传递到另一页,但我需要像这样传递值, 第1页: Page4.php Page3.php 我需要将Page1.php的文本字段中的值传递给Page2.php中的文本字段,因为表单不是直接重定向到Page2,所以我无法传递该值,我尝试了会话,表单发布方法和其他几种方法,但我尚未成功。 如果您可以帮助我提供代码或一些建议,我将非常高兴。 谢谢! 编辑.......... 我找
我是使用会话变量的新手,尽管我在网上搜索了解会话变量,但我一直在苦苦挣扎。 所以基本上我有一个页面(search.php)。我加载一个基于搜索表单的动态数据表。加载表后,我通过AJAX执行以下操作: 正如您在Success和单击table row记录时所看到的,我的想法是通过AJAX发布一个变量以供以后使用。并将用户重定向到update.php页面。 然后,我希望使用发布的AJAX变量在sessi
我有一个来自firebase的uid,但它是这样存储的: checkout.js 存储我需要传递到另一个页面的uid。这个uid存储在中,我需要将它放到中才能在那里使用uid。我该怎么做?如果需要更多代码,请让我知道。我正在使用react/js
你好,朋友,一个新手问题。我是编程新手,所以请温柔一点。 我试图使用JavaScript发布多个会话变量,这样我就可以在以后的PHP中的多个地方使用它们。 我的index.php文件 我的vals.js文件 我的session.php档案 我知道代码很乱,但我不知道如何编写正确的语法。我实际上试图修改一个变量代码,但失败了。因此需要帮助。 其思想是将从各种JavaScript函数派生的各种值发布到
问题内容: 我正在使用类似的会话将变量传递到URL中的另一个页面,但是看来我无法将另一个变量连接到相同的URL并成功在下一页中检索它 第1页 第2页 在第2页上显示错误,但如果仅在此处使用 效果很好,但是我需要能够在url中使用两个变量,以便页面2可以检索得到它们。 问题答案: 使用与号将变量粘合在一起:
问题内容: 所以我想知道当在多个php文件中使用变量名时,是否有可能从特定的php文件中获取变量。一个例子是这样的: page1.php有 page2.php有 footer.php应该有 好的,这个例子有点抽象,但是就我所能讲的那么短。我想你明白我的意思!这就是我追求的页脚!有什么解决办法吗? 问题答案: 您可以,但是最后一个include中的变量将覆盖第一个中的变量: myfile.php m