|
|
|
| Заранее благодарю за форум. Надеюсь правда что тут помогают а не натации читают. Работаю в дримвивере. Сделал страницу авторизации. Хочу чтоб после авторизации когда переходишь на главную страницу вылезало приветствие "Добро пожаловать , имя_пользователя" . Сделал рекордсет. Но когда Захожу выдает только Имя Админа, а на остальных остается тоже имя. То есть когда захожу Админом пишет "Добро пожаловать, Админ", и когда под юзером тоже самое. Делал так
Добро пожаловать, {Recordset1(точка)Orgname}
| . Что не так? | |
|
|
|
|
|
|
|
для: lemuriec
(28.12.2011 в 16:31)
| | Чтобы "вылезало" приветствие, после авторизации имя пользователя должно быть доступно в какой нибудь переменной, чтобы его можно было показать. Обычно для этого используют сессии. И на всех страницах выводят значение сессионной переменной, которая содержит имя пользователя. В вашем повествовании о сессиях нет ни слова. | |
|
|
|
|
|
|
|
для: lemuriec
(28.12.2011 в 16:31)
| | >Сделал рекордсет.
Можно тут подробнее, это JavaScript? | |
|
|
|
|
|
|
|
для: cheops
(28.12.2011 в 20:32)
| | Нет. Это php+sql. В дримвивере сессии создаются автоматически. Теперь подробнее. Вот в чем дело. Есть таблица (создал в phpmyadmin) называется logintable. В ней поля id, login, pass, privelegy, userrealname, При регистрации пользователь указывает логин, пароль и реал имя пользователя(то есть то как его приветствовать). Есть форма входа (стандартная логин, ппароль). Допустим зарегалось 2 пользователя. Первый - Логин: логин1; пароль:пароль1; Имя: имя1. Второй - Логин: логин2; паролль: пароль2; имя: имя2. Так вот как сделать чтоб когда заходил Логин 1 выдавалось приветствие: Добро пожаловать, Имя1. А когда входит Логин2: Добро пожаловать, Имя2. Так как передать в сессии это значение силами дримвивера если в форме входа нет такого поля а в базе данных logintable оно есть?) Я новичок - всего 2 месяца изучаю программирование (самоучка((( ). Заранее спасибо | |
|
|
|
|
|
|
|
для: lemuriec
(29.12.2011 в 10:07)
| | Для того чтобы "запомнить" логин авторизованного пользователя, его нужно поместить в сессии.
Делается это так
<?php
// запуск сессионного механизма
session_start();
// сохранение некоторого значения в сессионной переменной username
$_SESSION['username'] = 'Логин1';
|
Чтобы на всех "остальных" страницах видеть Добро пожаловать, Логин1, нужно чтобы каждая из этих страниц содержала нижеприведенный код
<?php
// запуск сессионного механизма
session_start();
// формирование приветствия
if (isset($_SESSION['username'])) echo 'Добро пожаловать, ' . $_SESSION['username'];
else echo 'Авторизуйтесь и зарегистрируйтесь';
|
Добавлю еще, что функция session_start(); должна объявляться до какого либо вывода текста в браузер, желательно в самом начале скрипта, иначе будет ошибка. | |
|
|
|
|
|
|
|
для: deimand
(29.12.2011 в 10:40)
| | Вы не правильно поняли)))
Есть 3 файла + база данных, назовем ее логин.
База данных содержит графы. id, логин, пароль, привелегия, Имя пользователя.
файл "регистрация.php" содержит форму с полями логин, пароль, имя пользователя.
файл "вход.php" содержит форму с полями логин и пароль (то есть при входе имя пользователя не вводиться!!).
файл "Главная.php" должен содержать приветствие "Здравствуй, {имя пользователя}". (не логин а имя пользователя).
Моя логика говорит следующее: когда форма со страницы вход.php посылается на сервер из таблицы логин должно браться значение в графе "Имя пользователя" И вставляться в страницу "Главная.php" там где приветствие: "Здравствуй, {имя пользователя из таблицы логин в графе имя пользователя}".
Как это сделать? | |
|
|
|
|
|
|
|
для: lemuriec
(29.12.2011 в 10:56)
| | Хорошо. Пойдем в обход.
Откуда в файле "Главная.php" должно взяться имя пользователя?
Как "Главная.php" определяет, что пользователь авторизован(зарегистрирован) или нет? | |
|
|
|
|
|
|
|
для: deimand
(29.12.2011 в 11:09)
| | ммм...ок. Вы в Дримвивере работаете? | |
|
|
|
|
|
|
|
для: lemuriec
(29.12.2011 в 11:17)
| | Нет, к сожалению у меня не установлена такая программа.
Меня интересует теория. Как вы думаете? | |
|
|
|
|
|
|
|
для: lemuriec
(29.12.2011 в 11:17)
| | вот файл логин.php
<?php require_once('Connections/MON.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
mysql_select_db($database_MON, $MON);
$query_Recordset1 = "SELECT log_name, log_pass, Privelegy, Org_name FROM login_table";
$Recordset1 = mysql_query($query_Recordset1, $MON) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['login'])) {
$loginUsername=$_POST['login'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "Privelegy";
$MM_redirectLoginSuccess = "Main.php";
$MM_redirectLoginFailed = "LOGin.php";
$MM_redirecttoReferrer = true;
mysql_select_db($database_MON, $MON);
$LoginRS__query=sprintf("SELECT log_name, log_pass, Privelegy FROM login_table WHERE log_name=%s AND log_pass=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $MON) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = mysql_result($LoginRS,0,'Privelegy');
if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
</head>
<body>
<a href="Red.php">Регистрация</a>
<form ACTION="<?php echo $loginFormAction; ?>" id="form1" name="form1" method="POST">
<div align="center">
<table width="200" border="1">
<tr>
<th scope="row">Логин</th>
<td><label for="login"></label>
<span id="sprylogin">
<input type="text" name="login" id="login" />
<span class="textfieldRequiredMsg">Значение является обязательным.</span></span></td>
</tr>
<tr>
<th scope="row">Пароль</th>
<td><label for="sprypassword"></label>
<label for="password2"></label>
<span id="sprytextfield2">
<input type="password" name="password" id="password2" />
<span class="textfieldRequiredMsg">Значение является обязательным.</span></span></td>
</tr>
</table>
</div>
<p align="center">
<input type="submit" name="submit" id="submit" value="Отправить" />
</p>
</form>
<script type="text/javascript">
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprylogin", "none", {validateOn:["change"]});
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2");
</script>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>
|
| |
|
|
|
|
|
|
|
для: lemuriec
(29.12.2011 в 11:21)
| | а это то через что он соединяется
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_MON = "host";
$database_MON = "mon";
$username_MON = "root";
$password_MON = "root";
$MON = mysql_pconnect($hostname_MON, $username_MON, $password_MON) or trigger_error(mysql_error(),E_USER_ERROR);
?>
|
| |
|
|
|
|
|
|
|
для: lemuriec
(29.12.2011 в 11:21)
| | Ну вот в Вашем коде создаются две переменные сессии.
<?php
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
|
Теперь если Вы напишете на главной странице
<?php
if (isset($_SESSION['MM_Username'])) echo 'Добро пожаловать, ' . $_SESSION['MM_Username'];
else echo 'Авторизуйтесь и зарегистрируйтесь';
|
то получите требуемое приветствие, только не имя пользователя, а его логин правильно? | |
|
|
|
|
|
|
|
для: deimand
(29.12.2011 в 11:31)
| | Да правильно) а как передать Orgname теперь) | |
|
|
|
|
|
|
|
для: lemuriec
(29.12.2011 в 11:33)
| | Изменить запрос
<?php
$LoginRS__query=sprintf("SELECT log_name, log_pass, Privelegy FROM login_table WHERE log_name=%s AND log_pass=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
|
Чтобы он доставал из базы и требуемое Orgname
Вероятно как-то так
<?php
$LoginRS__query=sprintf("SELECT log_name, log_pass, Privelegy, Orgname FROM login_table WHERE log_name=%s AND log_pass=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
|
Потом как-то так получить его в переменную
<?php
$loginStrOrgname = mysql_result($LoginRS,0,'Orgname');
|
Потом как-то так сохранить в сессию
<?php
$_SESSION['MM_Orgname'] = $loginStrOrgname;
|
А потом как-то так вывести на страницу
<?php
if (isset($_SESSION['MM_Orgname'])) echo 'Добро пожаловать, ' . $_SESSION['MM_Orgname'];
else echo 'Авторизуйтесь и зарегистрируйтесь';
|
| |
|
|
|
|
|
|
|
для: deimand
(29.12.2011 в 11:40)
| | Потом как-то Вам огромное спасибо!!!))))) Помогло))))) Так... буду активно участвовать в деятельности Вашего сайта))) это единственный сайт помоему где реально помогают... Я понимаю в принципе я должен был сам это догнать, но я только учусь))) Еще раз спасибо и ++++++++ Этому сайту и Вам лично) | |
|
|
|
|
|
|
|
для: lemuriec
(29.12.2011 в 11:58)
| | Это не мой сайт, я такой же пользователь как и Вы. | |
|
|
|
|
|
|
|
для: deimand
(29.12.2011 в 12:08)
| | Не важно, все равно спасибо) Еще хотел спросить. А возможно ли php и sql использовать в связке с Flash ? | |
|
|
|
|
|
|
|
для: lemuriec
(29.12.2011 в 12:12)
| | Да, например в помощью javascript можно передавать в swf-аудиопроигрыватель информацию о треках пользователя, полученную с помощью php из mysql и сделать из этого mp3 плеер на html и css, с собственными скинами и плейлистом, вообще без знания Flash. Только кто-то со знанием Flash этот swf все равно должен сделать. | |
|
|
|
|
|
|
|
для: deimand
(29.12.2011 в 12:46)
| | Я флэш более менее сносно знаю - но мне плеер не нужен. Мне нужно следующее: программа с БД но чтоб оболочка была Flashная. Это реально сделать? И если можете - то подскажите - учебники или туторы плиз, или сами подскажите) | |
|
|
|