当我登录到我的网络主页时,它无法正常工作

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>&copy 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:在这一点上,我怀疑需要进行更多调试,这是您需要练习的技能。例如,您的数据库交互可能根本不起作用,因此会话变量中没有存储任何内容。您可能想要检查错误报告、检查错误日志、查看捕获和检查您正在使用的数据库技术中的错误。

以上是关于当我登录到我的网络主页时,它无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

react和laravel中的登录身份验证无法正常工作

登录页面无法正常工作

Magento 2.3 在本地主机中无法正常工作

退出 Flutter 应用程序不会返回登录页面

如何更改我的注销路线以重定向到我的主页

在本机反应中处理设备后退按钮