<?php
# # # # # # # # # # # # # # # # # # # # #
# @Script Name: index.php (Home Page) #
# @Autor: KMAKS #
# @Since: 4/09/2011 13:24 #
# # # # # # # # # # # # # # # # # # # # #
session_start(); # Starting session
error_reporting(E_ALL); # Show all error
header('Content-type: text/html; Charset=UTF-8'); # Send header
include 'system/functions.php'; # Site functions
include 'system/config.php'; # Site conf(Connect to DataBase server, auth)
include 'system/init_var.php'; # Initialization system vars
$sitePages = array(
/* Array all site pages */
'index', # Home Page
'register', # Register page
'login', # Auth page
'downloads', # Port Releases
'about', # Info
'feedback', # FeedBack...
);
if(in_array($site_page['name'], $sitePages)){
$site_page['caption'] = $captions[$site_page['name']];
var_dump($site_page);
}else{
var_dump($site_page);
# header("HTTP/1.0 404 Not Found");
# exit();
}
?>
init_var.php
<?php
$site_page['name'] = isset($_GET['page']) ? $_GET['page'] : 'index';
?>
Если не указать page, то $site_page['name'] присвоится '', а если убрать isset и не указать page, то все гуд. В чем проблема?
Если убрать проверку на существование переменной, то все гуд.
.htaccess
AddDefaultCharset UTF-8
Options -Indexes
RewriteEngine on
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
Я так думаю, что это из-за ЧПУ? Нужно заменить isset на empty?
Спустя 11 минут, 11 секунд (4.09.2011 - 10:34) Invis1ble написал(а):
RewriteRule ^(.+)$ index.php?page=$1 [L,QSA]
Цитата |
Я так думаю, что это из-за ЧПУ? Нужно заменить isset на empty? |
можно и так
Спустя 27 секунд (4.09.2011 - 10:34) alex12060 написал(а):
Цитата |
Если не указать page, то $site_page['name'] присвоится '', а если убрать isset и не указать page, то все гуд. В чем проблема? |
Странные у тебя мысли :)
Если так:
$site_page['name'] = $_GET['page'] ? $_GET['page'] : 'index';
То в любом случае выполнится условие после ?
Тут не стоит условия как бы, и результат всегда будет true
Спустя 1 минута, 58 секунд (4.09.2011 - 10:36) XCross написал(а):
Цитата |
Странные у тебя мысли :) |
:D Забросил просто это дело. Сейчас опять захотелось что-нибудь сделать. Вот что делает лето с человеком =). Чуть расслабился и все, мозги стухли. Даж объяснить не могу.
Да, да. Ты меня кажись понял =)
$site_page['name'] = $_GET['page'] ? $_GET['page'] : 'index';
При таком раскладе все гуд, но. Если теперь перейти на http://localhost/0, то перейдет на index и 404 ошибки не будет, а ведь это минус уже =(
Спустя 9 минут, 11 секунд (4.09.2011 - 10:45) alex12060 написал(а):
Цитата |
а ведь это минус уже =( |
Да ладно? Оо
аха
Нет, не минус ниразу.
Если так, то поменяй на:
RewriteRule ^([a-zA-Z_-])$ index.php?page=$1 [L,QSA]
Спустя 1 минута, 29 секунд (4.09.2011 - 10:47) XCross написал(а):
Я не про отрицательные числа. а про то, что если наберешь в адресной строке такой URL:
site.ru/0
то попадешь на index...
Се, проблема решилась так:
Всем спасибо, тема закрыта.
site.ru/0
то попадешь на index...
Се, проблема решилась так:
$site_page['name'] = isset($_GET['page']) ? $_GET['page'] : 'index';
RewriteRule ^(.)$ index.php?page=$1 [L,QSA]
Всем спасибо, тема закрыта.
Спустя 21 час, 26 минут, 7 секунд (5.09.2011 - 08:13) linker написал(а):
Цитата (alex12060 @ 4.09.2011 - 10:34) |
Если так: $site_page['name'] = $_GET['page'] ? $_GET['page'] : 'index'; То в любом случае выполнится условие после ? Тут не стоит условия как бы, и результат всегда будет true |
TRUE будет если $_GET['page'] любое не пустое и не нулевое значение. Ошибка будет, если элемента с ключом page не существует. Всё остальное вернёт FALSE. Т.е. такое условие не всегда является истинным.
_____________
Обмен Ukash на WebMoney