Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Передача переменной в шаблон
Форумы портала PHP.SU » » Вопросы новичков » Передача переменной в шаблон

Страниц (1): [1]
 

1. Почти_программист - 28 Июня, 2016 - 13:45:10 - перейти к сообщению
Добрый день.
Ситуация следующая: есть пхп скрипт и есть хтмл шаблон.
Необходимо передать переменную из скрипта в шаблон. Далее эта переменная должна уйти в адресную строку. В пхп скрипте создаю массив, с данной переменной, но все равно шаблон ее не видит.
2. Prizma - 28 Июня, 2016 - 14:50:41 - перейти к сообщению
Почти_программист пишет:
Добрый день.
Ситуация следующая: есть пхп скрипт и есть хтмл шаблон.
Необходимо передать переменную из скрипта в шаблон. Далее эта переменная должна уйти в адресную строку. В пхп скрипте создаю массив, с данной переменной, но все равно шаблон ее не видит.
Код в студию Улыбка
А так вот простейший вариант:
CODE (html):
скопировать код в буфер обмена
  1. <div>Время: <?=date("g:i");?></div>

По поводу передачи в адресную строку тут 2 варианта:
1. Переадресация
2. JavaScript

Но если вам просто параметры для JavaScript передать надо, то можно и через вывод в документ.
3. Почти_программист - 28 Июня, 2016 - 15:05:53 - перейти к сообщению
Prizma пишет:
Почти_программист пишет:
Добрый день.
Ситуация следующая: есть пхп скрипт и есть хтмл шаблон.
Необходимо передать переменную из скрипта в шаблон. Далее эта переменная должна уйти в адресную строку. В пхп скрипте создаю массив, с данной переменной, но все равно шаблон ее не видит.
Код в студию Улыбка
А так вот простейший вариант:
CODE (html):
скопировать код в буфер обмена
  1. <div>Время: <?=date("g:i");?></div>

По поводу передачи в адресную строку тут 2 варианта:
1. Переадресация
2. JavaScript

Но если вам просто параметры для JavaScript передать надо, то можно и через вывод в документ.


Файл register.php:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $user_id, $sid, $registration_date определены выше. Тут проблем нет.
  3.  
  4. $sql = "INSERT INTO sessions(user_id, sid, session_start)
  5.                         values('$user_id', '$sid', '$registration_date')";
  6.                         if(!($result = mysql_query($sql)))
  7.                         {
  8.                                 die("No sql 119" . mysql_error());
  9.                                 exit;
  10.                         }
  11. $array = array(
  12.                                 'SID' => $sid
  13.                         );
  14. include('ok.php');


Код шаблона ok.php:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Registration OK<br>
  3.   <a href = index.php?sid={SID}>Перейти на главную</a>
  4.  


Так вот: необходимо значение переменной $sid передать в ok.php
Насколько я понимаю, необходимо каким-то образом обработать массив в файле registration.php, но как это сделать - не знаю.
Желательно обойтись без JavaScript'a
4. Prizma - 28 Июня, 2016 - 15:23:39 - перейти к сообщению
Почти_программист пишет:
Так вот: необходимо значение переменной $sid передать в ok.php
Насколько я понимаю, необходимо каким-то образом обработать массив в файле registration.php, но как это сделать - не знаю.
Желательно обойтись без JavaScript'a
Ну вот, когда видно код, понято, что вам нужно.

тк. у вас не определены пространства имен, все переменные определённые в вызываемом файле доступны и в подключаемых файлах.
в ok.php получить значение SID можно из массива в который оно записано
5. Почти_программист - 28 Июня, 2016 - 15:30:30 - перейти к сообщению
Prizma пишет:
Почти_программист пишет:
Так вот: необходимо значение переменной $sid передать в ok.php
Насколько я понимаю, необходимо каким-то образом обработать массив в файле registration.php, но как это сделать - не знаю.
Желательно обойтись без JavaScript'a
Ну вот, когда видно код, понято, что вам нужно.

тк. у вас не определены пространства имен, все переменные определённые в вызываемом файле доступны и в подключаемых файлах.
в ok.php получить значение SID можно из массива в который оно записано


А можно ли как-то передать переменную не в виде "echo $array['SID']", а в виде "{SID}"
Насколько мне известно, такую технологию ({SID}) используют в форумах. Мне кажется, она как-то более универсальна что ли
Более того, мне ее надо будет передавать на в один шаблон, а в бОльшее количество и не везде мне я буду эти шаблоны подключать.
Для понятности: я пытаюсь реализовать механизм сессий. Да, он скорее самопальный, но пока практикуюсь только в изучении пхп
6. Prizma - 28 Июня, 2016 - 16:33:59 - перейти к сообщению
Почти_программист пишет:
А можно ли как-то передать переменную не в виде "echo $array['SID']", а в виде "{SID}"
Насколько мне известно, такую технологию ({SID}) используют в форумах. Мне кажется, она как-то более универсальна что ли
Более того, мне ее надо будет передавать на в один шаблон, а в бОльшее количество и не везде мне я буду эти шаблоны подключать.
Для понятности: я пытаюсь реализовать механизм сессий. Да, он скорее самопальный, но пока практикуюсь только в изучении пхп
Можно всё, но это уже совсем другая история Улыбка

если всё таки хотите реализовать, тогда то ваш шаблон надо пропускать через функцию которая будет заменять регуляркой все ваши {ПЕРЕМЕННЫЕ} на то, что вы хотите
7. Почти_программист - 28 Июня, 2016 - 17:12:49 - перейти к сообщению
Prizma пишет:
Почти_программист пишет:
А можно ли как-то передать переменную не в виде "echo $array['SID']", а в виде "{SID}"
Насколько мне известно, такую технологию ({SID}) используют в форумах. Мне кажется, она как-то более универсальна что ли
Более того, мне ее надо будет передавать на в один шаблон, а в бОльшее количество и не везде мне я буду эти шаблоны подключать.
Для понятности: я пытаюсь реализовать механизм сессий. Да, он скорее самопальный, но пока практикуюсь только в изучении пхп
Можно всё, но это уже совсем другая история Улыбка

