[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Профиль на сайте
Jew
Пользователь в бд есть, ввожу правильный логин и пароль, но когда вхожу в профиль, пишет, что я незарегистрированный пользователь

Вход:
<?php
session_start();

include ("bd.php");

if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существет логин и пароль в сессиях, то проверяем их и извлекаем аватар
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result = mysql_query("SELECT id,avatar FROM users WHERE login='$login' AND password='$password'",$db);
$myrow = mysql_fetch_array($result);
}
?>
<html>
<
head>
<
title>Главная страница</title>
</
head>
<
body>
<
h2>Главная страница</h2>


<?php
if (!isset($myrow['avatar']) or $myrow['avatar']=='') {
//проверяем, не извлечены ли данные пользователя из базы. Если нет, то он не вошел, либо пароль в сессии неверный. Выводим окно для входа. Но мы не будем его выводить для вошедших, им оно уже не нужно.
print <<<HERE
<form action="testreg.php" method="post">
<!-- testreg.php - это адрес обработчика. То есть, после нажатия на кнопку "Войти", данные из полей отправятся на страничку testreg.php методом "post" -->
<p>
<label>Ваш логин:<br></label>
<input name="login" type="text" size="15" maxlength="15"

HERE;


if (isset($_COOKIE['login'])) //есть ли переменная с логином в COOKIE. Должна быть, если пользователь при предыдущем входе нажал на чекбокс "Запомнить меня"
{
//если да, то вставляем в форму ее значение. При этом пользователю отображается, что его логин уже вписан в нужную графу
echo ' value="'.$_COOKIE['login'].'">';
}


print <<<HERE
</p>
<!-- В текстовое поле (name="login" type="text") пользователь вводит свой логин -->
<p>
<label>Ваш пароль:<br></label>
<input name="password" type="password" size="15" maxlength="15"

HERE;


if (isset($_COOKIE['password']))//есть ли переменная с паролем в в COOKIE. Должна быть, если пользователь при предыдущем входе нажал на чекбокс "Запомнить меня"
{
//если да, то вставляем в форму ее значение. При этом пользователю отображается, что его пароль уже вписан в нужную графу
echo ' value="'.$_COOKIE['password'].'">';
}

print <<<HERE
</p>
<!-- В поле для паролей (name="password" type="password") пользователь вводит свой пароль -->
<p>
<input name="save" type="checkbox" value='1'> Запомнить меня.
</p>

<p>
<input type="submit" name="submit" value="Войти">
<!-- Кнопочка (type="submit") отправляет данные на страничку testreg.php -->
<br>
<!-- ссылка на регистрацию, ведь как-то же должны гости туда попадать -->
<a href="reg.php">Зарегистрироваться</a>
</p></form>
<br>
Вы вошли на сайт, как гость<br><a href='#'>Эта ссылка доступна только зарегистрированным пользователям</a>

HERE;
}

else
{
//при удачном входе пользователю выдается все, что расположено ниже между звездочками.
//************************************************************************************



print <<<HERE
|<a href='page.php?id=$_SESSION[id]'>Моя страница</a>|<a href='index.php'>Главная страница</a>|<a href='all_users.php'>Список пользователей</a>|<a href='exit.php'>Выход</a><br><br>

<!-- Между оператором "print <<<HERE" выводится html код с нужными переменными из php -->
Вы вошли на сайт, как
$_SESSION[login]<br>
<!-- выше ссылка на выход из аккаунта -->

<a href='http://tvpavlovsk.sk6.ru/'>Эта ссылка доступна только зарегистрированным пользователям</a><br>
Ваш аватар:<br>
<img alt='
$_SESSION[login]' src='$myrow[avatar]'>

HERE;
}

?>
</body>
</
html>


Обработчик:
<?php
session_start();
header("Content-Type: text/html; charset=utf-8");
// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
include("bd.php");
?>
<font size="4"><b>Вход</b><br><br>
<?
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
//если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести

$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
//удаляем лишние пробелы
$login = trim($login);
$password = trim($password);
// подключаемся к базе
include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь

$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db); //извлекаем из базы все данные о пользователе с введенным логином
$myrow = mysql_fetch_array($result);
if (empty($myrow['password']))
{
//если пользователя с введенным логином не существует
exit ("Ошибка! Персонажа с таким именем не существует.");
}
else {
//если существует, то сверяем пароли
if ($myrow['password']==$password) {
//если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];
//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь

echo "Вы успешно вошли на сайт!<script>document.location.href='profile.php?id=$myrow[id]';</script>";
}
else {
//если пароли не сошлись

exit ("Ошибка! Неверный пароль.");
}
}

include("bd.php");
?>



Профиль:

<?php
session_start();
header("Content-Type: text/html; charset=utf-8");
include ("bd.php");
if (isset($_GET['id'])) {
$id =$_GET['id'];
} else {
exit("Вы зашли на страницу без параметра!");
}
if (!preg_match("|^[\d]+$|", $id)) {
exit("<p>Неверный формат запроса! Проверьте URL</p>");
}


if (!empty($_SESSION['login']) && !empty($_SESSION['password'])) {
$result2 = mysql_query("SELECT id FROM users WHERE login='{$_SESSION['login']}' AND password='{$_SESSION['password']}'");
$myrow2 = mysql_result($result2, 0);
if (empty($myrow2)) {
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
}
}
else {
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
}
$result = mysql_query("SELECT * FROM users WHERE id='{$id}'");
$myrow = mysql_fetch_assoc($result);
if (empty($myrow['login'])) exit("Пользователя не существует! Возможно он был удален."); //если такого не существует
if ($myrow['login'] == $login) {
$log = '<font size="4"><br><br><b>Моя страница</b>';
$content = '<br><br>Ваш профиль';
}
else {
$log = '<font size="4"><br><br><b>Чужая страница</b>';
$content = '<br><br>Чужая страница';
}
include ("bd.php");
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.