Автор Тема: Flash back  (Прочитано 15893 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Flash back
« Ответ #30 : 21 Августа 2003, 15:29:39 »
MrGreeN
если хочешь чтобы кто-то разбирался с твоим кодом оформляй его в понятном виде.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #31 : 21 Августа 2003, 15:33:26 »
и что это было?
ты можешь собраться с силами, и оформить это нечленоразделоное мычание в слова, желательно - русского языка?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #32 : 21 Августа 2003, 15:34:29 »
Значит так.
сначала приведем этот код в удобочитаемый вид.
а потом ты прокомментируешь каждую строчку - что она делает
Меня некоторые строчки очень и очень интересуют.

<?php
if (isset($_GET[\'s\'])&& $_GET[\'s\']==1) {
  include ("inc_func.php");
  head();
  if(isset($_POST[\'userpassword\']) && isset($_POST[\'userpassword\']))
    if(checkpass($_POST[\'username\'], $_POST[\'userpassword\'])) {
    switch ($mode) {
      case \'main\':
        include \'inc_main.php\';
        break;
      case \'adm\' :
        include \'inc_adm.php\';
        break;
      case \'stat\':
        include \'inc_stat.php\';
        break;
    }
    foot();
    exit;
  }
  form_pass();
  foot();

  else header("location: http://10.0.31.12/count/admin.php?s=1");
?>
« Последнее редактирование: 21 Августа 2003, 15:40:32 от RomikChef »

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #33 : 21 Августа 2003, 15:39:39 »
MrGreeN, вот интересно, у тебя после case есть отступ а во всех остальных случаях - нет.
можешь объяснить - почему?

И, самый главный вопрос.
Как этот код относится к проблеме с повторной отправкой данных?

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #34 : 21 Августа 2003, 15:39:46 »
RomikChef
Это че то сильно напоминает не то форму авторизации с перламутровыми пуговицами, не то систему разграничения доступа мамонтов на водопой. Причем саперной лопаткой...

MrGreeN
Может ты сперва скажешь словами что тебе необходимо сделать ?
AS IS...

Оффлайн MrGreeN

  • просто зелёный
  • Постоялец
  • ***
  • Сообщений: 195
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #35 : 21 Августа 2003, 16:14:36 »
не знаю насчёт кэйсов чего там с отступами ...
 Да проблема не в авторизации...Ладно, замяли надоело гавкаться...:)
 RomikChef
 код правленый тобой представляет собой действительно систему разграничения доступа мамонтов на водопой (за исключением того что значения посланные при регистрации позволяют только получить доступ к процедуре sql которая и будет проверять авторизацию)...
 на предидущей странице топика спрятался фрагмент кода инклуда inc_func.php , в том коде форма с полями для авторизации и hidden полем для mode=main
 соответственно пользователь аутентифицировавшись будет выброшен на страничку с главным меню (инклуд inc_main.php), остальные кэйсы построены таким же образом ( mode -> include)
 код 100% рабочий, но если юзер будучи уже выкинутым на страницу с главным меню нажмёт рефреш, он будет вынужден повторить отправку данных...для того чот бы этого не было пишу header(location:.....,?s=1) т.е. на самого себя только с дополнительным параметром "s" ....Взял идею с твоей кстати статьи http://tony2001.phpclub.net/faq/other.location.html
Теперь юзер ничего не отправляет повторно т.к. отправлять нечего, данные переданные постом для admin.php не идут в admin.php?s=1 (не гнать же их гетом)....а надо чтобы они были и не надо было нажимать на кнопочку "повторить"
Вот и усе...По- моему проще некуда...
« Последнее редактирование: 21 Августа 2003, 17:29:42 от MrGreeN »

Оффлайн MrGreeN

  • просто зелёный
  • Постоялец
  • ***
  • Сообщений: 195
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #36 : 22 Августа 2003, 12:12:32 »
после поисков на пхп клубе, я понял что задуманая реализация невозможна....
Наиболее подробно
http://phpclub.net/talk/showthread.php?s=&threadid=1668&highlight=%EF%E5%F0%E5%E4%E0%F7%E0+%E4%E0%ED%ED%FB%F5+%EC%E5%F2%EE%E4%EE%EC+POST

Оффлайн MrGreeN

  • просто зелёный
  • Постоялец
  • ***
  • Сообщений: 195
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #37 : 22 Августа 2003, 12:14:19 »
значит опять сессии юзать :(

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #38 : 22 Августа 2003, 12:21:45 »
насколько я понял, тебя интересуют никакие не формы, а АВТОРИЗАЦИЯ.

То есть, чтобы введенные логин и пароль потом были видны на каждой странице.
Ну так не "значит опять сессии юзать :(", а "олигофрен я клинический, сразу надо было сообразить, что сессии - ЕДИНСТВЕННОЕ РЕШЕНИЕ в данном случае!!!"

В любом случае, если бы ты сподобился не жуя сопли объяснить толком, не приводя куски кода, а словами, причем, очень желательно - сам ПОНИМАЯ, что ты хочешь, объяснить свою задачу, то тебе бы и объяснили, как тебе сделать.

Если дело касается ТОЛЬКО обработки ОДНОЙ формы, то никаких сессий не нужно.
Если авторизации - то сессии - это самый простой вариант.

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

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #39 : 22 Августа 2003, 12:24:28 »
вот тебе два работающих примера авторизации.
один на сессиях, другой - на механизме HTTP Authorisation
http://phpclub.net/talk/showthread.php?s=&threadid=32810
выбирай любой, и пользуйся на здоровье

В обоих примерах человек вводит логин и пароль, и после этого информация об этом доступна на ЛЮБОЙ странице сайта, каким бы методом она не передавалась.
понятно?

Оффлайн MrGreeN

  • просто зелёный
  • Постоялец
  • ***
  • Сообщений: 195
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #40 : 22 Августа 2003, 13:11:14 »
понятно конечно, не совсем я уж и законченый "олигофен" чтобы не понимать что пока сессия существует то и переменную видно издалека...:)
но и ты тоже пойми - не всегда человек городит кучу кода для простых вещей...У меня к примеру ситуация когда есть  полухалявный хостер и соглашение о работать без сессий (какого - я не знаю, может фанатики безопаности), и тот на котором мы сейчас гнездимся (там я написал с сесссиями).
 Спасибо за ссылку на топик...интересно...( только без $PHP_AUTH_USER -  у нас IIS)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #41 : 22 Августа 2003, 13:14:30 »
Господи боже мой.
какие ограничения.
сессии нельзя, авторизацию нельзя.

ну так используй КУКИ

при верном пароле
делаешь md5($password) и пишешь это в куку
на секретной странице читаешь куку и сравниваешь с  md5(пароль из базы)

вот тебе и авторизация.

Оффлайн MrGreeN

  • просто зелёный
  • Постоялец
  • ***
  • Сообщений: 195
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #42 : 22 Августа 2003, 13:20:18 »
Да, только на главной странице вывести сообщение о том чтобы юзер их включил...
Проще объяснить, что если выедет окошечко с flash back то нажать на "Enter" -> убрать header-> будет работать усё как работало до этого...
 Мда...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #43 : 22 Августа 2003, 14:03:36 »
хозяин - барин

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Flash back
« Ответ #44 : 22 Августа 2003, 15:31:43 »
мужики, до него не дошло.
PHPClub, 22.08.03 13:54
Цитировать
MrGreeN:
А с помощью ob_start проблему никак не решишь?


:-)))))
у меня уже сил нет :-)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28