если всё таки хотите реализовать, тогда то ваш шаблон надо пропускать через функцию которая будет заменять регуляркой все ваши {ПЕРЕМЕННЫЕ} на то, что вы хотите


Я понял. Спасибо.
Кстати, Ваш совет относительно вставки переменной сработал.
И еще вопрос: если осуществлять сессии тем методом, который я представил, реальна ли их корректная работа? Или не стоит изобретать велосипед и воспользоваться стандартными функциями пхп - session_start()?
8. Prizma - 28 Июня, 2016 - 22:41:50 - перейти к сообщению
Почти_программист пишет:
Я понял. Спасибо.
Кстати, Ваш совет относительно вставки переменной сработал.
И еще вопрос: если осуществлять сессии тем методом, который я представил, реальна ли их корректная работа? Или не стоит изобретать велосипед и воспользоваться стандартными функциями пхп - session_start()?
Сейчас все браузеры поддерживают куки, я пользуюсь методом setcookie, есть класс типа:
PHP:
скопировать код в буфер обмена
  1. Session{
  2.    /** @var Session */
  3.    private static function $ses;
  4.    /** @var string */
  5.    private $name;
  6.  
  7.    public _construct()
  8.    {
  9.       /* если есть кука то грузим ее, если нет то создаем  */
  10.       $this->name = 'идентификационная строка (имя куки)';
  11.    }
  12.  
  13.    public function getName()
  14.    {
  15.       return $this->name;
  16.    }
  17.  
  18.    public static function getExemplar()
  19.    {
  20.       if(self::$ses === null) {
  21.          self::$ses = new Session();
  22.       }
  23.       return self::$ses;
  24.    }
  25. }
  26.  
  27. /* Там где нужно получить имя куки просто вызываю: */
  28. $name = Session::getExemplar()->getName();
9. Почти_программист - 29 Июня, 2016 - 13:19:20 - перейти к сообщению
Сейчас все браузеры поддерживают куки, я пользуюсь методом setcookie, [/quote]
согласен, только есть два тонких момента:
1. Есть умники, которые отключают куки по каким-то своим соображениям
2. Возможна ведь подмена значений в куке
Поэтому авторизацию я хочу осуществить и с помощью сессий, и с помощью куки.
10. Prizma - 29 Июня, 2016 - 14:32:36 - перейти к сообщению
Почти_программист пишет:
согласен, только есть два тонких момента:
1. Есть умники, которые отключают куки по каким-то своим соображениям
2. Возможна ведь подмена значений в куке
Поэтому авторизацию я хочу осуществить и с помощью сессий, и с помощью куки.

1. куки и сессии почти одно и тоже... подробнее тут:


2. отключить куки не проблема, но если пользователь это делает значит он не хочет, чтобы его идентифицировали и удалить из адресной строки PHPSESID=... ему тоже проблемой не будет.
3. подмена значений? а все значения которые приходят от пользователя надо проверять. подменить сессию можно точно так же. Просто проверкой будете заниматься не Вы, а стандартные механизмы.

Алгоритм простой:
Если нет куки создаем ее и записываем в бд
Если есть кука проверяем ее подлинность (ищем значение в бд), если значение не найдено создаем новую куку и записываем в бд.

Почти_программист пишет:
Поэтому авторизацию я хочу осуществить и с помощью сессий, и с помощью куки.
То же самое, одеть 2 платья одновременно Улыбка как результат: неудобно, некрасиво, неправильно и глупо выглядит
11. Почти_программист - 29 Июня, 2016 - 16:15:05 - перейти к сообщению
Prizma пишет:

2. отключить куки не проблема, но если пользователь это делает значит он не хочет, чтобы его идентифицировали и удалить из адресной строки PHPSESID=... ему тоже проблемой не будет.
3. подмена значений? а все значения которые приходят от пользователя надо проверять. подменить сессию можно точно так же. Просто проверкой будете заниматься не Вы, а стандартные механизмы.

Алгоритм простой:
Если нет куки создаем ее и записываем в бд
Если есть кука проверяем ее подлинность (ищем значение в бд), если значение не найдено создаем новую куку и записываем в бд.

Я понял, спасибо.
Еще такой вопрос: если следовать данному механизму, то можно ли всякое посещение пользователя сделать уникальным, т.е. присваивать его сессии динамическое значение?
Или же встроенные функции пхп сами формируют динамическое значение сессии?
12. Prizma - 29 Июня, 2016 - 21:30:35 - перейти к сообщению
Почти_программист пишет:
Еще такой вопрос: если следовать данному механизму, то можно ли всякое посещение пользователя сделать уникальным, т.е. присваивать его сессии динамическое значение?
Или же встроенные функции пхп сами формируют динамическое значение сессии?
Любое значение является статическим, и динамически меняться само по себе оно не может. Изменить его можете Вы сами, когда пользователь загружает страницу куки можно переопределять (менять значение, удалять и добавлять новые).

Если Вы хотите после каждой загрузки страницы пользователем менять значение куки, то это возможно и легко реализуемо. Вот только если кука нужна для идентификации пользователя, то это лишено смысла. А для защиты будет достаточно установить время жизни до конца сессии, те кука будет удалена после закрытия браузера или ухода с сайта (точно не помню)

 

Powered by ExBB FM 1.0 RC1