|
|
|
| Необходимо исправить ошибку.
Когда пользователь заходит под своим логиным и рассматривает чужую анкету, слева от анкеты снова выводится таблица ввода в свой аккаунт, т.е. есть кнопка "ВОЙТИ", а нет кнопки "ВЫЙТИ"
<?php
// вся процедура работает на сессиях.
session_start();
include ("bd.php");
if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички
else
{ exit("Вы зашил на страницу без параметра!");} //если не указали id, то выдаем ошибку
if (!preg_match("|^[\d]+$|", $id)) {
exit("<p>Неверный формат запроса! Проверьте URL</p>");//если id не число, то выдаем ошибку
}
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users
WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow2 = mysql_fetch_array($result2);
//извлекаем нужные данные о пользователе
}
?>
|
ТАБЛИЦА № 1
//Если страничка принадлежит вошедшему, то предлагаем изменить данные
<?php
if ($myrow['login'] == $login) {
//Если страничка принадлежит вошедшему, то предлагаем изменить данные
print <<<HERE
<table>
<tr><td><img src="images/login_picto.gif">Выход</td></tr>
<tr><td>
<FORM name="logout_form" method="POST" action="exit.php">
<input type="submit" value="Выйти">
</FORM>
</td></tr>
</table>
...............
}
|
ТАБЛИЦА № 2
//если страничка чужая, то возможны два варианта: а и б
А) Пользователь вошел под своим логином или Б) гость рассматривает анкету. Если случай А - то кроме анкетных данных нужно вывести "ВЫЙТИ", если гость то предложить "ВОЙТИ"
{
if ($myrow2['id'] == $id) {
//Вариант А
<table>
<tr><td><img src="images/login_picto.gif">Выход</td></tr>
<tr><td>
<FORM name="logout_form" method="POST" action="exit.php">
<input type="submit" value="Выйти">
</FORM>
</td></tr>
</table>
}
//Вариант В
print <<<HERE
<table>
<tr><td><img src="images/login_picto.gif">Вход здесь</td></tr>
<tr><td>
<form action="testreg.php" method="post">
<p>Ваш логин:
<input name="login" type="text" size="6" maxlength="15"></p>
HERE;
....
}
|
| |
|
|
|
|
|
|
|
для: franko
(22.02.2011 в 12:46)
| | Хм... попробуйте реализовать вариант следующим образом
<?php
if (!empty($_SESSION['login'])) {
// Тут кнопка Выход
}
else {
// Тут кнопка Вход
}
?>
|
Тогда каждый момент времени у вас будет отображаться только одна из кнопок в зависимости от того, прошла авторизация или нет. | |
|
|
|
|
|
|
|
для: cheops
(22.02.2011 в 12:53)
| |
<?php
if ($myrow2['id'] == $id) {
//Если страничка принадлежит вошедшему, то предлагаем изменить данные
echo "..."; //выводим таблицу № 1
}
else
{
if (!empty($_SESSION['login'])) {
print <<<HERE
<table><tr><td>Выход</td></tr></table>
HERE;
}
else {
print <<<HERE
<table><tr><td>ВХОД здесь</td></tr>
HERE;
}}
{
//если страничка чужая, то выводим данные об этом человеке
echo "..."; //выводим таблицу № 2
}
?>
|
тут случай тяжелый. пр условии if ($myrow2['id'] == $id) выводит сразу 2 таблицы: № 1 и № 2
подскажите, где ошибка? | |
|
|
|
|
|
|
|
для: franko
(22.02.2011 в 19:51)
| | вдогонку
<?php
// вся процедура работает на сессиях.
Именно в ней хранятся данные пользователя, пока он находится на сайте.
session_start();
include ("bd.php");// файл bd.php должен быть в той же папке,
что и все остальные, если это не так, то просто измените путь
if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички
else
{ exit("Вы зашил на страницу без параметра!");} //если не указали id, то выдаем ошибку
if (!preg_match("|^[\d]+$|", $id)) {
exit("<p>Неверный формат запроса! Проверьте URL</p>");//если id не число, то выдаем ошибку
}
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result = mysql_query("SELECT * from users WHERE id='$id'", $db);
$myrow = mysql_fetch_array($result);
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow2 = mysql_fetch_array($result2);
//извлекаем нужные данные о пользователе
}
?>
|
| |
|
|
|
|
|
|
|
для: franko
(22.02.2011 в 19:51)
| | А вы сделайте вот так, я так понимаю, Выход нужен всегда, даже когда таблица выводится?
<?php
if ($myrow2['id'] == $id && !empty($_SESSION['login'])) {
//Если страничка принадлежит вошедшему, то предлагаем изменить данные
echo "..."; //выводим таблицу № 1
print <<<HERE
<table><tr><td>Выход</td></tr></table>
HERE;
} else {
print <<<HERE
<table><tr><td>ВХОД здесь</td></tr>
HERE;
//если страничка чужая, то выводим данные об этом человеке
echo "..."; //выводим таблицу № 2
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(22.02.2011 в 20:07)
| | А вы сделайте вот так, я так понимаю, Выход нужен всегда, даже когда таблица выводится?
выход нужен только тогда пользователь вошел под своим логином, в другом случае как гость - нужен вход.
поменяется ли в этом случае код? | |
|
|
|
|
|
|
|
для: franko
(22.02.2011 в 20:29)
| | >поменяется ли в этом случае код?
Нет. | |
|
|
|
|
|
|
|
для: cheops
(22.02.2011 в 20:33)
| | код поменял. теперь когда пользователь вошел под своим логиным и просматривает чужую анкету - вместо ВЫЙТИ - предлагается снова ВОЙТИ | |
|
|
|
|
|
|
|
для: franko
(22.02.2011 в 20:50)
| | > вместо ВЫЙТИ - предлагается снова ВОЙТИ
ну, это что ли проблема? Инртируйте варианты :) | |
|
|
|
|
|
|
|
для: tvv123456
(22.02.2011 в 20:52)
| | эх... кто сможет код целиком посмотреть? | |
|
|
|
|
|
|
|
для: franko
(22.02.2011 в 20:50)
| | . | |
|
|
|
|
|
|
|
для: cheops
(22.02.2011 в 20:59)
| | точка что означает? | |
|
|
|
|
|
|
|
для: franko
(22.02.2011 в 21:00)
| | Не до конца понял проблему, написал пост, потом, когда понял, стер пост, оставив точку. | |
|
|
|
|
|
|
|
для: cheops
(22.02.2011 в 21:03)
| | да там надо оставить ВЫХОД и ВХОД в зависимости, пользователь или гость..
а чужую страничку может просматривать и ГОСТЬ, и ПОЛЬЗОВАТЕЛЬ | |
|
|
|
|
|
|
|
для: franko
(22.02.2011 в 21:06)
| | Это как раз понятно, поэтому здесь лучше привязаться к $_SESSION['login'] - у гостя этого элемента массива быть не может, так как он появляется только у авторизованного пользователя. Попробуйте вариант от cheops (22.02.2011 в 21:02). | |
|
|
|
|
|
|
|
для: cheops
(22.02.2011 в 21:08)
| | Браво!!! Работает. Спасибо | |
|
|
|
|
|
|
|
для: franko
(22.02.2011 в 20:50)
| | Тогда делайте так
<?php
// Вход/Выход
if(!empty($_SESSION['login'])) {
print <<<HERE
<table><tr><td>Выход</td></tr></table>
HERE;
} else {
print <<<HERE
<table><tr><td>ВХОД здесь</td></tr>
HERE;
}
// Таблицы
if ($myrow2['id'] == $id) {
//Если страничка принадлежит вошедшему, то предлагаем изменить данные
echo "...";
} else {
//если страничка чужая, то выводим данные об этом человеке
echo "...";
}
?>
|
| |
|
|
|