Поэтому я начинаю свой собственный сайт, и у меня есть файл входа в систему. Мне просто нужно выяснить, где поставить session_start, чтобы пользователь вошел в систему. Где именно я помещаю session_start? Правильно ли я в файле входа? Или где я могу это выразить?
Спасибо за помощь
Поместите его после тэга начала PHP <?php
… как это
<?php session_start(); //... your code.... //more code....
Подробнее о сессиях читайте в Руководстве по PHP. Here
Примечание . Также имейте в виду, вам нужно вызвать session_start();
на каждой странице, если вы используете переменные сеанса.
Поместите его сразу после стартового тега, иначе заголовки будут отправлены, а сеанс AFAIK должен быть первым отправленным заголовком
<?php session_start(); //session code here ?>
Сразу после <?php
.
Убедитесь, что перед этой функцией нет выхода NO (даже символ пробела или около того).
Вы хотите поставить session_start();
в верхней части страницы перед любым другим кодом. Однако, если вы используете, чтобы облегчить вашу жизнь, лучше всего поставить его на самый верх файла, который включен во все файлы. Например, когда я создаю веб-сайт, я помещаю весь код заголовка и нижнего колонтитула в отдельные файлы и включаю их в другие файлы. У меня также есть файл функций, который включен в каждую другую страницу веб-сайта. Поэтому для моего индексного файла это может выглядеть примерно так:
<?php include_once("includes/header.php"); ?> <div id="content"> Website Content </div> <? include_once("includes/footer.php"); ?>
Затем мой заголовочный файл начнется следующим образом:
<?php include_once("includes/functions.php"); ?> <!doctype html> <html> <body>
Затем в верхней части моего файла функций:
<?php session_start(); [functions] ?>
Таким образом, код файлов функций запускается первым, поэтому первый стартовый код сеанса является первым. Зачем? Перед началом сеанса вы не можете получать какие-либо данные в браузере.
лучше иметь отдельный файл, отличный от вашего логина, чтобы делать некоторые распространенные вещи. Я думаю, что ваш файл входа будет, как правило, обрабатывать проверку и проверку прав пользователей. поэтому не включайте этот файл на каждую страницу.
есть еще один файл, который
и этот файл можно начинать с <?php session_start(); ?>
<?php session_start(); ?>
session_start()
нужно искать в каждой странице / файле, которая ссылается на $_SESSION
(очевидно, страница входа включена).
Поскольку вы должны только называть его один раз, я склонен писать метод lazy_session_start()
(и, как правило, помещает его в файл include):
/** * Lazily calls session_start (to prevent warnings). */ function lazy_session_start() { if (!isset($_SESSION) || !is_array($_SESSION)) { session_start(); } }
Его можно было бы назвать так (прежде чем вам нужно будет использовать $ _SESSION):
<?php //you must either declare "lazy_session_start" function //or import the file containing the function definition. require_once('lazy_session_start.php'); //or something. lazy_session_start(); //... you may now use the $_SESSION array.