Ответить
Первое - он достает контент из шаблона и инклудит в документ с данным скриптом? А php скрипты, тогда куда вставлять? К примеру, обработки сессий.
Второе - это функция, которая будет менять {MARKET} на значение переменной $market, а зачем тут ещё $templ?
[/b]
$templ - это где менять. тоесть в какой переменной находится текст над которым необходимо произвести действие
Это просто функция которае не инклудит файл а кладет его содержимое в переменную. В данном случае переменная $templ будет содержать текст из шаблона.
А PHP скрипты в шаблон так просто не вставишь. Но если уж сильно надо то можно вставить HTML код в PHP файл типа так
[/php]
Общие вопросы новичков
Отправлено: 6 Oct 2010#11
Про .htaccess напишу ок. про авторизацию тоже. а чтобы сессии работали надо перед работой с ними их инициализаровать
и только потом можно с ними работать. другими словами если вы хотите повсемесно работать с сессией то вам надо в начале каждого файла ее инициализаровать как написанно выше. А еще лучше делать это в одном файле а его везде подключать
1
2
<?php session_start();?>
и только потом можно с ними работать. другими словами если вы хотите повсемесно работать с сессией то вам надо в начале каждого файла ее инициализаровать как написанно выше. А еще лучше делать это в одном файле а его везде подключать
1
2
<?php include_once 'sessions.php';?>
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 6 Oct 2010#12
Ну это понятно, просто, я думал, что в в сессиях при их использовании, можно закрыть доступ на страницу не прошедшему авторизацию.
Я это представляю себе примерно так:
Обработка
в нужном файле:
Я это представляю себе примерно так:
Обработка
1
2
3
4
5
6
7
8
9
10
11
<?php <?php
session_start();
// Описание переменных пропускаем
if ($_POST['password'] == $password && $_POST['login'] == $login) // проверяем логины и пароли
$_SESSION['id'] = 1; // устанавливаем ключ ID для сессии авторизованного
header("Location: ../main.php"); // отправляем на закрытую страницу
else
$_SESSION['id'] = 0; // устанавливаем ключ ID для сессии неавторизованного
header("Location: ../index.php"); // отправляем обратно на авторизацию?>
в нужном файле:
1
2
3
4
5
6
7
<?php session_start();
if ($_SESSION['id'] = 1) // проверяем сессию (вот думаю, стоит ли приписывать isset?)
{ } // просто показываем содержимое страницы, так как юзер получил правильный ключ
else
{
header("Location: ../index.php"); // Отправляем на авторизацию
}?>
Отправлено: 6 Oct 2010#14
будет но както это не по понятиям
ты выше говорил о том что будешь брать данные о юзерах из базы вот и бери их оттуда. Если нашлись данные с такой парой логин/пароль то все данные этого юзера и пихай в сессию.
а дальше на других страницах
ну таког плана. это я утрированно все пишу, чисто чтобы смысл передать.
Добавлено 2010.10.06 15-03
естественно все что пришло от юзера перед запросом квоть, а то туда могут все что угодно написать и если без проверки пихать все в запрос это будет угроза безопасности
ты выше говорил о том что будешь брать данные о юзерах из базы вот и бери их оттуда. Если нашлись данные с такой парой логин/пароль то все данные этого юзера и пихай в сессию.
1
2
3
4
5
6
<?php if ($q = mysql_query("SELCT * FROM users WHERE pass=$_POST['pass'] AND login=$_POST['login'] LIMIT 1")) // проверяем логины и пароли
$_SESSION['user'] = mysql_result($q, 0); // устанавливаем ключ ID для сессии авторизованного
header("Location: ../main.php"); // отправляем на закрытую страницу
else
unset($_SESSION['user']);
header("Location: ../index.php"); // отправляем обратно на авторизацию?>
а дальше на других страницах
1
2
3
4
5
6
7
<?php session_start();
if (!empty($_SESSION['user']['id'])) // проверяем сессию (вот думаю, стоит ли приписывать isset?)
{ } // просто показываем содержимое страницы, так как юзер получил правильный ключ
else
{
header("Location: ../index.php"); // Отправляем на авторизацию
}?>
ну таког плана. это я утрированно все пишу, чисто чтобы смысл передать.
Добавлено 2010.10.06 15-03
естественно все что пришло от юзера перед запросом квоть, а то туда могут все что угодно написать и если без проверки пихать все в запрос это будет угроза безопасности
Edit by author 6 Oct 2010
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 6 Oct 2010#15
Я вот не понял это:
и
В последнем я не нашел, где задавался id
1
2
<?php $_SESSION['user'] = mysql_result($q, 0);?>
1
2
<?php !empty($_SESSION['user']['id']?>
Отправлено: 6 Oct 2010#16
Ну тут я немного ошибся. что-то типо такого надо
тогда в $_SESSION['user'] будет массив состоящий из всей записи найденного в бд юзера. Обычно это ID, NAME, STATUS, EMAIL, и т.д.
1
2
<?php $_SESSION['user'] = mysql_fetch_array($q);?>
тогда в $_SESSION['user'] будет массив состоящий из всей записи найденного в бд юзера. Обычно это ID, NAME, STATUS, EMAIL, и т.д.
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 6 Oct 2010#17
И вот ещё спросить хотел, как прикрутить сюда ещё проверку группы и верное отображение прав для групп
Если по русски, то идея такова:
Есть 100% не пустые поля в таблице юзеры:
id login password mail group
group может быть равен 0(юзер), 1(модератор), 2(админ) или 3(гл. админ) и назначается непосредственно мною(админом)
Вот мы увидели и нашли логин и пароль, теперь мы должни взять эту строку и сделать так:
Выбрать из строки, где логин и пароль равны найденному поле group
Если group == 0, то вернуть на главную (там уже с джавой попробую разобраться и вывести ему меседж, что у вас нет прав, просматривать админ-панель)
потом 2 варианта, elseif или просто новый if. Выбираю новый if
если group == 1 то присвоить $_SESSION['group'] = 1 переместить на нужную страницу, на странице каждая ссылка на модуль, должна будет быть с
так? Но вот я хочу заделать эти все линки в шаблонные переменные, вставляемые не инклудом, а, к примеру, {menu}, от чего будет выводиться все линки.
Мысли в том направлении? Правильно, вообще, думаю? Получится ли таким способом?
1
2
3
4
5
6
<?php if ($q = mysql_query("SELCT * FROM users WHERE pass=$_POST['pass'] AND login=$_POST['login'] LIMIT 1"))
$_SESSION['user'] = mysql_result($q, 0);
header("Location: ../main.php");
else
unset($_SESSION['user']);
header("Location: ../index.php");?>
Если по русски, то идея такова:
Есть 100% не пустые поля в таблице юзеры:
id login password mail group
group может быть равен 0(юзер), 1(модератор), 2(админ) или 3(гл. админ) и назначается непосредственно мною(админом)
Вот мы увидели и нашли логин и пароль, теперь мы должни взять эту строку и сделать так:
Выбрать из строки, где логин и пароль равны найденному поле group
Если group == 0, то вернуть на главную (там уже с джавой попробую разобраться и вывести ему меседж, что у вас нет прав, просматривать админ-панель)
потом 2 варианта, elseif или просто новый if. Выбираю новый if
если group == 1 то присвоить $_SESSION['group'] = 1 переместить на нужную страницу, на странице каждая ссылка на модуль, должна будет быть с
1
2
3
<?php if ($_SESSION['group'] = 1 or $_SESSION['group'] = 2 or $_SESSION['group'] = 3) { echo "LINK"; } // для общедоступного
if ($_SESSION['group'] = 1 or $_SESSION['group'] = 2) { echo ""; } elseif ($_SESSION['group'] = 3) { echo "Link"; } // для только гл. админа
#Возможны другие вариации, ну это уже логично.?>
Мысли в том направлении? Правильно, вообще, думаю? Получится ли таким способом?
Отправлено: 6 Oct 2010#18
ну если чисто цифрами будет поля group то можно и так проверять
заметь после вызова хеадер я вызываю die() это обязательно иначе будет серьезная угроза безопасности, так как хедер не всегда может отработать, это всего лишь заголовок.
если делать так
то $_SESSION['user'] будет содержать всю инфу о юзере из бд, в том числе group
На счет шаблонов
1
2
<?php if ($_SESSION['user']['group'] < 2) header(); die();?>
если делать так
1
2
<?php $_SESSION['user'] = mysql_fetch_array($q);?>
На счет шаблонов
1
2
3
4
<?php //это файл шаблона. в нем например метки типа {MARKET}
$templ = file_get_contents('template.html');
//теперь все метки будут замененны на значение переменной $market
$templ = str_replace('{MARKET}', $market, $templ);?>
Edit by author 6 Oct 2010
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 6 Oct 2010#19
1
2
3
<?php <?php
$templ = file_get_contents('template.html'); // можно про это подробней?
$templ = str_replace('{MARKET}', $market, $templ);?> // можно про это подробней??>
Первое - он достает контент из шаблона и инклудит в документ с данным скриптом? А php скрипты, тогда куда вставлять? К примеру, обработки сессий.
Второе - это функция, которая будет менять {MARKET} на значение переменной $market, а зачем тут ещё $templ?
[/b]
Отправлено: 6 Oct 2010#20
skad0 пишет:
Второе - это функция, которая будет менять {MARKET} на значение переменной $market, а зачем тут ещё $templ?
1
2
<?php $templ = file_get_contents('template.html'); // можно про это подробней??>
Это просто функция которае не инклудит файл а кладет его содержимое в переменную. В данном случае переменная $templ будет содержать текст из шаблона.
А PHP скрипты в шаблон так просто не вставишь. Но если уж сильно надо то можно вставить HTML код в PHP файл типа так
1
2
3
4
5
6
7
8
9
10
<?php if ($q = mysql_query("SELCT * FROM users WHERE pass=$_POST['pass'] AND login=$_POST['login'] LIMIT 1")) {
?>
тут любой HTML код
<?php
} else {
?>
тут любой HTML код
<?php
}?>
Я горжусь тем, что создал . И люблю нашу команду)
Сейчас online: 10. Зарегистрированных: 0. Гостей: 10.

