Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

вопрос про web форму

36K
12 февраля 2011 года
twi5ter
37 / / 06.08.2009
Здравствуйте! А вот решил поинтересоваться, правильно я понимаю или нет! Ситуация такая! Например, кликнули по ссылке, загрузилась страничка авторизации, при успешной авторизации необходимо осуществить переход на главную страницу main.php. Я делаю так!
Страница login.php
 
Код:
//валидация полей формы, если валидация успешна, то авторизация
//и переход на главную страницу main.php
echo '<script type="text/javascript">location.href="main.php"</script>';
<form action="login.php" method="post">
//бла бла бла...
<input type="submit" />
</form>

Это правильный подход? или как-то переадресацию можно по другому сделать? Или я вообще не понимаю? Можно ли сделать средствами PHP без вот таких штук в заголовке header ("location: main.php");
277
12 февраля 2011 года
arrjj
1.7K / / 26.01.2011
Можно через php header("location:http://www.example.com");
или почти как у тебя
36K
12 февраля 2011 года
twi5ter
37 / / 06.08.2009
а меня собственно смущает то что нужно перенаправлять используя прямое перенаправление! это нормально, да? так на всех форумах и сайтах делается?
369
12 февраля 2011 года
Kesano
451 / / 09.10.2007
На большинстве сайтов это делается с помощью:
[HTML]<META HTTP-EQUIV="REFRESH" CONTENT="N;URL=адрес">[/HTML]

Т.е. ,например, форма авторизации у вас на main.php
Для формы в action у вас стоит скрипт auth.php...
И в этом auth.php при успешной авторизации выкидываете:
[HTML]
<html>
<head>
<META HTTP-EQUIV="REFRESH" CONTENT="5;URL=index.php">
</head>
<body>
Авторизация успешна. Сейчас вы будете перенаправлены на главную страницу
</body>
</html>[/HTML]
36K
12 февраля 2011 года
twi5ter
37 / / 06.08.2009
да, согласен!
но не понимаю! у меня куча форм на добавление информации в базу данных! а то о чем говорите вы, делается в разделе head, т.е. в заголовке страницы! допустим одну переадресацию я так проверну, а как остальные? или опять я что-то не понимаю?
369
12 февраля 2011 года
Kesano
451 / / 09.10.2007
Ну так а в чем проблема?
создайте единый скрипт, который будет обрабатывать все ваши формы, и в скрытом поле из каждой формы передавайте адрес возврата.
например:
<input type="hidden" name="back" value="http://mysite.ru/forms/" />
и потом так же отдавайте в head;
 
Код:
<META HTTP-EQUIV="REFRESH" CONTENT="5;URL=<?=$_POST["back"]; ?>">
36K
12 февраля 2011 года
twi5ter
37 / / 06.08.2009
CONTENT="5;URL=<?=$_POST["back"]; ?>">
5 - это время в милисекундах я так понимаю!
369
12 февраля 2011 года
Kesano
451 / / 09.10.2007
Цитата: twi5ter
CONTENT="5;URL=<?=$_POST["back"]; ?>">
5 - это время в милисекундах я так понимаю!



В секундах...
Читайте: _http://www.shtogrin.com/library/web/meta/http_equiv_refresh/

69K
16 февраля 2011 года
Swedman
1 / / 16.02.2011
Цитата: twi5ter
Здравствуйте! А вот решил поинтересоваться, правильно я понимаю или нет! Ситуация такая! Например, кликнули по ссылке, загрузилась страничка авторизации, при успешной авторизации необходимо осуществить переход на главную страницу main.php. Я делаю так!
Страница login.php
 
Код:
//валидация полей формы, если валидация успешна, то авторизация
//и переход на главную страницу main.php
echo '<script type="text/javascript">location.href="main.php"</script>';
<form action="login.php" method="post">
//бла бла бла...
<input type="submit" />
</form>

Это правильный подход? или как-то переадресацию можно по другому сделать? Или я вообще не понимаю? Можно ли сделать средствами PHP без вот таких штук в заголовке header ("location: main.php");



Если JavaScript у клиента выключен, то такой подход не сработает. Все таки лучше через header("location: main.php")

5
16 февраля 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Swedman
Если JavaScript у клиента выключен


Если JS у клиента выключен, то он скорее всего специально это сделал, и знает какие могут быть последствия, иначе в современном Интернете вообще ничего нельзя сделать.

366
17 февраля 2011 года
int
668 / / 30.03.2005
Это не повод переводить на яваскрипт то, что решается и без него.
277
17 февраля 2011 года
arrjj
1.7K / / 26.01.2011
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script type="text/javascript">
<!--
location.replace("http://www.new.site/page.html"); // текущая страница будет заменена в history на новую — важно в плане юзабилити
//-->
</script>
<noscript>
<meta http-equiv="refresh" content="0; url=http://www.new.site/page.html"> <!-- для тех нескольких процентов «сёрферов», которые отключили JavaScript -->
</noscript>
</head>
<body>
Мы перебрались на <a href="http://www.new.site/page.html">новое местечко</a>.
</body>
</html>

Поэтому вот избыточный, но в плане юзабилити лучше способ переадресации. Если js включен то в истории текущая страница (например там index.php?do=login&oldsrc=index.php обычному пользователю сайта нифига не интересная) будет заменена на ту, на которую идет редирект. Если js отключен - то обычный редирект через метатэг.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог