当我登录到我的网络主页时,它无法正常工作
Posted
技术标签:
【中文标题】当我登录到我的网络主页时,它无法正常工作【英文标题】:When I log into my networks homepage it is not working 【发布时间】:2015-11-04 00:19:58 【问题描述】:当我登录我的网络主页时,它无法正常工作。我已连接到数据库并且可以创建新用户,但是当我登录时,我得到的 else 语句显示我的会话不起作用。 (它正在重定向回登录,但出于学习目的,我将其设置为回显)。
下面是我的登录代码和主页代码(基本结构)。我知道它不安全,但我仍在进入安全部分,我只需要弄清楚为什么会发生此错误。
<?php require ("insert.php"); ?>
<?php
if(isset($_POST[ 'Login' ]))
session_start();
$email= mysqli_real_escape_string($con, $_POST ['email']);
$pswrd= mysqli_real_escape_string($con, $_POST ['pswrd']);
$result = $con->query(" select * from users where email='$email' AND pswrd='$pswrd' ");
$row = $result->fetch_array(MYSQLI_BOTH);
$_SESSION["UserID"] = $row['User_ID'];
header ('Location: home.php');
?>
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>AMSadler login</title>
<meta charset="utf-8">
<meta name="description" content="description of webpage">
<meta name="keywords" content="keywords go here">
<meta name="author" content="Anthony">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/login.css">
<link rel="index" href="index.php">
<link rel="icon" href="img/favicon.png" sizes="16x16" type="image/png">
</head>
<body>
<div class="header">
<div id="logo">
<a href="index.html"><img src="img/logo.png" title="AMSadler.com"/></a>
</div>
<div id="signup">
<button type="button"><a href="signup.php">Sign up</a></button>
</div>
</div>
<div id="login">
<form method="post" action="home.php">
<input type="text" name="email" placeholder="Email address">
<br>
<input type="password" name="pswrd" placeholder="Password">
<br>
<input id="Login" type="submit" name="Login" value="Login">
</form>
</div>
<footer>
<div id="copyright">
<p>© Copyright 2015</p>
</div>
</footer>
</body>
</html>
<?php require ("insert.php");
session_start();
if (isset($_SESSION ["UserID"] ) )
else
echo "not fixed";
// header ('Location: login.php');
?>
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>AMSadler</title>
<meta charset="utf-8">
<meta name="description" content="description of webpage">
<meta name="keywords" content="keywords go here">
<meta name="author" content="Anthony">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/home.css">
<link rel="icon" href="img/favicon.png" sizes="16x16" type="image/png">
</head>
<body>
<div class="header">
<div id="logo">
<a href="index.html"><img src="img/logo.png" title="AMSadler.com"/></a>
</div>
<div id="headertop">
<div id="pagetitle">
<a href="home.php">HOME</a>
</div>
<div id="pagetitle2">
<a href="profile.php">PROFILE</a>
</div>
<div id="pagetitle3">
<h4>Welcome:<?php echo $_SESSION["UserID"];?>to your page</h4>
</div>
</div>
</div>
<div class="wrapper">
<div class="leftsidebar">
<ul>
<li><a href="home.php">Social</a></li>
<li><a href="#">jhbjhbjhb</a></li>
<li><a href="#">jhbbjhb</a></li>
<li><a href="#">jhbbjhbj</a></li>
<li><a href="#">jhbhjbjhb</a></li>
<li><a href="#">bjhbjhb</a></li>
<li><a href="#">rege</a></li>
<li><a href="#">rgerger</a></li>
<li><a href="#">dfbrtbr</a></li>
<li><a href="#">sdvdfgbd</a></li>
</ul>
</div>
<div class="main">
<div id="maintop">
<div id="textboxwrap">
<textarea name="text" id="styled"rows="5" cols="80" placeholder="Write something here.">
</textarea>
</div>
<div id="postbutton">
<input type="submit" name="post" value="Post" />
</div>
</div>
<div id="mainbottom1">
<div ="mainbottomwrap">
Your posts will go here.<br>Your posts will go here.<br>Your posts will go here.<br>Your posts will go here.<br>
Your posts will go here.<br>Your posts will go here.<br>Your posts will go here.<br>Your posts will go here.<br>
Your posts will go here.<br>Your posts will go here.<br>Your posts will go here.<br>Your posts will go here.<br>
Your posts will go here.<br>Your posts will go here.<br>
</div>
</div>
</div>
<div class="rightsidebar">
<div id="profilecontainer">
<img src="img/profile.png" title="profile pic" />
</div>
<div id="box">
<a href="#">fgtdhrth</a><br>
<a href="#">dfbrt</a><br>
<a href="#">gverb</a><br>
<a href="#">dsvfe</a><br>
<a href="#">egerg</a><br>
<a href="#">wefgeger</a><br>
<a href="#">rfthrtth</a><br>
<a href="#">gergreg</a>
</div>
</div>
</div>
</body>
</html>
【问题讨论】:
【参考方案1】:您用于登录的服务器端代码实际上从未被调用过。该代码期望表单返回到同一页面(登录页面)。但相反,它会发布到下一页(主页):
<form method="post" action="home.php">
结果是你从来没有在登录页面上设置会话变量,所以主页上没有值可以读取。
将表单发布到期望处理表单的页面:
<form method="post" action="login.php">
另外请注意,以纯文本存储用户密码是一个众所周知的坏想法。你会想要obscure those passwords with a 1-way hash。其他任何事情对您的用户来说都是严重疏忽。
【讨论】:
好的,谢谢你,我已经修复了那个帖子,但是我仍然在我的主页上得到 else echo,并且正在显示用户 ID 回显语句,但是没有显示用户 ID。我仍然需要学习如何隐藏密码,这是我的下一个教程,但感谢您的建议。 @AnthonySadler:在这一点上,我怀疑需要进行更多调试,这是您需要练习的技能。例如,您的数据库交互可能根本不起作用,因此会话变量中没有存储任何内容。您可能想要检查错误报告、检查错误日志、查看捕获和检查您正在使用的数据库技术中的错误。以上是关于当我登录到我的网络主页时,它无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章