Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 25.07.2019
Сообщений: 134

Глобальные переменные

25.07.2019, 12:20. Показов 1391. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте всем кто читает. Меняю php расширение на своем сайте, перевожу с MySQL на MySQLi, делаю это впервые, поэтому прошу помощи знатаков. Начал с того что поменял подключение к БД, включил в php.ini вывод ошибок на монитор - вылезло конечно много, но треть уже исправил. Сейчас уперся в строку и не могу понять как тут написать -
PHP
1
2
if($glob_region && file_exists($base_path.'cashe_region/_svod_region_'.$glob_region.'.php'))
include_once($base_path.'cashe_region/_svod_region_'.$glob_region.'.php');
Выдает ошибку не определенная переменная (Notice: Undefined variable: glob_region in index.php on line ) Читаю мануал php /https://www.php.net/manual/ru/function.glob.php/ но не могу пока найти решение правильное все выдает ошибки. Кто видит проблему подскажите пожалуйста.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.07.2019, 12:20
Ответы с готовыми решениями:

Глобальные переменные
Тут у меня появилась одна затея, но что-то в ней усомнился. Имеются некие переменные (тексты, массивы), используемые во многих скриптах...

Глобальные переменные
Есть такой код global $dir; $dir = 'C:/doc/'; function Show($path, $case_var) { echo ( $dir ); Почему ничего не выводит? Вроде...

Глобальные переменные
Здравствуйте, пишу в процедурном стиле и хочу сделать глобальную переменную. Но возвращает NULL. А можно ли ещё и константы создавать как в...

16
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
25.07.2019, 12:30
Ну раз переменная не определена, значит её надо сначала определить, либо не обращаться к ней.
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
25.07.2019, 12:59
Лучший ответ Сообщение было отмечено Строитель как решение

Решение

Slovodelo, в дополнение к предыдущему посту можно сперва определять инициализацию переменной, а потом наличие файла - если оба условия true, выполнять подключение:
PHP
1
2
3
4
5
6
if (isset($glob_region)) {
    $file = $base_path . 'cashe_region/_svod_region_' . $glob_region . '.php';
    if (file_exists($file)) {
        include $file;
    }
}
0
0 / 0 / 0
Регистрация: 25.07.2019
Сообщений: 134
25.07.2019, 17:46  [ТС]
Спасибо за подсказки. Строитель спасибо за пример, все ошибка ушла. Я пробовал ,, isset ,, но не так.

Добавлено через 1 час 27 минут
Да еще подскажите пожалуйста, правильным ли я путем пошел ? А то ошибки вроде исправляю, а монитор так и остается полупустой.
0
Невнимательный
 Аватар для ft4l
3107 / 1277 / 358
Регистрация: 08.02.2013
Сообщений: 7,461
Записей в блоге: 2
26.07.2019, 11:35
Цитата Сообщение от Slovodelo Посмотреть сообщение
правильным ли я путем пошел
Вы нашли по всем файлам где могла-бы определяться переменная $glob_region
, поняли почему она получается не определена, и соответственно поправили поведение скрипта в ситуациях когда нужно/ненужно определение наличия файла и его включение?
Тогда возможно .)
0
0 / 0 / 0
Регистрация: 25.07.2019
Сообщений: 134
27.07.2019, 11:45  [ТС]
Да, я нашел много ошибок где не определена переменная и исправил, но хотел узнать вообще тем путем я иду переписывая сайт с MySQL на MySQLi . Я начал с того , что переписал подключение на MySQLi и вывел ошибки на монитор, и сейчас их исправляю. Будет ли положительный результат ? или этот путь ошибочный ? Сейчас я исправляю ошибки только те, что вылезли на index.php , на деюсь что дальше они будут повторятся . Здесь то же уперся в код где ,,isset,, перестал помогать -
PHP
1
2
3
4
if($rru['reg_cat']==1)            ////// - Undefined variable: rru
                include_once($base_path."blok/region.php"); 
                elseif($rru['reg_cat']==2)                                 ///// - Undefined variable: rru
                include_once($base_path."blok/razdel.php");
Я несколько вариантов пробовал - все ломает страницу полностью. Вот последний вариант -
PHP
1
2
3
4
5
6
7
8
 if(isset($rru['reg_cat']==1)){
                $file = $base_path."blok/region.php";
                 include_once $file;                
                }
                elseif(isset($rru['reg_cat']==2)){
                $file =$base_path."blok/razdel.php"; 
                include_once $file;
                }
