Как создать сеанс

0

Я пытаюсь создать сеанс регистрации из html-формы, которая отправляет данные в db mysql, проверяет учетные данные и запускает сеанс для каждой страницы, которую посетит пользователь.

Проблема в том, что я видел только

<?php
session_start();
if (!isset($_SESSION["login"]) || $_SESSION["login"] == "")
header("");
else
header("Location:login.php");
?> 

<html>
<body>
...
<\body>
<\html>

но мне не нравится иметь php-код вместе с html. На самом деле у меня есть папка со всеми файлами php, есть ли способ зарегистрироваться таким образом?

  • 1
    Поместите этот PHP-код в другой файл, и вы можете включить его в свой HTML, используя require_once
  • 0
    Хорошо, если вам нужно запустить сеансы PHP в файле HTML, вам нужно включить PHP на странице. Вы можете использовать функцию php include для включения заголовка в качестве внешнего файла. Но код все еще должен быть на странице
Теги:
session

1 ответ

0

Если вы хотите защитить свои файлы, вам необходимо сохранить эти файлы как php. Однако вы можете разделить php-код в другом файле и включить этот файл в начало ваших основных php файлов, таких как require_once ("system_work.php"); в system_work.php вы можете обрабатывать переменные входа и проверки сессий, если они существуют, или нет, а затем решить, хотите ли вы выйти из этой страницы или позволить пользователю оставаться там.

У меня есть сценарий входа в систему на Codecanyon https://codecanyon.net/item/php-login-user-management-with-message-center/5862673. Я собираюсь поделиться кодом, как работает его логин.

Обратите внимание, что сеансы не могут работать в html файле, поэтому, если вы хотите защитить файл, этот файл должен быть HTML. Отсутствие безопасности на стороне сервера невозможно. Однако вы можете сохранить cookie через php и получить доступ к cookie с помощью JavaScript и сделать проверку с помощью JavaScript, но этот relaly небезопасный способ сделать это.

В dashboard.php у меня есть следующий код

<?php
include('system_load.php');
//Including this file we load system.
/*
Logout function if called.
*/
if(isset($_GET['logout']) && $_GET['logout'] == 1) { 
    session_destroy();
    HEADER('LOCATION: '.get_option('redirect_on_logout'));
    exit();
} //Logout done.

//user Authentication.
authenticate_user('admin');

$page_title = $label_obj->label('dashboard_title'); //You can edit this to change your page title.
require_once("includes/header.php"); //including header file.

?>

После того, как этот код является телом, который также находится после заголовка, нижний колонтитул включен таким же образом. Теперь см. Файл system_load.php, который включает все остальные классы, файлы функций и информацию о сеансах. Я также поделюсь с вами кодом этого файла.

system_load.php

<?php
session_start();
/*This file loads system to do basic functions on the site, Please do not change anything here if you dont know what you are doing.*/
include('includes/db_connect.php');
include('includes/functions.php');
//Redirecting to installation wizard if not installed already.
global $db;
//Checks if options exist and installation is complete.
$val = $db->query('SELECT 1 from notes');
if($val == FALSE) {
  HEADER("LOCATION: install.php");
}
include('includes/update.php');
//Session signout after session timeout.
if(isset($_SESSION['timeout'])) {
    if ($_SESSION['timeout'] + get_option('session_timeout') * 60 < time()) {
        session_destroy();
        HEADER('LOCATION: '.get_option('redirect_on_logout'));
        exit();
    }
}
//Adding Language.
include('classes/labels.php');
include('classes/users.php');
include('classes/userlevel.php');
include('classes/notes.php');
include('classes/messages.php');
include('classes/announcements.php');

$label_obj = new WebsiteLabels;
$new_user = new Users;

if(isset($_SESSION['user_id'])):
    $new_user       = new Users;
    $user_status    = $new_user->get_user_info($_SESSION['user_id'], 'status');

    if($user_status == 'ban' || $user_status == 'deactivate' || $user_status == 'suspend') { 
        session_destroy();
        HEADER('LOCATION: index.php');
    }

    $message_obj        = new Messages;
    $new_level          = new Userlevel;
    $notes_obj          = new Notes;
    $announcement_obj   = new Announcements;

    if($new_user->get_user_info($_SESSION['user_id'], 'profile_image') == '') { 
        $profile_img = 'images/thumb.png';
    } else { 
        $profile_img = $new_user->get_user_info($_SESSION['user_id'], 'profile_image');
    }
endif;

Дайте мне знать, если это даст вам представление о том, как вы можете продолжить, вы также можете задать мне дополнительный код файла, если вам нужно, я могу поделиться им.

  • 0
    я все еще должен включить это в файл php

Ещё вопросы

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