Вот не знаю как по другому организовать это все. Изначально все события и вся обработка должны происходить в index.php .
Структура index.php приблизительно такова(по порядку с начала в конец):
Дефайн.
Функции для обработки.
Инициализация события, подключение функций для обработки и процесс обработки.
Вывод страницы html с результатом.(подключение нужного "листка" с контентом)
Мне было бы удобней если бы все процессы происходили в одном файле(Что бы формы ссылались на индекс.пхп, там обрабатывались и там же, в конце выводилась страница с результатом. И тому подобное. Короче все.) Вот только проблема - допустим отправлена форма авторизации, все обрабатывается как нужно и т.п., открывается страница аккаунта и т.д. н если перезагрузить страницу аккаунта то (кажись браузер) выдает - "Ошибка передачи данных. Скорее всего не удалось закончить действие которое вы только что пытались совершить итд".
Пробовал посылать форму на другой файл обработки(dfh.php), а после него, редиректить процесс на индекс для вывода страницы и результата. Работает и можно перезагружать страницы, но проблема в том, что с этого файла(dfh.php) невозможно передать ни ГЕТом ни ПОСТом результат в индексовский файл. Только сесией и то криво.
Еще одно преимущество для меня, что можно выводить некоторые страницы исходя из события, не смотря на то что в белом списке страницы нет(форма смены пароля для восстановления доступа, аккаунт..) То есть открыть их может только скрипт, только изнутри и только когда нужно/можно(может и глупо это все) В общем, посоветуйте как это все(обработку и вывод) можно по человечески организовать(с учетом того что я только начинающий).
<?php
error_reporting(-1);
ini_set('display_errors', true);
session_start();
?>
<?php # DEFINE
# БАЗА ДАННЫХ
define ('DB_HOST', 'localhost'); # Хостинг
define ('DB_USER', 'admin'); # Пользователь базы данных
define ('DB_USR_PWD', 'admin'); # Пароль пользователя базы данных
define ('DB_NAME', 'script'); # Имя базы данных
#$link = mysqli_connect(DB_HOST, DB_USER, DB_USR_PWD, DB_NAME);
# ДОМЕН
define ('SITE_NAME', 'var2'); # Домен сайта
# ПОЧТА
define ('MAIL', 'mail@mail.mail'); # Адрес почты сайта
?>
<?php # Функции
# Генератор рандома
function randGen($length) { //длина
$getedRand = "";
$arr = array(
'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r',
's', 't', 'u', 'v', 'w', 'x',
'y', 'z', 'A', 'B', 'C', 'D',
'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V',
'W', 'X', 'Y', 'Z', '1', '2',
'3', '4', '5', '6', '7', '8',
'9', '0'
);
for ($i = 0; $i < $length; $i++)
$getedRand .= $arr[mt_rand(0, count($arr) - 1)]; // Берём случайный элемент из массива
return $getedRand;
}
# Фильтр
function filter($reg_exp, $subjekt, $min, $max, $error){ //регулярное выражение, объект, минимальная длина, максимальная длина, допись ошибки
$reg_exp_arr = array( "page" => "~[^a-z_]~",
"pwd" => "~[^a-zA-Z0-9]~",
"mail" => "~[^a-z0-9\-\_\.\@]~",
"text" => "~[^a-zA-Z0-9_-]~",
"pm" => "~[^A-Z0-9]~",
"num" => "~[^0-9\.]~"
);
$count = 0;
$get_value = preg_replace($reg_exp_arr[$reg_exp], '', $subjekt, -1 , $count);
$length = strlen($get_value);
if($count > 0){
die( "Forbidden symbols in the ".$error."");
}elseif($length < $min){
die( "Too short value in the ".$error."");
}elseif($length > $max){
die( "Too long value in the ".$error."");
}else {
return $get_value;
}
}
?>
<?php # Обработка событий
#Отображение страницы
$page_arr = array( "home" => "Home",
"faq" => "FAQ",
"r_and_a" => "Rules and Agrements",
"spt" => "Support",
"acc" => "Account",
"reg" => "Registration",
"auth" => "Authorisation" );
if (isset($_GET['page']) && !empty($_GET['page'])){ //если введено имя страницы
$geted_value = filter("page", $_GET['page'], "2", "11", "link on page!");
if(isset($page_arr[$geted_value])){
$page = $geted_value;
}else{
die("This page does not exist!");
}
}else $page = "home";
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
<?php echo $page_arr[$page]; ?>
</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<center>
<div class="menu"> <!-- Меню -->
<table border="1px" cellpadding="3px" cellspacing="0px">
<tr>
<td><a href=?page=home> Index </a></td>
<td><a href=?page=r_and_a> R&A </a></td>
<td><a href=?page=faq> FAQ </a></td>
<td><a href=?page=spt> Support </a></td>
</tr>
</table>
<?php #отображение кнопок рег/аут - акк/лгт
if(isset($_POST['acc_btn']) && !empty($_POST['acc_btn'])){//обработка кнопок
$page = "acc";
}elseif(isset($_POST['lgt_btn']) && !empty($_POST['lgt_btn'])){
unset($_SESSION['sid']);
}
if(!isset($_SESSION['sid']) && empty($_SESSION['sid'])){ //обработка отображения кнопок
echo '<a href=?page=auth>Authorisation</a>';
echo '<a href=?page=reg >Regiatration</a>';
}elseif(isset($_SESSION['sid']) && !empty($_SESSION['sid'])){
echo '<form method="post" action="index.php" name="acc_btn_form">';
echo '<input type="submit" name="acc_btn" value="Account">';
echo '<input type="submit" name="lgt_btn" value="Logout">';
echo '</form>';
}
?>
</div>
<div class="content"> <!-- Контент -->
<?php //Подключение контента
require_once ($_SERVER{'DOCUMENT_ROOT'} . '/'.SITE_NAME.'/content/'.$page.'.php');
?>
</div>
</body>
</html>