Здравствуйте, гость ( Вход | Регистрация )

24 страниц V  « < 10 11 12 13 14 > »   
Ответить в данную темуНачать новую тему
> PHP | Вопросы и ответы, а так же всему что с ним связано
Рейтинг 5 V
сплю
сообщение 13.03.2005 - 22:08
Звезда форума
******
орден III степени
Группа: Участник
Сообщений: 1510
Регистрация: 29.09.2003
Пользователь №: 92


$preg_host = "/(10|80)\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/";
кажется так строка запроса будет выглядеть
Перейти в начало страницы
 
+Цитировать сообщение
NIK
сообщение 14.03.2005 - 15:06

Постоялец форума
*****
орден I степениорден II степени
Группа: Участник
Сообщений: 997
Регистрация: 8.10.2003
Пользователь №: 353


Цитата(mani13 @ 13.03.2005 - 22:57)
я думаю, что в самоучителе наверно что-то и есть про разделители? если нет, то выкинь самоучитель...
]]>http://detail.phpclub.ru/]]> - регулярные выражения[/quote]
есть, но объяснили очень не понятно и не доходчиво. Нашёл на сайте, что ты дал выше, подучу.

Цитата(GreyWind @ 13.03.2005 - 23:08)
$preg_host = "/(10|80)\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/";
кажется так строка запроса будет выглядеть

спасибо.



NIK добавил(а) в нет данных
Задача. Хочу сделать админку к своему "скриптику" (те кто следил за темой поймут wink.gif ). В том же самоучителе есть статейка о регистрации пользователя, и если пользователь зарегистрирован, ему доступна страница только для зарегистрированых юзеров. В статей идея реализовывается путём сессий. Но там не совсем то, что я хочу. Мне нужно сделать так, чтобы админы могли бы заходить на админ-страницу путём ввода в форму пароля и имя. При этом возникает вопрос, с чем сравнивать вводимиый пароль с оригиналом? Если хранить его в файле - легко узнать. В БД? Не уверен, но думаю что то же узнать можно.
Как такие задачи решаются? Мб кто знает "классический" пример?
Перейти в начало страницы
 
+Цитировать сообщение
сплю
сообщение 14.03.2005 - 15:48
Звезда форума
******
орден III степени
Группа: Участник
Сообщений: 1510
Регистрация: 29.09.2003
Пользователь №: 92


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

Сообщение отредактировано GreyWind - 14.03.2005 - 15:49
Перейти в начало страницы
 
+Цитировать сообщение
NIK
сообщение 14.03.2005 - 17:56

Постоялец форума
*****
орден I степениорден II степени
Группа: Участник
Сообщений: 997
Регистрация: 8.10.2003
Пользователь №: 353


Цитата(GreyWind @ 14.03.2005 - 16:48)
хз насчёт классического примера, меня как-то не учили пограммировать, как умею так и делаю... если хранить в файле, то вообще не совсем уж и лёгко узнать, особенно если голова на плечах есть... просто путём редактирования .htaccess запрещаем всем файл на скачку, просмотр и т.д. тут уж надо сервер на сколько я понимаю ломать чтобы файл посмотреть+надо знать что этот файл там есть, а если по-хорошему так опция листинга директории должна отключена быть всегда. В добавок, можно хранить не сам пароль, а его хэш, тут можно заюзать md5 (); тут уж совсем маловероятно что кто-то его достанет

хм.. ну, про файлы .htaccess я поверхностно понимаю, для чего они нужны. Ну а про кеш вообще ничего.

Мб кто знает где прочитать о работе с такими файлами (.htaccess)? Я посмотрел в скриптах, где есть такие файлики, там вроде не сложно, что-то типа "deny from all" - т.е. запретить доступ ко всем файлам, которые находятся в этом каталоге? Но хотелось бы узнать подробнее.

А как и ГДЕ отключить функцию листинг директорий?
Перейти в начало страницы
 
+Цитировать сообщение
GLUK
сообщение 14.03.2005 - 18:00
El hincha del Real Madrid
*******
орден IV степеникубок за победу в конкурсах Форума
Группа: Участник
Сообщений: 14104
Регистрация: 17.02.2004
Пользователь №: 2321


Цитата(NIK @ 14.03.2005 - 17:56)
хм.. ну, про файлы .htaccess я поверхностно понимаю, для чего они нужны. Ну а про кеш вообще ничего.

Мб кто знает где прочитать о работе с такими файлами (.htaccess)? Я посмотрел в скриптах, где есть такие файлики, там вроде не сложно, что-то типа "deny from all" - т.е. запретить доступ ко всем файлам, которые находятся в этом каталоге? Но хотелось бы узнать подробнее.

А как и ГДЕ отключить функцию листинг директорий?

Не кеш, а хеш. Это что-то вроде шифрования.

Читать здесь: ]]>http://www.wmaster.ru/htaccess/]]>

Где отключать - не помню. В настройках сервера где-то.
Перейти в начало страницы
 
+Цитировать сообщение
Guest_TeXник_*
сообщение 14.03.2005 - 18:18
| Быстрая цитата | Сообщение #226


Гости





хранить в БД md5 от пароля и сравнивать md5. так делается почти везде

boris добавил(а) в нет данных
функция листнга директорий меняется в httpd.conf - directory далее ищи в мануалах или методом перебора. короче, лично я не помню, как это делал, просто конфиг, который я себе делал год-подтора назад я с тех пор почти не изменял
Перейти в начало страницы
 
+Цитировать сообщение
сплю
сообщение 14.03.2005 - 18:23
Звезда форума
******
орден III степени
Группа: Участник
Сообщений: 1510
Регистрация: 29.09.2003
Пользователь №: 92


Цитата(http://www.wmaster.ru/htaccess/)
Как поставить запрет на отображение содержимого директории при отсутствии индексного файла?

Предположим, что у вас вся графика, используемая на сайте находится в директории img. Посетитель может набрать в адресной строке браузера эту директорию и увидеть список всех ваших графических файлов. Конечно, это не нанесет вам урона, но можно и не дать такого просмотра посетителю. В .htaccess пишем:

Код
Options -Indexes

что-то анологичное должно быть и в httpd.conf

Сообщение отредактировано GreyWind - 14.03.2005 - 18:25
Перейти в начало страницы
 
+Цитировать сообщение
NIK
сообщение 14.03.2005 - 20:28

Постоялец форума
*****
орден I степениорден II степени
Группа: Участник
Сообщений: 997
Регистрация: 8.10.2003
Пользователь №: 353


ладно, с паролем разобрался весьмя извращённым способом. Как нибудь куплю книжонку про web-приложения, мб модифицирую.
Создаём файл с форомой, где проверяется пароль и имя (entadmin.php). Сам пароль находится в файле config.php. Его фрагмент:
Код
$admin_name = "******";
$admin_pass = "******";

Код файла entadmin.php:
Код
<html>
<head>
 <title></title>
</head>
<body>
<form action="entadmin.php" method="post">
<b>Введите имя:</b>  <br>
<INPUT CLASS="input" type="text" name="adm_name"><br>
<b>Введите пароль:</b><br>
<INPUT CLASS="input" type="password" name="adm_pass"><br>
<INPUT CLASS="submit" type="submit" value="Войти">  <br>
</form>
<?php
include "config.php";
$form_pass = $_POST['adm_pass'];
$form_name = $_POST['adm_name'];
if ($admin_pass = $form_pass || $admin_name = $form_name)
{
  print "Пароль принят";
  /* теперь, сдесь нужно организовать переход на саму страницу администратирования [B]admin.php[/B] */
}
 else
{
  print "Не верен пароль. Попробуйте ещё раз!";
}

?>
</body>
</html>

Файл config.php защищён файлом htaccess, его содержание:
Код
<Files config.php>
order allow,deny
deny from all
</Files>

Вроде работает, если что не так, очень прош, говорите.
Теперь интересует вопрос о переходе на страницу admin.php. Помнится я как-то делал, а вот сейчас забыл. Мб кто напомнит? Спасибо.
Перейти в начало страницы
 
+Цитировать сообщение
[BlockDog]
сообщение 14.03.2005 - 20:32

Частый гость
***

Группа: Участник
Сообщений: 248
Регистрация: 29.11.2004
Пользователь №: 5564


ам... почему в if условие "или"?? или я ошибаюсь...

ЗЫ: имхо, лучше делать в массиве пароли
$pass['vasya'] = "*****";
$pass['petya'] = "*****";

а при проверке $form_pass == $pass[$name]...
Перейти в начало страницы
 
+Цитировать сообщение
NIK
сообщение 14.03.2005 - 20:42

Постоялец форума
*****
орден I степениорден II степени
Группа: Участник
Сообщений: 997
Регистрация: 8.10.2003
Пользователь №: 353


Цитата([BlockDog].DaMN @ 14.03.2005 - 21:32)
ам... почему в if условие "или"?? или я ошибаюсь...

ЗЫ: имхо, лучше делать в массиве пароли
$pass['vasya'] = "*****";
$pass['petya'] = "*****";

а при проверке $form_pass == $pass[$name]...


нет, ошибка моя. Имел ввиду AND. Спасибо что подметил.
А можно объяснить, почему лучше делать в массиве? Я приемущества невижу huh.gif
Перейти в начало страницы
 
+Цитировать сообщение
Guest_TeXник_*
сообщение 14.03.2005 - 21:12
| Быстрая цитата | Сообщение #231


Гости





Цитата
Теперь интересует вопрос о переходе на страницу admin.php. Помнится я как-то делал, а вот сейчас забыл. Мб кто напомнит? Спасибо.


header("location:admin.php"); - тока код с этним толжен стоять до любой отправки данных
Перейти в начало страницы
 
+Цитировать сообщение
GLUK
сообщение 14.03.2005 - 21:14
El hincha del Real Madrid
*******
орден IV степеникубок за победу в конкурсах Форума
Группа: Участник
Сообщений: 14104
Регистрация: 17.02.2004
Пользователь №: 2321


Цитата(boris @ 14.03.2005 - 21:12)
header("location:admin.php"); - тока код с этним толжен стоять до любой отправки данных

Если какие-нибудь данные отправлены, можно воспользоваться java script:

Код
<script LANGUAGE="JavaScript">
window.location.href = "admin.php";
</SCRIPT>


Вроде так.
Перейти в начало страницы
 
+Цитировать сообщение
Guest_TeXник_*
сообщение 14.03.2005 - 21:16
| Быстрая цитата | Сообщение #233


Гости





как-то бредово у тебя код построен - он ведь при первом заходе на страницу тоже напишет, что пароль неверен? хотя я его даже ещё не вводил.

+ ещё способ - поиск по форуму со строкой meta content = refresh - чё то в таком духе

boris добавил(а) в нет данных
(устроит редирект через заданное кол-во секунд)
Перейти в начало страницы
 
+Цитировать сообщение
NIK
сообщение 14.03.2005 - 21:45

Постоялец форума
*****
орден I степениорден II степени
Группа: Участник
Сообщений: 997
Регистрация: 8.10.2003
Пользователь №: 353


да, хреново. Сам скрипт работает, если пароль верный - пускает. Если нет - не пускает. Сообщение, что пароль не верный появляется всегда. Хотя почему, незнаю confused.gif Попробовал добавить exit; что б при правельном пароле скрипт далее не выполнялся, результат тот же
Перейти в начало страницы
 
+Цитировать сообщение
Guest_IFL_*
сообщение 14.03.2005 - 22:06
| Быстрая цитата | Сообщение #235


Гости





Цитата(NIK @ 14.03.2005 - 21:45)
да, хреново. Сам скрипт работает, если пароль верный - пускает. Если нет - не пускает. Сообщение, что пароль не верный появляется всегда. Хотя почему, незнаю  confused.gif Попробовал добавить exit; что б при правельном пароле скрипт далее не выполнялся, результат тот же

при первой загрузке скрипта переменные логина пароля пустые, соответственно отрабатывает else... и вообще там должно 2 нотиса выскакивать smile.gif


p.s.: точнее не пустые, а неопределены

Сообщение отредактировано mani13 - 14.03.2005 - 22:10
Перейти в начало страницы
 
+Цитировать сообщение
[BlockDog]
сообщение 15.03.2005 - 10:25

Частый гость
***

Группа: Участник
Сообщений: 248
Регистрация: 29.11.2004
Пользователь №: 5564


пиши так:
PHP
<?PHP
if (!isset($admin_pass)) {
 
// форма
} elseif ($admin_pass = $form_pass && $admin_name = $form_name) {
 
// редирект
} else {
 
// сообщение об ошибке + форма
};
?>


при таком написании можно нормально юзать header("Location: admin.php"); только естественно ничего перед этим не выводя в броузер, т.е. до if не должно ничего вообще выводиться, даже теги <html>..

хранить пароли в массиве лучше, т.к. легко добавить нового пользователя, проверка одна, четкое соответствие логина и пароля...

и сразу хочу сказать следующее.. надо обязательно как-то проверять пользователя во всех скриптах.. способов масса... открывать сессию и таскать ее идентификатор... разрешить только инклудить скрипты и запретить открывать их напрямую.. можно вообще сделать, как в форуме phpBB, там очень грамотно все..
Код
if (!defined('IN_PHPBB'))
{
    die("Hacking attempt");
}

я лично давно положил на это и в не очень замороченных проектах использую стандартную http авторизацию...

Сообщение отредактировано [BlockDog].DaMN - 15.03.2005 - 13:26
Перейти в начало страницы
 
+Цитировать сообщение
HaCoc-ZacoC
сообщение 15.03.2005 - 17:34

Продвинутый новичок
**

Группа: Участник
Сообщений: 18
Регистрация: 14.11.2003
Пользователь №: 934


незнаю был этот вопрос уже или нет, т.к. всё читать нету времени... так вот
я начал изучать php и тут в самом начале трабл я пишу код в home site сохраняю файл как php. в итоге интернет эксплорер его не открывает....
код:
<html>
<head>
<title>Bob's Auto Parts - Order Results</title>
</head>
<body>
<hl>Bob's Auto Parts</hl>
<h2>Order Results</h2>
<? echo "<p>Order processed.</p>"; ?>
</body>
</html>

Сам хом выводит мне:
Bob's Auto Parts
Order Results

я вот не понимаю куда деваеться order processed который он должен вывести...
Кто может помогите чайнику crazy.gif

Сообщение отредактировано HaCoc-ZacoC - 15.03.2005 - 17:35
Перейти в начало страницы
 
+Цитировать сообщение
Guest_TeXник_*
сообщение 15.03.2005 - 17:37
| Быстрая цитата | Сообщение #238


Гости





подсказка - а ты не пробовал себе сервер поставить? например apache? в этом разделе кстати всё подробно написано
Перейти в начало страницы
 
+Цитировать сообщение
[BlockDog]
сообщение 15.03.2005 - 17:44

Частый гость
***

Группа: Участник
Сообщений: 248
Регистрация: 29.11.2004
Пользователь №: 5564


Цитата(HaCoc-ZacoC @ 15.03.2005 - 17:34)
незнаю был этот вопрос уже или нет, т.к. всё читать нету времени...

личный совет.. найди время...
Перейти в начало страницы
 
+Цитировать сообщение
NIK
сообщение 15.03.2005 - 18:46

Постоялец форума
*****
орден I степениорден II степени
Группа: Участник
Сообщений: 997
Регистрация: 8.10.2003
Пользователь №: 353


а вот у меня такой вопрос. Задача - нужно определить средствами PHP, откуда пришёл посетитель. К примеру, если с страницы lala.php, вывести ссылку типа Назад. Если никак кроме определения рефереров, то желательно ссылку на обзор. Т.к. в том же самоучителе эти рефереры описываются в слишком замороченном виде с непонятными мне наворотами. Я думаю тут есть способ полегче. Спсибо.
Перейти в начало страницы
 
+Цитировать сообщение

24 страниц V  « < 10 11 12 13 14 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 18.12.2025 - 00:59