0

このログインスクリプトの何が問題になっていますか?モーダルスタイルのiframeログインボックスがあり/login.php、があり/index.phpます。

ログイン後、login.phpはindex.phpにリダイレクトしますが、ユーザー名が表示されません。ただHello Guest。ログインしようとすると、と表示されますyou, username, are already logged in

login.php:

<?php session_start(); require_once('connections/Main.php');

if(isset($_SESSION['username'])) {

    echo '<div class="error_message">Attention! You, '.$_SESSION['username'].' are already logged in.</div>';
    echo "<br />";
    echo "Go <a href='javascript:history.go(-1)'>back</a> to the page you were viewing before this.</li>";

    exit();
}
?>

index.php:

<?php session_start(); 
   require_once('connections/Main.php'); 
     ?>

<div> Hello <?php   if(isset($_SESSION['username'])) { 
          echo $_SESSION['username']; }
                    else{ echo 'Guest'; } ?></div>
4

2 に答える 2

0

2回呼び出していますがsession_start()、これは不要です。ログインしたら、セッション変数logged_inを設定しtrueます。次に、

if($_SESSION['logged_in']){
 //Do what you want for the logged in user
}

確かに、これらすべてを1つのlogin.phpで実行できます。このようなものがあります:

//if reached from login form
if ($_POST['email']){
  //validate the user
  // if validates, log him in by:
    $_SESSION['logged_in'] = true;
    $_SESSION['email']= $_POST['email'];
  //do other fancy database save stuff
 }
//else show him login form
else{
  <form>
   //<input />.. etc
  </form>
}
于 2012-07-02T00:36:57.180 に答える
-2

これでセッションを開始します。

$_SESSION["im_going_in"]=true; 
$_SESSION["username"]=$username;//get data from db.

index.php

<?php
if($_SESSION["im_going_in"]) {
?>

  <?=strtoupper($_SESSION["username"])?>// welcome dear bla bla...

<?
}
?>
于 2012-07-01T21:42:49.537 に答える