2017-01-31 2 views
0

ОК, поэтому я получаю пользователей для входа в систему, а затем «в случае успеха» я перенаправляю их на index.php, где я хотел бы отображать некоторую информацию из базы данных.Сессии В PHP не работает

мои пользователи подтверждены, и я могу войти в систему, но я думаю, что у меня проблемы с сеансом.

Сеанс имени пользователя не отображает информацию, когда я вызываю его на странице index.php.

Я новичок в php и изучаю, когда я иду. Последние два дня я просматривал этот сайт для ответов на мою проблему, но не могу найти ничего, что действительно работает.

Вот код

checklogin.php

<?php 

    session_start(); 
    ob_start(); 
    include_once 'config.php'; 

    // Connect to server and select databse. 
    try 
    { 
     $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; 
     $db = new PDO('mysql:host='.$host.';dbname='.$db_name.';charset=utf8', $username, $password); 
    } 
    catch(Exception $e) 
    { 
     die('Error : ' . $e->getMessage()); 
    } 

    // Define $myusername and $mypassword 
    $myusername = $_POST['myusername']; 
    $mypassword = $_POST['mypassword']; 

    // To protect MySQL injection 
    $myusername = stripslashes($myusername); 
    $mypassword = stripslashes($mypassword); 

    $stmt = $db->query("SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'"); 

    // rowCount() is counting table row 
    $count = $stmt->rowCount(); 

    // If result matched $myusername and $mypassword, table row must be 1 row 
    if($count == 1){ 

     // Register $myusername, $mypassword and print "true" 
     echo "true"; 
     $_SESSION['username'] = 'myusername'; 
     $_SESSION['password'] = 'mypassword'; 

    } 
    else { 
     //return the error message 
     echo "<div class=\"alert alert-danger alert-dismissable\"><button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button>Wrong Username or Password</div>"; 
    } 

    ob_end_flush(); 
?> 

index.php

<?php 
    session_start(); 

    if(!isset($_SESSION['username'])){ 
    header("location:main_login.php"); 
    } 
?> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<title>Login</title> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<!-- Bootstrap --> 
<link href="css/bootstrap.css" rel="stylesheet" media="screen"> 
<link href="css/main.css" rel="stylesheet" media="screen"> 
</head> 
<body> 
<div class="container"> 
    <div class="form-signin"> 
    <div class="alert alert-success">You have been <strong>successfully</strong> logged in <?php echo $_SESSION['username']; ?>.</div> 
    <a href="logout.php" class="btn btn-default btn-lg btn-block">Logout</a> </div> 
</div> 
<!-- /container --> 
</body> 
</html> 

Я был бы очень признателен за любую помощь или ссылки на статьи, которые могут помочь.

Благодаря

Шон

+0

Ваша сессия включена? проверьте с помощью phpinfo(); –

+0

привет, вот что должен сказать мой phpinfo() - http://prntscr.com/e2n4bn –

+0

, так что да, я бы сказал, что он включен –

ответ

0

Просто измените $ _SESSION [ 'имя пользователя'] = 'MyUserName'; to $ _SESSION ['username'] = $ myusername;

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