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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Передача переменной в шаблон

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Почти_программист
Отправлено: 28 Июня, 2016 - 13:45:10
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июнь 2016  


Помог: 0 раз(а)




Добрый день.
Ситуация следующая: есть пхп скрипт и есть хтмл шаблон.
Необходимо передать переменную из скрипта в шаблон. Далее эта переменная должна уйти в адресную строку. В пхп скрипте создаю массив, с данной переменной, но все равно шаблон ее не видит.

(Отредактировано автором: 28 Июня, 2016 - 13:46:39)

 
 Top
Prizma
Отправлено: 28 Июня, 2016 - 14:50:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




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

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

Но если вам просто параметры для JavaScript передать надо, то можно и через вывод в документ.
 
My status
 Top
Почти_программист
Отправлено: 28 Июня, 2016 - 15:05:53
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июнь 2016  


Помог: 0 раз(а)




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
 
 Top
Prizma
Отправлено: 28 Июня, 2016 - 15:23:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




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

тк. у вас не определены пространства имен, все переменные определённые в вызываемом файле доступны и в подключаемых файлах.
в ok.php получить значение SID можно из массива в который оно записано
 
My status
 Top
Почти_программист
Отправлено: 28 Июня, 2016 - 15:30:30
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июнь 2016  


Помог: 0 раз(а)




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

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


А можно ли как-то передать переменную не в виде "echo $array['SID']", а в виде "{SID}"
Насколько мне известно, такую технологию ({SID}) используют в форумах. Мне кажется, она как-то более универсальна что ли
Более того, мне ее надо будет передавать на в один шаблон, а в бОльшее количество и не везде мне я буду эти шаблоны подключать.
Для понятности: я пытаюсь реализовать механизм сессий. Да, он скорее самопальный, но пока практикуюсь только в изучении пхп

(Отредактировано автором: 28 Июня, 2016 - 15:34:51)

 
 Top
Prizma
Отправлено: 28 Июня, 2016 - 16:33:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




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

если всё таки хотите реализовать, тогда то ваш шаблон надо пропускать через функцию которая будет заменять регуляркой все ваши {ПЕРЕМЕННЫЕ} на то, что вы хотите
 
My status
 Top
Почти_программист
Отправлено: 28 Июня, 2016 - 17:12:49
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июнь 2016  


Помог: 0 раз(а)




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

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


Я понял. Спасибо.
Кстати, Ваш совет относительно вставки переменной сработал.
И еще вопрос: если осуществлять сессии тем методом, который я представил, реальна ли их корректная работа? Или не стоит изобретать велосипед и воспользоваться стандартными функциями пхп - session_start()?
 
 Top
Prizma
Отправлено: 28 Июня, 2016 - 22:41:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




Почти_программист пишет:
Я понял. Спасибо.
Кстати, Ваш совет относительно вставки переменной сработал.
И еще вопрос: если осуществлять сессии тем методом, который я представил, реальна ли их корректная работа? Или не стоит изобретать велосипед и воспользоваться стандартными функциями пхп - 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();

(Отредактировано автором: 28 Июня, 2016 - 22:44:26)

 
My status
 Top
Почти_программист
Отправлено: 29 Июня, 2016 - 13:19:20
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июнь 2016  


Помог: 0 раз(а)




Сейчас все браузеры поддерживают куки, я пользуюсь методом setcookie, [/quote]
согласен, только есть два тонких момента:
1. Есть умники, которые отключают куки по каким-то своим соображениям
2. Возможна ведь подмена значений в куке
Поэтому авторизацию я хочу осуществить и с помощью сессий, и с помощью куки.
 
 Top
Prizma
Отправлено: 29 Июня, 2016 - 14:32:36
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




Почти_программист пишет:
согласен, только есть два тонких момента:
1. Есть умники, которые отключают куки по каким-то своим соображениям
2. Возможна ведь подмена значений в куке
Поэтому авторизацию я хочу осуществить и с помощью сессий, и с помощью куки.

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


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

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

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


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Июнь 2016  


Помог: 0 раз(а)




Prizma пишет:

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

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

Я понял, спасибо.
Еще такой вопрос: если следовать данному механизму, то можно ли всякое посещение пользователя сделать уникальным, т.е. присваивать его сессии динамическое значение?
Или же встроенные функции пхп сами формируют динамическое значение сессии?
 
 Top
Prizma
Отправлено: 29 Июня, 2016 - 21:30:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




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

Если Вы хотите после каждой загрузки страницы пользователем менять значение куки, то это возможно и легко реализуемо. Вот только если кука нужна для идентификации пользователя, то это лишено смысла. А для защиты будет достаточно установить время жизни до конца сессии, те кука будет удалена после закрытия браузера или ухода с сайта (точно не помню)
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB