[英]Major PHP/MySQL Login Project, with session variables
好了,所以在过去的两天里,我一直在搜寻互联网,并尽我最大的努力来构建一个相当复杂的登录系统。 我已经实现了它的核心,用户可以注册并登录。 我对简单的php和mysql并不陌生,但是当涉及到像这样的深入代码时,我迷路了。 基本上,我想要的是让用户输入他们的登录名,然后(显然)进行验证,然后完成操作,然后重定向到一个成员页面,该页面仅显示与他们的用户名/帐户有关的信息。 我已经在checklogin.php(用于验证登录的文件,请在下面查看)上注册了一些会话变量,但是由于我的一生,我无法将变量传递到实际的成员页面。 所以我想我会轻松开始。 我只是尝试转移用户名并显示一条欢迎消息“您好,[用于登录的用户名]。我走不了那么远。有人可以帮帮我吗?一旦得到,就可以从那里去。
登录表单(仅是代码段):
<form class="form-signin" role="form" method="post" action="checklogin.php">
<center><img src="logo.png" style="padding-bottom: 10px;"></center>
<input type="text" name="myusername" id="myusername" class="form-control" placeholder="Email address" required autofocus><br>
<input type="password" name="mypassword" id="mypassword" class="form-control" placeholder="Password" required>
<br>
<button class="btn btn-lg btn-primary btn-block" name="Submit" type="submit">Sign In</button>
</form>
检查登录
<?php
session_start();
$host="localhost"; // Host name
$username="username"; // Mysql username
$password="********"; // Mysql password
$db_name="joinfbla_services"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
$_SESSION['myusername'] = $_POST['myusername'];
$_SESSION['mypassword'] = $_POST['mypassword'];
echo '<META http-equiv="refresh" content="1;URL=http://joinfbla.com/2014/members/services.php">';
}
else {
echo "Wrong Username or Password";
}
?>
会员页面:
<div class="col-md-4">
<div class="panel panel-primary">
<div class="panel-heading">Hello, <?php session_start(); echo $_SESSION['user']?>!</div>
<div class="panel-body">
<u><b>BAA Username:</b></u> [Insert PHP/MySQL Here]
<br>
<u><b>BAA Password:</b></u> [Insert PHP/MySQL Here]
<br>
<u><b>Point's Recorded:</b></u> [Insert PHP/MySQL Here]
<br>
<div class="alert alert-warning">Note: Only seniors get points this year, if that field is blank do not fear.</div>
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">This Month in FBLA!</div>
<div class="panel-body">
[insert gcalendar here]
</div>
</div>
</div>
我立即注意到的一件事,但可能无法完全解决问题:
echo $_SESSION['user']
应该
echo $_SESSION['myusername']
在您的成员页面中更改您的会话名称以匹配您的登录进程页面。 您有“ myuserame”,然后有“ user”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.