Как поправить форму логина?

H
На сайте с 17.02.2009
Offline
50
644

Привет!

Прошу помощи переделать мою форму логина.

Она построена на сессиях, все работает, но есть одно но, когда залогился, надо обновлять страницу чтобы меню изменилось после успешного логина. Вот и мой код, прошу не судить за кривоту:

<?php


mysql_connect($hostname, $username, $password) or die ("CONNECT ERROR");

mysql_select_db($dbName) or die (mysql_error());

$queryautoriz = "SELECT * FROM account_data WHERE name='".$_SESSION['acc']."' and password='".$_SESSION['pass']."'";

$resautoriz = mysql_query($queryautoriz) or die(mysql_error());

$rowautoriz = mysql_fetch_row($resautoriz);
mysql_close();

if ($rowautoriz) {
$otvetautorize = ' <ul>
<li class="decoration_link"><a href="index.php">'.$textmain.'</a></li>
</ul>
<ul>
<li class="decoration_link"><a href="index.php?do=add&id=news">'.$text_add_news.'</a></li>
</ul>
<ul>
<li class="decoration_link"><a id="btn1" href="index.php?do=logout">'.$text_logout.'</a></li>
</ul> ';}
else {
$otvetautorize = '<form action="index.php" method="post"><ul>
<li class="decoration_link">'.$textacc.':</li>
<li class="decoration_link">
<input type="text" name="n" />
'.$textpass.':</li>
<li class="decoration_link">
<input type="password" name="n2" />
</li>
<li class="decoration_link">

<input type="submit" value="'.$textenter.'" name="submit" />

</li>
</ul></form>';

$acc = $_POST['n'];
$pass = $_POST['n2'];
$pass = sha1($pass, true);
$pass = base64_encode($pass);
$_SESSION["pass"] = $pass;
$_SESSION["acc"] = $acc;}
?>

<div class="decoration">
<div class="decoration_title">
<h4><?php print $textmenu ?></h4>
</div>
<div class="decoration_body">
<div class="decoration_cntnt">
<?php print $otvetautorize ?>
</div>
</div>
<div class="decoration_footer"></div>
<div class="decoration_ruche"></div>
</div>
ewg777
На сайте с 04.06.2007
Offline
225
#1

В данном случае: header + location

Вообще: http://pyha.ru/articles/php/auth/

H
На сайте с 17.02.2009
Offline
50
#2

ошибка, headers alredy sent

ewg777
На сайте с 04.06.2007
Offline
225
#3
Hippey:
ошибка, headers alredy sent

Хедеры до вывода отправлять нужно.

Или вариант LEOnidUKG - с буферизацией.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4
ewg777:
Хедеры до вывода отправлять нужно.

Да ладно? :)

<?

ob_start();

спасает в таких случаях.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
N_MONax
На сайте с 22.08.2007
Offline
112
#5
LEOnidUKG:
ob_start();

А зачем?

Надо или писать весь текст в одном файле, тогда вначале вывести все хедеры, а потом уже юзать echo.

Или же писать в разных файлах, тогда вообще без комментариев.

А ob_start(); усложняет логику и понимание. Тогда уж в переменную проще закинуть

ИМХО.

Полный спектр услуг в интернете. Быстро, Качественно, Дорого. Пишите в личку.
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#6
N_MONax:
А зачем?
Надо или писать весь текст в одном файле, тогда вначале вывести все хедеры, а потом уже юзать echo.
Или же писать в разных файлах, тогда вообще без комментариев.
А ob_start(); усложняет логику и понимание. Тогда уж в переменную проще закинуть
ИМХО.

Ок, давайте по другому:

exit("<html><head><meta http-equiv='refresh' content='1;Index.php'></head><body><center><br>Вы вошли в систему</b></center></body></html>");

H
На сайте с 17.02.2009
Offline
50
#7

а как тогда можно сделать, чтобы когда нажал войти, вылетало окошко, а в это время сзади обновилась страница, как только обновилась, окошко закрылось.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#8
Hippey:
а как тогда можно сделать, чтобы когда нажал войти, вылетало окошко, а в это время сзади обновилась страница, как только обновилась, окошко закрылось.

Зачем какие-то окна? Выше я дал код как обновить страницу. вписываем вместо index.php название своей страницы и всё.

H
На сайте с 17.02.2009
Offline
50
#9

Этот код работает, но мне не подходит.

Так как сделать такое окно

а как тогда можно сделать, чтобы когда нажал войти, вылетало окошко, а в это время сзади обновилась страница, как только обновилась, окошко закрылось.
[Удален]
#10
N_MONax:
А ob_start(); усложняет логику и понимание

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

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий