[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Константа в подгружаемом контенте
Slavok47
Всем привет!
Ребят возникла проблемка.
Например: имеется index.php
В самом начале пишу
define("_KEY", "Hello"]);

далее если в любом месте вызвать

echo _KEY;


то выводится Hello, все логично,
так же это работает если вызвать константу из другого файла, например test.php, и этот файл вызвать инклудом в index.php, но вот если вызвать контент файла средствами jQuery, то в результате получим _KEY, как будто константа не определена, в чем может быть проблема?
Спасибо!
Invis1ble
Цитата (Slavok47 @ 8.06.2015 - 13:24)
если вызвать контент файла средствами jQuery
Slavok47
походу я не корректно описал проблему

значит так, index.php

define("_KEY", "Hello"]);

<
div id="w1">
<?echo _KEY;?>
</div>

<
script>
function loadTest(){
$('#w1').panel({
href:'test.php'
});
}
</script>


дак вот в таком виде, в диве отображается Hello, при вызове функции loadTest() в диве должен появиться контент из test.php, и он появляется, вот только, константа уже в этом контенте не работает

так вроде понятней
Slavok47
да там тоже самое, для проверки
<?echo _KEY;?> 


только вместо Hello подгружается _KEY
Slavok47
идея была защитить test.php от прямого доступа, типа
<?if (defined("_KEY")==false) header("Location: index.php");?>


чтобы контент отображался только если он подгружен в index.php, но этот метод не работает...
Invis1ble
Цитата (Slavok47 @ 8.06.2015 - 13:54)
да там тоже самое, для проверки
<?echo _KEY;?> 


только вместо Hello подгружается _KEY

так откуда там возьмется константа _KEY, если ты ее определяешь в другом скрипте?

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Slavok47
в том то и дело, мне казалось, что должно быть так, как будто, я test.php вызвал по типу include, а по факту получается что я обращаюсь к нему на прямую по ссылке, то тут конечно нет определения константы...
Invis1ble
для этого обычно делается единая точка входа для всех скриптов
либо можно вынести определение константы в отдельный файл и инклудить его в нужные места

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Slavok47
про единую точку не понял...
ну а про определение в другой файл это понятно, просто у меня константа определяется если пользователь залогинен, то есть в index.php, и все происходит в index.php с подгрузкой нужного контента, поэтому и думал что так будет нормально, можно конечно сделать функцию со сравнением например кук, но опять же нужно в каждый файл инклюдить файл с функцией, предполагал обойтись минимум кода, но походу не получится...
Invis1ble
точка входа - это когда весь основной код содержится (или подключается, не суть важно) в одном файле, например index.php, и зависимости от каких-то факторов (например запрашиваемый url) подключаются другие скрипты
можешь побродить по этому форуму и посмотреть как меняется url, точкой входа здесь выступает index.php

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Slavok47
типа url с параметром, который будет что то вызывать из if который будет равен параметру url
ТОесть вызов по GET запросу, так что ли?
killer8080
Цитата (Slavok47 @ 8.06.2015 - 13:59)
идея была защитить test.php от прямого доступа, типа
<?if (defined("_KEY")==false) header("Location: index.php");?>


чтобы контент отображался только если он подгружен в index.php, но этот метод не работает...

во первых после header() нужно останавливать скрипт exit() | die()
во вторых включи вывод ошибок, и смотри где косяк, полюбому или где то был вывод в поток, или файл в кодировке с BOM

И да вместо
if (defined("_KEY")==false) 

достаточно просто
if (!defined("_KEY")) 
Slavok47
ну с header() то проблем нет как раз, и вывод ошибок не нужен, проблема с константой
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.