2016-11-01 5 views
-2

//header.phpКак отображать имя пользователя на главной странице только после авторизации?

<?php 
session_start(); 
if(isset($_SESSION['loggedin'])) 
$_SESSION['displayname']="notset"; 
else 
$_SESSION['loggedin']=0; 
?> 

//index.php

<?php 
require "header.php"; 
if($_SESSION['loggedin']==1) //ignores the if statement 
{ 
echo "Welcome".$_SESSION['displayname']."!"; 
echo "<button id='logout_button'> 
<a href='logout.php'>Logout</a> 
} 
else 
{ 
echo '<a id="display_name" href="login.html">Login/ Signup</a>'; 
} 
?> 

//verify.php

<?php 
session_start(); 
include "connect.php"; 
$uname=$_POST['uname']; 
$pass=$_POST['pass']; 

$check=mysqli_query($conn,"SELECT * FROM member_list WHERE  username='$uname'"); 
$numrows=mysqli_num_rows($check); 

if ($numrows == 1) 
{ 
    $row = mysqli_fetch_array($check); 
    $dbusername = $row['username']; 
    $dbpassword = $row['password']; 

    if($uname == $dbusername && $pass == $dbpassword) 
    { 
     $_SESSION['loggedin']=1; 
     $_SESSION['displayname'] = $uname; 
     header("location:index.php"); 
    } 
    else 
    { 
     $msg="Invalid Password !!"; 
     echo "<script type='text/javascript'>alert('$msg'); 
     window.location.replace('loggedin.html')</script>"; 
    } 
} 
else 
{ 
    $msg="Invalid Username !!"; 
    echo "<script type='text/javascript'>alert('$msg'); 
    window.location.replace('index.html')</script>"; 

} 
?> 

Это мой код. Ошибок нет. Но когда я вхожу в систему, он не отображает имя пользователя. Он игнорирует оператор if на index.php и переходит прямо в оператор else.

+1

Вам не хватает 'session_start();' сверху в файле 'index.php'. – icecub

+0

Поместите это вверху индексного файла 'ini_set ('display_errors', 1); ini_set ('display_startup_errors', 1); error_reporting (E_ALL); '. Показывает ли она какую-либо ошибку? – Blinkydamo

+0

'эхо "Кнопка Logout"' не закрывает в вашем index.php – prasanth

ответ

0

попробовать это отладить ваши приложения

index.php

<?php 
//start header.php 
ob_start(); 
session_start(); 
$_SESSION['loggedin'] = (isset($_SESSION['loggedin'])) ? $_SESSION['loggedin'] : 0; 
if($_SESSION['loggedin']==1) 
    $_SESSION['displayname']="admin"; 
else 
    $_SESSION['displayname']="guest"; 
//end header.php 

if($_SESSION['loggedin']==1) 
{ 
    echo $_SESSION['displayname']; 
    echo "<a href='logout.php'>Logout</a>"; 
} 
else 
{ 
    echo $_SESSION['displayname']; 
    echo "<a href='login.php'>Login</a>"; 
} 
?> 

login.php

<?php 
ob_start(); 
session_start(); 
$_SESSION['loggedin']=1; 
echo "try login...."; 
sleep(1); 
header('Location: index.php') ; 
?> 

logout.php

<?php 
ob_start(); 
session_start(); 
$_SESSION=NULL; 
session_destroy(); 
echo "try logout...."; 
sleep(1); 
header('Location: index.php') ; 
?> 

дайте мне знать этот сценарий работы или нет

+0

С помощью этого кода $ _SESSION ['loggedin'] в index.php становится неустановленным. $ _SESSION ['loggedin'] сначала необходимо инициализировать. Когда мы впервые заходим в index.php, $ _SESSION ['loggedin'] не инициализируется. –

+0

u справа. я обновлю его – plonknimbuzz

Смежные вопросы