HTML PHP Display username after success login

后端 未结 8 1590
执念已碎
执念已碎 2020-12-06 03:15

I have a

inside my onlinestore.html file which is my menu that contain of Login/Register. What I want is after the success login, the
相关标签:
8条回答
  • 2020-12-06 03:23
    <div class="msg"><?php echo $msg;?></div>
    <form type="submit">
       <input type="text" name="Email">
       <input type="password" name="Password">
       <button type="submit" name="Login">Login</button>
    </form>
    <?php
      require 'connection.php';
      if (isset($_POST['Login'])) {
          $email = $_POST['Email'];
          $password = $_POST['Password'];
    
          $user = "SELECT username FROM table_name WHERE email = '".$email."' and password = '".$password."'";
          $user = mysqli_query($con, $user);
          if (mysqli_num_rows($user) > 0) {
             while ($row = mysqli_fetch_array($user)) {
                   $username = $row['username'];
             }
          } else {
                    $msg = "Can't Log in";
          }
        }
         echo $username;
       ?>
    
    0 讨论(0)
  • 2020-12-06 03:26

    Maybe you want to try this instead, it worked for me.

    <?php 
      if($_SESSION['username'] == true) { 
         echo '<a href="logout.php"><span>Logout</span></a>';
      }
      else {
        echo '<a href="login.php"><span>Login</span></a>';
      }
    ?>
    
    0 讨论(0)
  • 2020-12-06 03:28

    Try this. I don't how to explain but when the login is successful I created the session variable. If the session variable is not in used it will echo the Login that will link to login page otherwise if session variable is being used it will print the username

    code in process of logging in

            if($row['col_userName'] == $username AND $row['col_custPass'] = $password){
                 $_SESSION['session_var_user'] = $username; // I created the session variable also don't forget to put the session_start(); at the top of your code
                echo "
                        <script> 
                          window.location.href = 'index.php';
                        </script>
                    ";
                }else{echo "failed";}
    

    code in navbar

            <li class="nav-item">
                <a class = "justtextstyle" href="#">
                    <?php 
                       if(!isset($_SESSION['session_variable']))
      // if(!isset($_SESSION['session_variable'])) checking if $_SESSION['session_variable' is in use; sorry idk to explain, it's just like that lol 
                       {
                           echo "<a class = 'justtextstyle' href='login.php'>Log In Here</a>";
                       }
                       else
                       {
                           echo "Hi," . $_SESSION['session_variable'];
                       }
                   ?>
                </a>
            </li>   
    
    0 讨论(0)
  • 2020-12-06 03:30

    In your else statement you haven't defined a session_start() like you did in your if statement.

    And else, instead of checking the value of a $_SESSION and determining the value of it, you can use the following:

    if (session_status() == PHP_SESSION_NONE) {
    //Do something if the session is not existing
    }
    

    Other options are storing variables in a $_COOKIE and then check if it isset or not(if(isset($_COOKIE["username"]){})

    I hope this has helped you out

    0 讨论(0)
  • 2020-12-06 03:33

    If you want the username to be displayed instead like in the example you need to change your code for onlinestore.html to the following:

    <li class='active' style='float:right;'>
      <?php 
        session_start();
        if($_SESSION['logged']==true){ 
          echo '<a href="logout.php"><span>' + $_SESSION["username"] + ' (Logout)</span></a></li>';
        }
        elseif($_SESSION['logged']==false) 
          echo '<a href="registerform.html"><span>Login/Register</span></a></li>';
      ?>
    
    0 讨论(0)
  • 2020-12-06 03:35

    Either you need to rename your onlinestore.html and login.html to be .php files so the PHP will work in them, or use the addtype option in your htaccess file.

    In your onlinestore.html do this:

    <?php
    session_start(); // Right at the top of your script
    ?>
    
    <li class='active' style='float:right;'>
      <?php 
      if($_SESSION['logged']==true)
        { 
          echo $_SESSION["username"];
          echo '<a href="logout.php"><span>Logout</span></a></li>';
        }
      elseif($_SESSION['logged']==false)
        {
          echo '<a href="registerform.html"><span>Login/Register</span></a></li>';
        }
      ?>
    

    In your checklogin.php do this:

    <?php
    session_start(); // Right at the top of your script
    ?>
    
    if($count==1)
      {
        $_SESSION['logged']=true;
        $_SESSION['username']=$myusername;
        header("Location: onlinestore.html");
        exit();
      }
    else
      {
         $_SESSION['logged']=false;
         header("Location: login.html");
         exit();
      }
    

    If the above doesn't work then please tell me what happens.
    Do you have html files set to parse PHP code?
    Or a htaccess file with:
    AddType application/x-httpd-php .htm .html
    ?

    EDIT

    Try this for debugging:

    In your checklogin.php do this:

    <?php
    session_start(); // Right at the top of your script
    ?>
    
    if($count==1)
      {
        $_SESSION['logged']=true;
        $_SESSION['username']=$myusername;
        echo "Login worked";
        exit();
      }
    else
      {
         $_SESSION['logged']=false;
         echo "Login failed";
         exit();
      }
    

    This will show you if login is working. If it's not and you get "login failed" then that is why you get the "Login/Register" link on your page.

    If it shows "Login worked" then set the code back to how it was and then on your onlinestore.html page, do this at the top of the file:

    echo "This is working";
    exit();
    

    What happens? Do you get the message "This is working" on the page and nothing else?

    0 讨论(0)
提交回复
热议问题