Форум → Программирование → PHP для идиотов → Как выполнить код и сразу обновить страничку?
Как выполнить код и сразу обновить страничку?
Страницы: ← Следующая страница →
-
Привет. Допустим, я сделал форму для ввода логина и пароля, чтобы зайти на сайт. Как сделать, чтобы после того как php код выполниться (авторизация), сразу произошло обновление странички. Все дело в том, что авторизированным пользователям доступны другие пункты меню.
А сейчас получается, что пользователь зашел на сайт, ввел логин и пароль, а ему выводится, что вы типа успешно зашли в систему, но пункты меню старые.
Надеюсь понятно пояснил. -
-
-
28 февраля 2009 г. 9:37, спустя 3 минуты 17 секунд
если вся рега через ajax, то и меню должно обновлятся через ajax.
если просто, не через ajax, то полюбому после кнопки submit будет редирект на страницу action… -
28 февраля 2009 г. 10:03, спустя 26 минут 16 секунд
у меня по простому, не через ajax. Так вот в том то и проблема. Все данные проверяются на страничке action="index.php?mode=3" (допустим). Которая формируется перед проверкой логина и пароля. И даже если авторизация успешно пройдена, то сайт будет формироваться с учетом что это гость. Нужно както после авторизации сразу обновить страничку, чтобы перерисовать сайт потому что у авторизированного пользователя доступны другие пункты меню (профайл например). -
-
28 февраля 2009 г. 10:19, спустя 10 минут 25 секунд
Это код формы авторизации:
function autorization_form_func()
{
print <<<HERE
войдите или <a href="index.php?mode=3">зарегистрируйтесь</a><br><br>
<form action="index.php?mode=4" class="register_form" method="post">
<p>
<label>логин:</label>
<input type="text" size="18" maxlenght="25" value="" name="login"/>
</p>
<p>
<label>пароль:</label>
<input type="password" size="18" maxlenght="25" value="" name="pass"/>
</p>
<button type="submit">войти</button>
</form>
HERE;
}
action="index.php?mode=4" приведет к выполнению функции:
//////////////////////////////////
//
// login_func()
//
//////////////////////////////////
function login_func()
{
switch($_GET[submode])
{
// режим выбора действия
case 0:
if (isset($_POST['login']) && isset($_POST['pass']))
{
$login = $_POST['login'];
$pass = $_POST['pass'];
$msconnect=connect_to_database("localhost","user_default","******","******");
// делаем запрос к БД
// и ищем юзера с таким логином и паролем
$query = "SELECT `login`
FROM `antostudio`.`users`
WHERE `login`='{$login}' AND `pass`='{$pass}'
LIMIT 1";
$res = mysql_query($query);
if(!$res)
print "<span class=\"red\">Что-то стряслось в недрах этого сайта…</span><br><br>";
else
{
// если такой пользователь нашелся
if (mysql_num_rows($res) == 1)
{
// то мы ставим об этом метку в сессии
$row = mysql_fetch_assoc($res);
$_SESSION['user_login'] = $row['login'];
print "<span class=\"green\">Вы успешно вошли в систему</span><br><br>";
}
else
{
print "<span class=\"red\">Похоже вы промахнулись с логином или паролем. Проверьте раскладку и попробуйте еще раз.</span><br><br>";
}
}
}
break;
// выйти
case 1:
session_destroy();
print "<span class=\"green\">Вы успешно вышли из системы</span><br><br>";
break;
}
}
А это код главной странички:
<body>
<div id="container" class="container_12">
<div id="header" class="grid_12">
// это форма регистрации
<div id="register" class="grid_3">
<?
if (isset($_SESSION['user_login']))
{
user_info_func();
// выводим профайл пользователя
}
else
{
autorization_form_func();
// авторизация
}
?>
</div>
</div>
<div id="header_menu" class="grid_12">
<div id="menu">
<ul>
// это список - менюшка. проблема в том, что сначала выводится она, а только потом проверяется логин и пароль
<?
$mode=$_GET[mode];
if (isset($_SESSION['user_login']))
{
addMenuItem("главная",0,$mode);
addMenuItem("новости",1,$mode);
addMenuItem("админка",2,$mode);
}
else
{
addMenuItem("главная",0,$mode);
addMenuItem("новости",1,$mode);
addMenuItem("регистрация",3,$mode);
}
?>
</ul>
</div>
</div>
<!–end header–>
<div id="content" class="grid_12">
<div id="content_container">
<?
switch($mode)
{
// главная страница
case 0:
welcome_func();
break;
case 1:
read_news_func();
break;
case 2:
edit_news_func();
break;
case 3:
registration_func();
break;
case 4:
login_func();
break;
}
?>
<!–end content_container–>
</div>
</div>
<!–end mainContent–>
<div id="footer" class="grid_12">
<p align="center" id="footer_text">© 2008-2009 All rights reserved. Все материалы принадлежат их правообладателям. Перепечатка и публикация материалов запрещена.</p>
</div>
<!–end footer–>
</div>
<!–end container–>
</body>
</html>
Ух, надеюсь разберетесь -
28 февраля 2009 г. 10:24, спустя 5 минут 31 секунду
<?php session_start(); ?>
<html>
<body>
Здесь например верх сайта
<?php
if (isset($_SESSION['user_id']))
{
print '<h1>А здесь допустим профаил</h1>';
}
// Выводятся закрытые данные
?>
Здесь низ сайта
</body>
</html>
Причем профаил будет показываться только авторизованым пользователям -
28 февраля 2009 г. 10:26, спустя 1 минуту 41 секунду
ваще все ппц, в фциях недолжно быть принтов, шаблон должен вызываться самым последним, в конце выполнения скрипта…
это и не дает тебе поставить код логина выше менюшки
предлагаю вместо принтов в фции поставить переменную, в которую собирается текст, и ретурнить её. и в коде вызывать фцию логин перед менюшкой, а результат фции показывать уже в content'е
еще можно в буфер:
ob_start();
login();
$content = ob_get_clean();
//menu
echo $content; -
28 февраля 2009 г. 10:37, спустя 11 минут 25 секунд
спасибо, допер!! короче сначала должена проводиться обработка (авторизация), потом формироваться содержание, а потом уже дизайн сайта. -
28 февраля 2009 г. 15:36, спустя 4 часа 58 минут 21 секунду
ну имучаете же вы детей тут))Сапожник без сапог -
28 февраля 2009 г. 15:36, спустя 28 секунд
айви твоя ава мне напоминает бойца из "черепашки нинзя" он с клюшками для гольфа был и ебашил врагов ими)Сапожник без сапог -
1 марта 2009 г. 0:43, спустя 9 часов 7 минут 3 секунды
ну имучаете же вы детей тут))
чувак, посоветуй по теме) -
-
1 марта 2009 г. 1:12, спустя 19 минут 44 секунды
http://ru.php.net/header
ну имучаете же вы детей тут))
чувак, посоветуй по теме)
Объясни как это с умом применить в моем случае, я не понимаю.
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!