主页不会显示用户名

时间:2015-09-30 18:34:30

标签: php

我正在我的网站上工作,在我的生活中,在用户登录后将用户重定向到页面后,似乎无法在我的index.html页面上弹出用户名。 / p>

connectivity.php

function SignIn() 
{ 
    session_start(); //starting the session for user profile page 
    if(!empty($_POST['user'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
    { 
        $query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 
        $row = mysql_fetch_array($query) or die(mysql_error());
        if(!empty($row['userName']) AND !empty($row['pass'])) 
        { 
            $_SESSION['userName'] = $row['pass']; 
            header("location: http://www.gotospectrum.com/index.html");

        } else { 
            echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY..."; 
            } 
        } 
    } 
    if(isset($_POST['submit'])) 
    { 
        SignIn(); 
    } 

?>

的index.html

<?php 
    session_start();session_destroy();
    session_start();
 ?>
<!DOCTYPE html>
<html lang="en">



<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav">
                    <li>
                        <a href="about.html">About</a>
                    </li>
                    <li>
                        <a href="Services.html">Services</a>
                    </li>
                    <li>
                        <a href="index.php">Contact</a>
                    </li>

                    <li>
                        <a href="Login/Sign-In.html">Login</a>
                    </li>

                    <li>
                        <a href="/Login/logout.php">Logout</a>
                    </li>

                    <li>
                        <?php 
                            echo isset($_SESSION['userName'];

                        ?>
                    </li>  

我正在您可以看到顶部呼叫会话,并且我在注销后尝试回复<li>中的用户名,我稍后会移动它,但是这一点我只是想让它发挥作用。

我现在已经在这几个小时了,这真让我很沮丧。

1 个答案:

答案 0 :(得分:1)

您有两个问题:(1)文件类型和(2)您的代码。

文件类型问题

默认情况下,.html由服务器作为HTML处理 - 它永远不会通过PHP引擎。将文件名更改为index.php

您可以通过在浏览器中加载index.html时查看.htaccess来源来验证这是问题所在。您将看到未经处理的PHP代码,这显然不是您想要的。

作为替代方案,如果您使用的是Apache,则可以强制服务器将此行作为PHP处理,方法是将此行添加到站点根目录中的AddType application/x-httpd-php .htm .html文件中:.html。见this answer。这是解决问题的推荐方法 ,因为它增加了大量服务器负载,甚至可以提供基本的index.php文件。

注意:某些服务器未正确设置,无法将session_destroy();视为默认文件。如果在重命名文件并尝试加载主页后出现404错误,请检查您的默认页面名称设置。

您的代码问题

您在PHP代码的第一行调用$_SESSION['userName'],这意味着当您到达代码的这一部分时,永远不会设置session_destroy();。取出)

此外,您错过了echo isset($_SESSION['userName'];中的结束echo isset($_SESSION['userName']);

Stripe-umbrella.h

关于这最后一个错误:这是一个语法错误,会导致死亡的白色屏幕。&#34;你真的应该使用一个可以捕获这些东西的IDE。我个人偏爱PHPStorm,但任何体面的IDE都会遇到类似的语法错误。