PHP, HTML, ошибка сеанса входа в систему

0

Помогите с сеансом, я просто получаю пустой экран

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Login</title>
<style type="text/css" media="screen">
    .error { color: red; }
</style>
</head>
<body>
<h1>Welcome Page</h1>
<?php
        {
        session_start();
        $username = $_SESSION['username']
            // Print a greeting:
            print '<h2>Welcome to DVD MANIA!</h2>';
            print "<p>Hello $username </p>";

            // Print how long they've been logged in:
            date_default_timezone_set('Europe/London');
        //  print '<p>You have been logged in since: ' . date('g:i a',   $_SESSION['loggedin']) . '</p>';

            // Make a logout link:
            print '<p><a href="logout.php">Click here to logout.</a></p>';
        }   
?>
</body>
</html>
  • 0
    Включите отчеты об ошибках, чтобы вы получили сообщение об ошибке вместо пустого экрана. Это поможет вам быстро учиться и даст вам кое-что для Google для
Теги:
session

3 ответа

1

Причина, по которой вы получаете пустой экран, состоит в том, что в этой строке отсутствует закрывающая запятая:

$username = $_SESSION['username']
                                 ^ // <- right there

Измените его на:

$username = $_SESSION['username'];

Если включить отчет об ошибках, возникло бы следующее сообщение об ошибке:

Parse error: syntax error, unexpected 'print' (T_PRINT) in...

Однако это не всегда гарантирует, что ошибка будет на этой конкретной строке, а строка перед ней.

Добавьте в свой документ (-ы) следующие документы:

ini_set('display_errors',1); 
error_reporting(E_ALL);

Дополнительные сведения о функции создания отчетов об ошибках PHP см. В следующем:

  • 1
    Боже мой, снова глаза орла! +1
  • 2
    @ShankarDamodaran Спасибо, Шанкар. Плюс, тестирование перед отправкой помогает ;-)
0

Удалите {} фигурные скобки вокруг вашего кода - они предотвращают выполнение.

Кроме того, session_start() ДОЛЖНО использоваться до отправки любого содержимого страницы. Ваш файл уже выводит код заголовка HTML, поэтому session_start() не будет работать.

0

Поместите session_start() в верхней части страницы и удалите ненужные {} фигурные скобки:

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
// etc...
<?php
$username = $_SESSION['username'];
//                               ^ missing semicolon ;
?>

session_start Docs

Ещё вопросы

Сообщество Overcoder
Наверх
Меню