Вот как здесь правильно прописать ? кто видит ошибку подскажите пожалуйста .
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
27.07.2019, 12:31
Slovodelo,
PHP
1
2
3
4
5
6
$cat = $rru['reg_cat'] ?? null;
$file = $base_path . 'blok/' . ($cat == 1 ? 'region.php' : ($cat == 2 ? 'razdel.php' : ''));
 
if (file_exists($file)) {
    include $file;
}
0
0 / 0 / 0
Регистрация: 25.07.2019
Сообщений: 134
27.07.2019, 15:43  [ТС]
Добрый день. Строитель, я пробую вписать по вашему примеру, но пишет ошибки , пытаюсь подправить , получается - чем глубже в лес.........

1. Parse error: syntax error, unexpected '?' in
2. Parse error: syntax error, unexpected 'null' (T_STRING) in Убераю null, возвращает на старые позиции.
3. Notice: Undefined variable: rru in
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
27.07.2019, 15:54
Цитата Сообщение от Slovodelo Посмотреть сообщение
Parse error: syntax error, unexpected '?' in
У вас наверное PHP старой версии. Пропишите эту строку echo phpversion();
в вашем php-файле, запустите его в браузере, и посмотрите на его версию.
0
0 / 0 / 0
Регистрация: 25.07.2019
Сообщений: 134
27.07.2019, 16:43  [ТС]
Так я и так знаю какие версии php у меня стоят - сейчас включена версия 5.5.5 здесь выведены ошибки на монитор. Есть еще 5.6.9 и 7.1.3 я их сам устанавливал на Apache24. Сейчас попробую версию 7.1.3 настроить вывод ошибок на экран и запустить сайт.
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
27.07.2019, 16:48
Цитата Сообщение от Slovodelo Посмотреть сообщение
Сейчас попробую версию 7
Да, потому что я писал пример именно под 7-ю версию.
0
0 / 0 / 0
Регистрация: 25.07.2019
Сообщений: 134
27.07.2019, 16:59  [ТС]
Включил php7.1.3 - страницу не ломает, но ошибки сменились
1. Warning: include failed to open stream: Permission denied in -
2. Failed opening './blok/' for inclusion (include_path='.;C:\php\pear') in две ошибки указывают на одну строку
PHP
1
2
3
4
5
$cat = $rru['reg_cat'] ?? null;
$file = $base_path . 'blok/' . ($cat == 1 ? 'region.php' : ($cat == 2 ? 'razdel.php' : ''));
 if (file_exists($file)) {
    include $file; /////// на эту строку ссылаются ошибки.
}
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
27.07.2019, 17:02
Slovodelo, а файл по ссылке в переменной $file существует? - проверьте.
0
0 / 0 / 0
Регистрация: 25.07.2019
Сообщений: 134
27.07.2019, 17:45  [ТС]
Да существуют и region.php и razdel.php . На Denwer сайт работает без запинки, решил поставить на новые рельсы и ...
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
27.07.2019, 18:28
Цитата Сообщение от Slovodelo Посмотреть сообщение
Permission denied
Проверяйте права доступа к файлу.
0
Невнимательный
 Аватар для ft4l
3107 / 1277 / 358
Регистрация: 08.02.2013
Сообщений: 7,461
Записей в блоге: 2
27.07.2019, 21:25
Цитата Сообщение от Jodah Посмотреть сообщение
права доступа
Не , не то , ($cat == 1 ? 'region.php' : ($cat == 2 ? 'razdel.php' : '')); возвращает ''
и include(каталог) выдаёт такую ошибку.
вместо '' должно быть какое.то 'default.php', файл на случай $rru['reg_cat']==0
0
0 / 0 / 0
Регистрация: 25.07.2019
Сообщений: 134
28.07.2019, 12:37  [ТС]
Спасибо за помощь, эти две ошибки исправил. Буду дальше пробовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.07.2019, 12:37
Помогаю со студенческими работами здесь

Глобальные переменные
Есть сайт, хочу чтобы была возможность в одном браузере открывая разные вкладки работать под разными пользователями на этом сайте и чтобы...

Глобальные переменные
Читаю в книге про глобальные переменные. Правильно ли так объявлять глобальные переменные? Удобно и хорошо ли это? Вижу тут удобный...

Глобальные переменные
Такая проблема... Нужно что б в скрытое поле формы передавалось значение из другой функции. Вот приблизительный код <?php ...

Глобальные переменные?
Из индексного файла юсер попадает в на страницу ввода пароля, если все юсер сделал правильно, о появляется меню. Если ошибка, редирект на...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru