PHP.SU

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

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

> Найдено сообщений: 24
SergAntDnepr Отправлено: 01 Июня, 2012 - 19:00:15 • Тема: проблемы со входом в админку на новом хостинге • Форум: Администрирование БД

Ответов: 2
Просмотров: 2047
Происходит следующее: Модератор запрашивает страницу админки, выбивает окно авторизации, модератор вводит логин-пароль и ничего не происходит, предлагается ввести пароль-логин вновь.
SergAntDnepr Отправлено: 01 Июня, 2012 - 16:52:00 • Тема: проблемы со входом в админку на новом хостинге • Форум: Администрирование БД

Ответов: 2
Просмотров: 2047
В БД есть таблица в которой хранится логин-пароль пользователя который управляет админкой. Сайт переехал к новым хостерам и теперь при входе в админку по паролю войти не возможно. Без пароля админка работает как обычно. Подскажите пожалуйста в чем проблема? Наверное в php.ini что-то надо подрегулировать? Файл lock.php следующий:

<?
include("bd.php");
if (!isset($_SERVER['PHP_AUTH_USER']))

{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}

else {
if (!get_magic_quotes_gpc()) {
$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
}

$query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'";
$lst = @mysql_query($query);

if (!$lst)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}

if (mysql_num_rows($lst) == 0)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}

$pass = @mysql_fetch_array($lst);
if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}

}

?>
SergAntDnepr Отправлено: 28 Января, 2011 - 22:07:47 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
И на том спасибо.
SergAntDnepr Отправлено: 28 Января, 2011 - 13:03:38 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
$result99 = mysql_query("SELECT * FROM data WHERE id='$id'",$db);
$myrow99 = mysql_fetch_array($result99);

$result98 = mysql_query("SELECT * FROM data WHERE id='$id' AND group='0'",$db);
$myrow98 = mysql_fetch_array($result98);

$result_secret = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow_secret = mysql_fetch_array($result_secret);

if (!empty($myrow_secret['id']))
{
printf ("<p class='post_title2'>%s</p><p class='post_text'>%s</p><p class='post_adds'>Автор: %s</p><p class='post_adds'>Дата: %s</p><p class='post_view'>Просмотров: %s</p>",$myrow99["title"],$myrow99["text"],$myrow99["author"],$myrow99["date"],$myrow99["view"]);
}

else
{
printf ("<p class='post_title2'>%s</p><p class='post_text'>%s</p><p class='post_adds'>Автор: %s</p><p class='post_adds'>Дата: %s</p><p class='post_view'>Просмотров: %s</p>",$myrow98["title"],$myrow98["text"],$myrow98["author"],$myrow98["date"],$myrow98["view"]);
}

Подскажите, пожалуйста, что тут не так. Почему else не срабатывает?
поле group='0' в таблице data - это поле по которому определяется доступность заметки.

Логика вышеприведенного кода такая: Если залогиненый показываем $result99, в противном случае $result98

Что может быть не так??? Пожалуйста помогите!
SergAntDnepr Отправлено: 27 Января, 2011 - 16:39:39 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
annihilus пишет:
Возможно из-за того что вы забыли выполнить

после
PHP:
скопировать код в буфер обмена
  1. $result98 = mysql_query("SELECT * FROM data WHERE group=0",$db);


Дословно так
<?
$result99 = mysql_query("SELECT * FROM data WHERE id='$id'",$db);
$myrow99 = mysql_fetch_array($result99);
$result98 = mysql_query("SELECT * FROM data WHERE group='0'",$db);
$myrow98 = mysql_fetch_array($result98);

$result_secret = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow_secret = mysql_fetch_array($result_secret);
if (!empty($myrow_secret['id']))
{
printf ("<p class='post_title2'>%s</p><p class='post_text'>%s</p><p class='post_adds'>Автор: %s</p><p class='post_adds'>Дата: %s</p><p class='post_view'>Просмотров: %s</p>",$myrow99["title"],$myrow99["text"],$myrow99["author"],$myrow99["date"],$myrow99["view"]);
}
else
{
printf ("<p class='post_title2'>%s</p><p class='post_text'>%s</p><p class='post_adds'>Автор: %s</p><p class='post_adds'>Дата: %s</p><p class='post_view'>Просмотров: %s</p>",$myrow98["title"],$myrow98["text"],$myrow98["author"],$myrow98["date"],$myrow98["view"]);
}

?>

А выводит так Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\test1.ru\www\view_post.php on line 91

Автор:
Дата:
Просмотров:

Ошибка в этой строке:
$myrow98 = mysql_fetch_array($result98);
SergAntDnepr Отправлено: 27 Января, 2011 - 14:37:49 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
Спасибо! Вот сейчас наверное получится! Это то что было нужно!
(Добавление)
annihilus пишет:
жуть...

Есть таблица с категориями , допустим такая:
id subject text
1 кат1 текст1
2 кат2 текст2
3 кат3 текст3

Что бы закрыть не зарегеным пользователям доступ к определенной категории вам надо добавить поле в эту таблицу , что бы она выглядела например так:

id subject text group
1 кат1 текст1 0
2 кат2 текст2 1
3 кат3 текст3 1

Далее в своем коде , вы проверяете зарегистрирован ли пользователь.
Проверили , если пользователь зарегистрирован достаете из БД все категории например так "select * from {название таблицы};" и показываете им результат.

Если пользователь не зарегистрирован , то достаете все категории у которых группа 0, тоесть так "select * from {название таблицы} where group=0;" и так же показываете им результат...

таким образом , если вы не зарегистированы , то увидите только категорию {кат1},
если вы зарегистированы , то увидите все категории.


Решил попробовать вашим способом.
В таблицу data
id cat meta_d meta_k description text view author date mini_img title h2 h2_categories
добавил поле group
затем пишу так:
<?
$result99 = mysql_query("SELECT * FROM data WHERE id='$id'",$db);

$result_secret = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow_secret = mysql_fetch_array($result_secret);
if (!empty($myrow_secret['id']))
{
printf ("<p class='post_title2'>%s</p><p class='post_text'>%s</p><p class='post_adds'>Автор: %s</p><p class='post_adds'>Дата: %s</p><p class='post_view'>Просмотров: %s</p>",$myrow99["title"],$myrow99["text"],$myrow99["author"],$myrow99["date"],$myrow99["view"]);
}
else
{
$result98 = mysql_query("SELECT * FROM data WHERE group=0",$db);
{
printf ("<p class='post_title2'>%s</p><p class='post_text'>%s</p><p class='post_adds'>Автор: %s</p><p class='post_adds'>Дата: %s</p><p class='post_view'>Просмотров: %s</p>",$myrow98["title"],$myrow98["text"],$myrow98["author"],$myrow98["date"],$myrow98["view"]);
}
}

?>
Но теперь если незалогинен выводит просто вот так:
Автор:
Дата:
Просмотров:
Вот только 3 слова и больше ничего на всех категориях и где group 1 и group 0

Подскажите пожалуйста где я ошибся
SergAntDnepr Отправлено: 27 Января, 2011 - 13:59:40 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
DiosPA пишет:
а раз нету то выводим все разделы только для гостей


Ну а как же указать языком php что надо выводить для гостей разделы (cat) только с 1 по 4, а все разделы только зологиненым?
SergAntDnepr Отправлено: 27 Января, 2011 - 13:21:55 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
DiosPA пишет:
SergAntDnepr - у вас сайт использует БД ?
если да то там скорее всего есть таблица с пользователями (логин\пароль)
------
делаем допустим такую структуру таблици:
-------------------------------- --
id -- login -- Pass -- Group --
1 -- Admin -- 123 -- 0 --
2 -- Moder -- 123 -- 1 --
3 -- User -- 123 -- 3 --
-------------------------------- --
когда пользователь залогинился (вошёл на сайт) регистрируем в сесси переменную:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $_SESSION['id'] = $group;
  3. //где - $group это # Группы из таблици БД или файла (в зависимости от сайта)
  4.  

в скрите в котором доступ :
проверка что пользователь вообще залогинился проверяем существование сессии
проверяем существование
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if (isset ($_SESSION['id'])) {$id_group = $_SESSION['id'];} else {exit 'выполните вход';}
  3. //присвоили  $id_group = $_SESSION['id'];
  4. if ($id_group = 0) {echo 'ADMIN';} else {echo 'сорри нету доступа';}
  5.  

(Добавление)
Ps. на форуме не плохо только если руки отрывать не будут Не понял если что то говорю не правильно поправляйте просто не все же гуру ;)

У меня тоже самое что вы советуете только написано по другому :

//проверяем авторизирован ли пользователь и если да то показываем публикацию
$result_secret = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow_secret = mysql_fetch_array($result_secret);
if (empty($myrow_secret['id']))
{
printf ("Эта публикация доступна только зарегистрированным пользователям!");
}
else
{
printf ("<p class='post_title2'>%s</p><p class='post_text'>%s</p><p class='post_adds'>Автор: %s</p><p class='post_adds'>Дата: %s</p><p class='post_view'>Просмотров: %s</p>",$myrow99["title"],$myrow99["text"],$myrow99["author"],$myrow99["date"],$myrow99["view"]);
}

Но мне надо для неавторизированых и незарегестрированных пользователей показывать заметки категории "Просто страница" и не показывать заметки "Секретная страница".

Все заметки хранятся в таблице data. В этой таблице есть поле cat. Так вот с 1-й по 4-ю cat надо показывать всем (и залогиненым и не залогиненым и не зарегестрированным), а с 5-й по 10-ю cat показывать только залогиненым.
SergAntDnepr Отправлено: 27 Января, 2011 - 11:57:50 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
DiosPA пишет:
если пользователь не имее доступа мы перенаплавляем его так


Ну а как же всё таки узнать имеет доступ пользователь к данной категории или не имеет?
SergAntDnepr Отправлено: 27 Января, 2011 - 08:52:07 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
Мне кажется, что сначала надо выяснить публикацию какой категории хочет просмотреть пользователь. Если номер категории больше четвёртой, то $mysecret = 0;
остальные категории $mysecret = 1;

$result_cat = mysql_query("SELECT cat FROM data WHERE cat='$cat'",$db);
$myrow_cat = mysql_fetch_array($result_cat);
if {
$myrow_cat['cat'] > 4;
$mysecret = 0;
}
else {
$mysecret = 1;
}

А затем после строчки if (empty($myrow_secret['id']))
дописать && ($mysecret = 1;)

{
printf ("Эта публикация доступна только зарегистрированным пользователям!");
}

Может так? Хотя с синтаксисом наверное напутал.
(Добавление)
Вернее && ($mysecret == 1;)
(Добавление)
Пишет что -
Parse error: syntax error, unexpected ';' in Z:\home\test1.ru\www\view_post.php on line 91
Вот в этой строке -
$myrow_cat['cat'] > 4;

Наверное не так надо указывать категорию???

Подскажите кто нибудь. Прошу!
SergAntDnepr Отправлено: 26 Января, 2011 - 21:25:15 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
DiosPA, пожалуйста поясните что такое -направляем на регенерацию-
SergAntDnepr Отправлено: 26 Января, 2011 - 21:07:54 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
Попробую. В любом случае спасибо.
SergAntDnepr Отправлено: 26 Января, 2011 - 20:26:54 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
Annihilus, а куда и что надо добавить? Ещё раз прошу прощения в php только вникаю, код читаю, понимаю, а писать пока не могу. Очень прошу помогите. Уже и так пробовал и наперекосяк.
SergAntDnepr Отправлено: 26 Января, 2011 - 19:58:24 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
Простите, я новичёк в php. annihilus, почему жесть?
SergAntDnepr Отправлено: 26 Января, 2011 - 18:54:45 • Тема: Доступ для зарегестрированных и незарегестрированным посетителям сайта к разным категориям страниц сайта • Форум: Напишите за меня, пожалуйста

Ответов: 29
Просмотров: 279
Здесь ниже всем зарегистрированным пользователям разрешено просматривать все публикации всех категорий выводимых на эту страницу. А как сделать так чтобы с 1-й по 4-ю категорию (cat) можно было всем смотреть, а с 5-й по 10-ю только зарегистрированным??? Подскажите ПОЖАЛУЙСТА!!!
<?php

session_start();

include ("bd.php");

if (isset($_COOKIE['auto']) and isset($_COOKIE['login']) and isset($_COOKIE['password']))
{//если есть необходимые переменные
if ($_COOKIE['auto'] == 'yes') {
$_SESSION['password']=strrev(md5($_COOKIE['password']));
$_SESSION['login']=$_COOKIE['login'];//сессия с логином
$_SESSION['id']=$_COOKIE['id'];//идентификатор пользователя
}
}

if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существет логин и пароль в сессиях, то проверяем их и извлекаем аватар
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result = mysql_query("SELECT id,avatar FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow = mysql_fetch_array($result);
//извлекаем нужные данные о пользователе
}
if (isset($_GET['id'])) {$id = $_GET['id']; }
if (!isset($id)) {$id = 1;}

/* Проверяем, является ли переменная числом */
if (!preg_match("|^[\d]+$|", $id)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}

$result99 = mysql_query("SELECT * FROM data WHERE id='$id'",$db);

//проверяем авторизирован ли пользователь и если да то показываем публикацию
$result_secret = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow_secret = mysql_fetch_array($result_secret);
if (empty($myrow_secret['id']))
{
printf ("Эта публикация доступна только зарегистрированным пользователям!");
}
else
{
printf ("<p class='post_title2'>%s</p><p class='post_text'>%s</p><p class='post_adds'>Автор: %s</p><p class='post_adds'>Дата: %s</p><p class='post_view'>Просмотров: %s</p>",$myrow99["title"],$myrow99["text"],$myrow99["author"],$myrow99["date"],$myrow99["view"]);
}
?>

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB