Могу ли я включить мой session_functions.php в мой заголовок, а затем вызвать функцию из body.php - PullRequest
0 голосов
/ 08 февраля 2012

Мой header.php выглядит следующим образом.

include("sessions.php");
<h1>...

Моя страница sessions.php выглядит следующим образом

session_start();

function validate_user()
{
    //validate user
}

У меня есть user_class.php в моем теле.Могу ли я просто вызвать validate_user (), потому что я уже включил его в страницу, или мне нужно включить его в свой user_class.php и каждый .php, который использует функцию сеанса?

Ответы [ 3 ]

0 голосов
/ 08 февраля 2012

Если ваш user_class.php зависит от включенного sessions.php, вы можете поместить require_once "sessions.php"; в верхнюю часть вашего user_class.php.Кроме того, я бы рекомендовал использовать include_once вместо include.

0 голосов
/ 08 февраля 2012

Краткий ответ, да. То, что вы спрашиваете, по сути, включает в себя всю цель. Используя include, вы можете разделить ваш код на куски (файлы), которые представляют функциональные блоки, такие как обработка вашего сеанса. Как предлагали некоторые другие авторы, один из ваших кусков может быть вашим кодом инициализации.

Представьте, что файл просто вставляется в точку оператора include / require, заменяя его. В этой модели, до тех пор, пока функция будет появляться над точкой, в которой вы ее используете, все будет в порядке.

В конце концов, вы предпочитаете разделять код, но книги, такие как классические «Шаблоны проектирования» из «Банды четырех», могут помочь вам принять правильное решение о том, как разработать свой код для максимальной простоты. техническое обслуживание и повторное использование.

0 голосов
/ 08 февраля 2012

Я бы не стал смешивать процедурный код и определения функций.

Вместо этого переместите процедурный код (т. Е. session_start()) в отдельный файл, например bootstrap.php, и добавьте его вверху своих страниц.

Чтобы обеспечить включение функций и классов, определенных в других файлах, используйте require_once. Таким образом, вы можете безопасно включать необходимые файлы, не сталкиваясь с ошибками переопределения.

Еще одна вещь, session_start() должна быть вызвана перед отправкой чего-либо в браузер. Поместите его в самый верх ваших сценариев для безопасности.

Например

bootstrap.php

<?php
// for development only
ini_set('display_errors', 'On');
error_reporting(E_ALL);

session_start();
require_once 'functions.php';

functions.php

<?php
function validate_user()
{
    //validate user
}

header.php

<h1>...

user_class.php

<?php
require_once 'functions.php';

class User { ...

some_page.php

<?php
require_once 'bootstrap.php';
?>
<!DOCTYPE html>
<html>
    <head>...</head>
    <body>
        <?php include 'header.php' ?>
    </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...