[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регистрация
RCuPeR
Добрый день.
Собственно проблема:
Есть форма для входа и регистрации:
<div id="toppanel">
<div
id="panel">
<div
class="content clearfix">
<div
class="left">
<h1>
Добро пожаловать в мой блог!</h1>
<h2>
Пожалуйста, ввойдите под своим именем и паролем или зарегистрируйтесь!</h2>

</div>
<div
class="left">
<!-- Login Form -->
<form class="clearfix" action="test_reg.php" method="post">
<h1>
Ваши данные:</h1>
<label
class="grey" for="log">Логин:</label>
<input
class="field" name="login" type="text" id="log" value="" size="23" />
<label
class="grey" for="pwd">Пароль:</label>
<input
class="field" name="password" type="password" id="pwd" size="23" />
<label><input
name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Запомнить меня</label>
<br>

<div
class="clear"></div>
<input
type="submit" name="submit" value="Ввойти" class="bt_login" />
<a
class="lost-pwd" href="#">Потеряли пароль?</a>
</form>
</div>
<div
class="left right">
<!-- Register Form -->
<form enctype="multipart/form-data" action="save_user.php" method="post">
<h1>
Ещё не зарегистрирован ? Попробуй сейчас !</h1>
<label
class="grey" for="signup">Логин:</label>
<input
class="field" type="text" name="login" id="signup" value="" size="23" />
<label
class="grey" for="email">Пароль:</label>
<input
class="field" type="text" name="password" id="email" size="23" />
<label>
Пароль будет отправлен на Ваш E-mail.</label>
<label>
Выберите аватар. Изображение должно быть формата jpg, gif или png:<br></label>
<input
style="margin-top:10px;" type="FILE" name="fupload">

<!-- В переменную fupload отправится изображение, которое выбрал пользователь -->
<input type="submit" name="submit" value="Регистрация" class="bt_register" />
</form>
</div>
</div>
</div>
<!-- /login -->


Есть ссылочка которая видна только зареганым пользователям:
 <?php
// Проверяем, пусты ли переменные логина и id пользователя
if (empty($_SESSION['login']) or empty($_SESSION['id']))
{
// Если пусты, то мы не выводим ссылку
echo "Вы вошли на сайт, как гость<br><a href='save_user.php'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}
else
{

// Если не пусты, то мы выводим ссылку
echo "Вы вошли на сайт, как ".$_SESSION['login']."<br><a href='http://rcuper.ru/'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}
?>


Никак не получается сделать, что бы для "пустых" пользователей выводилась форма с входос и регой, а для "не пустых" пользователей, выводилась его полная инфа (для начала, Привет <?php echo "".$_SESSION['login']."";?>! ).



Спустя 2 минуты, 19 секунд (6.12.2010 - 13:12) RCuPeR написал(а):
Знаю, форму с инфой для пользователя нужно выводить с помощью if...else, но какого чёрта, ничего не получается ?!

Спустя 1 минута, 31 секунда (6.12.2010 - 13:13) inpost написал(а):
session_start() запущен?
Что именно не работает?

Спустя 3 минуты, 28 секунд (6.12.2010 - 13:17) ИНСИ написал(а):
RCuPeR лучше сделай проверку на существование сесии... То есть вот так:

if(!isset($_SESSION['login']))
{
echo "Вы вошли на сайт, как гость<br><a href='save_user.php'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}
else
{

echo "Вы вошли на сайт, как ".$_SESSION['login']."<br><a href='http://rcuper.ru/'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}

Спустя 2 минуты, 17 секунд (6.12.2010 - 13:19) RCuPeR написал(а):
Всё запущено и работает в таком виде:
		<div class="left">
<!-- Login Form -->
<form class="clearfix" action="test_reg.php" method="post">
<h1>
Ваши данные:</h1>
<label
class="grey" for="log">Логин:</label>
<input
class="field" name="login" type="text" id="log" value="" size="23" />
<label
class="grey" for="pwd">Пароль:</label>
<input
class="field" name="password" type="password" id="pwd" size="23" />
<label><input
name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Запомнить меня</label>
<br>
<?php

// Проверяем, пусты ли переменные логина и id пользователя
if (empty($_SESSION['login']) or empty($_SESSION['id']))
{
// Если пусты, то мы не выводим ссылку
echo "Вы вошли на сайт, как гость<br><a href='save_user.php'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}
else
{

// Если не пусты, то мы выводим ссылку
echo "Вы вошли на сайт, как ".$_SESSION['login']."<br><a href='http://rcuper.ru/'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}
?>
<div
class="clear"></div>
<input
type="submit" name="submit" value="Ввойти" class="bt_login" />
<a
class="lost-pwd" href="#">Потеряли пароль?</a>
</form>
</div>
<div
class="left right">
<!-- Register Form -->
<form enctype="multipart/form-data" action="save_user.php" method="post">
<h1>
Ещё не зарегистрирован ? Попробуй сейчас !</h1>
<label
class="grey" for="signup">Логин:</label>
<input
class="field" type="text" name="login" id="signup" value="" size="23" />
<label
class="grey" for="email">Пароль:</label>
<input
class="field" type="text" name="password" id="email" size="23" />
<label>
Пароль будет отправлен на Ваш E-mail.</label>
<label>
Выберите аватар. Изображение должно быть формата jpg, gif или png:<br></label>
<input
style="margin-top:10px;" type="FILE" name="fupload">

<!-- В переменную fupload отправится изображение, которое выбрал пользователь -->
<input type="submit" name="submit" value="Регистрация" class="bt_register" />
</form>
</div>
</div>
</div>
<!-- /login -->


Но, если я пытаюсь разместить формы реги и входа между if...else, то ничего не работает. Вообще ничего.:
    if (empty($_SESSION['login']) or empty($_SESSION['id']))
{
// Если пусты, то мы не выводим ссылку
Тут должна быть форма входа/регистрации.
}
else
{

// Если не пусты, то мы выводим ссылку
Тут должна быть инфа о УЖЕ ЗАРЕГАНОМ ПОЛЬЗОВАТЕЛЕ.
}
?>


Спустя 47 секунд (6.12.2010 - 13:20) RCuPeR написал(а):
welbox2, Сессия жива, работает.

Спустя 2 минуты (6.12.2010 - 13:22) Гость_Dimon написал(а):
а так?
<?php
// Проверяем, пусты ли переменные логина и id пользователя
if (empty($_SESSION['login']) or empty($_SESSION['id']))
{ ?>
<div id="toppanel">
<div id="panel">
<div class="content clearfix">
<div class="left">
<h1>Добро пожаловать в мой блог!</h1>
<h2>Пожалуйста, ввойдите под своим именем и паролем или зарегистрируйтесь!</h2>

</div>
<div class="left">
<!-- Login Form -->
<form class="clearfix" action="test_reg.php" method="post">
<h1>Ваши данные:</h1>
<label class="grey" for="log">Логин:</label>
<input class="field" name="login" type="text" id="log" value="" size="23" />
<label class="grey" for="pwd">Пароль:</label>
<input class="field" name="password" type="password" id="pwd" size="23" />
<label><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Запомнить меня</label>
<br>

<div class="clear"></div>
<input type="submit" name="submit" value="Ввойти" class="bt_login" />
<a class="lost-pwd" href="#">Потеряли пароль?</a>
</form>
</div>
<div class="left right">
<!-- Register Form -->
<form enctype="multipart/form-data" action="save_user.php" method="post">
<h1>Ещё не зарегистрирован ? Попробуй сейчас !</h1>
<label class="grey" for="signup">Логин:</label>
<input class="field" type="text" name="login" id="signup" value="" size="23" />
<label class="grey" for="email">Пароль:</label>
<input class="field" type="text" name="password" id="email" size="23" />
<label>Пароль будет отправлен на Ваш E-mail.</label>
<label>Выберите аватар. Изображение должно быть формата jpg, gif или png:<br></label>
<input style="margin-top:10px;" type="FILE" name="fupload">

<!-- В переменную fupload отправится изображение, которое выбрал пользователь -->
<input type="submit" name="submit" value="Регистрация" class="bt_register" />
</form>
</div>
</div>
</div> <!-- /login -->
<?php }
else
{

// Если не пусты, то мы выводим ссылку
echo "Вы вошли на сайт, как ".$_SESSION['login']."<br><a href='http://rcuper.ru/'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}
?>

Спустя 6 минут, 9 секунд (6.12.2010 - 13:28) ИНСИ написал(а):
RCuPeR не совсем понял. Ты мой вариант используешь? Он тебе помог?

Спустя 6 минут, 28 секунд (6.12.2010 - 13:34) RCuPeR написал(а):
Гость_Dimon , не работает.

welbox2, твой вариант это проверка сессии на живучесть (isset). Сессия сама работает, но вот где у тебя:
if(!isset($_SESSION['login']))
{
echo "Форма реги и входа";
}
else
{

echo "Инфа юзера: аватарка, логин, ну короче профиль его.";
}


Как так сделатЬ? Гость Димон меня понял, но ничего не получилось =(

Спустя 2 минуты, 14 секунд (6.12.2010 - 13:37) inpost написал(а):
А ты просто выведи инфу из сессии, что там записано? И вообще, какого в сессии может быть пустые данные? Я что-то не понимаю... сессия создаётся, когда все условия прошли успешно и пользователь реальный авторизировался!

Спустя 2 минуты, 50 секунд (6.12.2010 - 13:40) RCuPeR написал(а):
Ну вот!!!
Когда значения сессии TRUE - выведи мне профиль пользователя, если значение FALSE - выведи мне форму входа/регистрации.

<?php
// Проверяем, пусты ли переменные логина и id пользователя
if (empty($_SESSION['login']) or empty($_SESSION['id']))
{ ?>
<div id="toppanel">
<
div id="panel">
<
div class="content clearfix">
<
div class="left">
<
h1>Добро пожаловать в мой блог!</h1>
<
h2>Пожалуйста, ввойдите под своим именем и паролем или зарегистрируйтесь!</h2>

</
div>
<
div class="left">
<!--
Login Form -->
<
form class="clearfix" action="test_reg.php" method="post">
<
h1>Ваши данные:</h1>
<
label class="grey" for="log">Логин:</label>
<
input class="field" name="login" type="text" id="log" value="" size="23" />
<
label class="grey" for="pwd">Пароль:</label>
<
input class="field" name="password" type="password" id="pwd" size="23" />
<
label><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Запомнить меня</label>
<
br>

<
div class="clear"></div>
<
input type="submit" name="submit" value="Ввойти" class="bt_login" />
<
a class="lost-pwd" href="#">Потеряли пароль?</a>
</
form>
</
div>
<
div class="left right">
<!--
Register Form -->
<
form enctype="multipart/form-data" action="save_user.php" method="post">
<
h1>Ещё не зарегистрирован ? Попробуй сейчас !</h1>
<
label class="grey" for="signup">Логин:</label>
<
input class="field" type="text" name="login" id="signup" value="" size="23" />
<
label class="grey" for="email">Пароль:</label>
<
input class="field" type="text" name="password" id="email" size="23" />
<
label>Пароль будет отправлен на Ваш E-mail.</label>
<
label>Выберите аватар. Изображение должно быть формата jpg, gif или png:<br></label>
<
input style="margin-top:10px;" type="FILE" name="fupload">

<!--
В переменную fupload отправится изображение, которое выбрал пользователь -->
<
input type="submit" name="submit" value="Регистрация" class="bt_register" />
</
form>
</
div>
</
div>
</
div> <!-- /login -->
<?php }
else
{

// Если не пусты, то мы выводим ссылку
echo "Вы вошли на сайт, как ".$_SESSION['login']."<br><a href='http://rcuper.ru/'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}
?>


Нужно сделать по этому примеру, только он, падла не работает.

Спустя 1 минута, 11 секунд (6.12.2010 - 13:41) inpost написал(а):
RCuPeR
Ещё раз, каким образом может в сессию попасть ПУСТЫЕ ДАННЫЕ? Каким образом?

Спустя 1 минута, 29 секунд (6.12.2010 - 13:42) RCuPeR написал(а):
Ну почему же пустые ?
В любом случае это либо форма входа, либо профиль.

Ну, блин, самая элементарная система регистрации.

Спустя 1 минута, 3 секунды (6.12.2010 - 13:43) inpost написал(а):
Включил сайт - СЕССИИ НЕ СУЩЕСТВУЕТ! !isset.
Человек зашел на страницу авторизации, сессии не существует! Её нету!
Человек ввёл правильные данные - сессия была создана не пустая, проверять надо на isset!

Спустя 2 минуты, 7 секунд (6.12.2010 - 13:45) Гость_Dimon написал(а):
код который я привел рабочий, проблема не в нем, расскажите что именно у вас не работает?пустая страница или что?

Спустя 1 минута, 45 секунд (6.12.2010 - 13:47) RCuPeR написал(а):
Хм...Ну вообще-то да...
А как сделать правильно ?
Вверху панель реги.

Гость_Dimon, да, видно только background-image: и всё.

Спустя 5 минут, 32 секунды (6.12.2010 - 13:53) Гость_Dimon написал(а):
хм... а я вижу нормальную форму регистрации

Спустя 34 секунды (6.12.2010 - 13:53) RCuPeR написал(а):
Цитата (Гость_Dimon @ 6.12.2010 - 10:53)
хм... а я вижу нормальную форму регистрации

Потому, что я убрал твой код.

Спустя 6 минут, 11 секунд (6.12.2010 - 13:59) Guest написал(а):
RCuPeR
ты неправильно вставляешь, сто пудов, проверь синтаксис

Спустя 2 минуты, 57 секунд (6.12.2010 - 14:02) RCuPeR написал(а):

<!-- Panel -->
<div id="toppanel">
<div
id="panel">
<div
class="content clearfix">
<div
class="left">
<h1>
Добро пожаловать в мой блог!</h1>
<h2>
Пожалуйста, ввойдите под своим именем и паролем или зарегистрируйтесь!</h2>

<?php

// Проверяем, пусты ли переменные логина и id пользователя
if (empty($_SESSION['login']) or empty($_SESSION['id']))
{ ?>
<div
id="toppanel">
<div
id="panel">
<div
class="content clearfix">
<div
class="left">
<h1>
Добро пожаловать в мой блог!</h1>
<h2>
Пожалуйста, ввойдите под своим именем и паролем или зарегистрируйтесь!</h2>

</div>
<div
class="left">
<!-- Login Form -->
<form class="clearfix" action="test_reg.php" method="post">
<h1>
Ваши данные:</h1>
<label
class="grey" for="log">Логин:</label>
<input
class="field" name="login" type="text" id="log" value="" size="23" />
<label
class="grey" for="pwd">Пароль:</label>
<input
class="field" name="password" type="password" id="pwd" size="23" />
<label><input
name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Запомнить меня</label>
<br>

<div
class="clear"></div>
<input
type="submit" name="submit" value="Ввойти" class="bt_login" />
<a
class="lost-pwd" href="#">Потеряли пароль?</a>
</form>
</div>
<div
class="left right">
<!-- Register Form -->
<form enctype="multipart/form-data" action="save_user.php" method="post">
<h1>
Ещё не зарегистрирован ? Попробуй сейчас !</h1>
<label
class="grey" for="signup">Логин:</label>
<input
class="field" type="text" name="login" id="signup" value="" size="23" />
<label
class="grey" for="email">Пароль:</label>
<input
class="field" type="text" name="password" id="email" size="23" />
<label>
Пароль будет отправлен на Ваш E-mail.</label>
<label>
Выберите аватар. Изображение должно быть формата jpg, gif или png:<br></label>
<input
style="margin-top:10px;" type="FILE" name="fupload">

<!-- В переменную fupload отправится изображение, которое выбрал пользователь -->
<input type="submit" name="submit" value="Регистрация" class="bt_register" />
</form>
</div>
</div>
</div>
<!-- /login -->
<?php }
else
{

// Если не пусты, то мы выводим ссылку
echo "Вы вошли на сайт, как ".$_SESSION['login']."<br><a href='http://rcuper.ru/'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}
?>

<!-- The tab on top -->
<div class="tab">
<ul
class="login">
<li
class="left"> </li>
<li>
Привет <?php echo "".$_SESSION['login']."";?>!</li>
<li
class="sep">|</li>
<li
id="toggle">
<a
id="open" class="open" href="#">Вход | Рега</a>
<a
id="close" style="display: none;" class="close" href="#">Закрыть панель</a>
</li>
<li
class="right"> </li>
</ul>
</div>
<!-- / top -->

</div> <!--panel -->

Спустя 2 минуты, 25 секунд (6.12.2010 - 14:05) inpost написал(а):
сколько раз говорить, надо isset!

Спустя 3 минуты, 20 секунд (6.12.2010 - 14:08) RCuPeR написал(а):
Вот фак...Туплю.
Можешь написать как нужно ?
А то мало ли... Потом опят Вам мозг парить ?

Спустя 8 минут, 9 секунд (6.12.2010 - 14:16) ИНСИ написал(а):
Цитата
Ну, блин, самая элементарная система регистрации.

вот именно, ты сам ее намудрил.... Смотри, вот самый простой способ, попробуй из этого примера, сделать свое. Этот 100% работает, я не поленился и сделал тебе. Проверь, если работает, добавь свои поля и т.д..

	session_start(); // Инициализируем сессию

// Если была нажата кнопка Войти - Login

if($_POST['submit']) {
$_SESSION['login'] = $_POST['login']; // Заносим логин в сессию
$_SESSION['password'] = $_POST['password']; // Заносим пароль в сессию (но зачем?)
}

if(!$_SESSION['login']) { // Если нет сессии, выводим форму для входа
echo '
<form action="" method="post">
Login: <input name="login" type="text" />
Password: <input name="password" type="password" />
<input type="submit" name="submit" value="Enter" />
</form>
'
;
} else { // Если же сессия создана, выводим приветствие
echo 'Hello: ' . $_SESSION['login'];
}

Спустя 4 минуты, 21 секунда (6.12.2010 - 14:21) RCuPeR написал(а):
Хм...Т.е., вместо твоей формы я могу вывести свою + вместо
echo 'Hello: ' . $_SESSION['login'];
, могу вывести форму профиля ?!

Спустя 8 минут, 48 секунд (6.12.2010 - 14:29) ИНСИ написал(а):
RCuPeR нет. Ты не показал файл test_reg.php. Что именно там? Как там проверка? Как перенаправляет и на какую страницу.

У тебя звеном является именно этот файл, выложи его. Я тебе дал пример, который просто показывает как работает сессия + форма. Теперь тебе надо разложить все по местам..

В общем:
1. Выложи файл test_reg.php.
2. Вместе посидим, и сделаем все.
3. Ты отблагодаришь smile.gif

Спустя 4 часа, 37 минут, 32 секунды (6.12.2010 - 19:07) RCuPeR написал(а):
Цитата (welbox2 @ 6.12.2010 - 11:29)
RCuPeR нет. Ты не показал файл test_reg.php. Что именно там? Как там проверка? Как перенаправляет и на какую страницу.

У тебя звеном является именно этот файл, выложи его. Я тебе дал пример, который просто показывает как работает сессия + форма. Теперь тебе надо разложить все по местам..

В общем:
1. Выложи файл test_reg.php.
2. Вместе посидим, и сделаем все.
3. Ты отблагодаришь smile.gif

Давай в аське спишемся ?
Как скажешь - так и отблагодарю =)

Спустя 23 минуты, 54 секунды (6.12.2010 - 19:31) ИНСИ написал(а):
RCuPeR мне просто можно сказать: Спасибо smile.gif Выкладывай свой код

Спустя 2 минуты (6.12.2010 - 19:33) RCuPeR написал(а):
index.php (сессия открыта):
<!-- Panel -->
<
div id="toppanel">
<
div id="panel">
<
div class="content clearfix">
<
div class="left">
<
h1>Добро пожаловать в мой блог!</h1>
<
h2>Пожалуйста, ввойдите под своим именем и паролем или зарегистрируйтесь!</h2>

</
div>
<
div class="left">
<!--
Login Form -->
<
form class="clearfix" action="test_reg.php" method="post">
<
h1>Ваши данные:</h1>
<
label class="grey" for="log">Логин:</label>
<
input class="field" name="login" type="text" id="log" value="" size="23" />
<
label class="grey" for="pwd">Пароль:</label>
<
input class="field" name="password" type="password" id="pwd" size="23" />
<
label><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Запомнить меня</label>
<
br>
<?php
// Проверяем, пусты ли переменные логина и id пользователя
if (empty($_SESSION['login']) or empty($_SESSION['id']))
{
// Если пусты, то мы не выводим ссылку
echo "Вы вошли на сайт, как гость<br><a href='save_user.php'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}
else
{

// Если не пусты, то мы выводим ссылку
echo "Вы вошли на сайт, как ".$_SESSION['login']."<br><a href='http://rcuper.ru/'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}
?>
<div class="clear"></div>
<
input type="submit" name="submit" value="Ввойти" class="bt_login" />
<
a class="lost-pwd" href="#">Потеряли пароль?</a>
</
form>
</
div>
<
div class="left right">
<!--
Register Form -->
<
form enctype="multipart/form-data" action="save_user.php" method="post">
<
h1>Ещё не зарегистрирован ? Попробуй сейчас !</h1>
<
label class="grey" for="signup">Логин:</label>
<
input class="field" type="text" name="login" id="signup" value="" size="23" />
<
label class="grey" for="email">Пароль:</label>
<
input class="field" type="text" name="password" id="email" size="23" />
<
label>Пароль будет отправлен на Ваш E-mail.</label>
<
label>Выберите аватар. Изображение должно быть формата jpg, gif или png:<br></label>
<
input style="margin-top:10px;" type="FILE" name="fupload">

<!--
В переменную fupload отправится изображение, которое выбрал пользователь -->
<
input type="submit" name="submit" value="Регистрация" class="bt_register" />
</
form>
</
div>
</
div>
</
div> <!-- /login -->

<!--
The tab on top -->
<
div class="tab">
<
ul class="login">
<
li class="left"> </li>
<
li>Привет <?php echo "".$_SESSION['login']."";?>!</li>
<
li class="sep">|</li>
<
li id="toggle">
<
a id="open" class="open" href="#">Вход | Рега</a>
<
a id="close" style="display: none;" class="close" href="#">Закрыть панель</a>
</
li>
<
li class="right"> </li>
</
ul>
</
div> <!-- / top -->

</
div> <!--panel -->


test_reg.php:

<?php
session_start();// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}
//если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
//удаляем лишние пробелы
//удаляем лишние пробелы

$login = trim($login);
$password = trim($password);

// заменяем новым********************************************
// подключаемся к базе

require 'blocks/db.php';// файл db.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
// минипроверка на подбор паролей


$ip=getenv("HTTP_X_FORWARDED_FOR");
if (empty($ip) || $ip=='unknown') { $ip=getenv("REMOTE_ADDR"); }//извлекаем ip
mysql_query ("DELETE FROM error_user WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 900");//удаляем ip-адреса ошибавшихся при входе пользователей через 15 минут.
$result = mysql_query("SELECT col FROM error_user WHERE ip='$ip'",$db);// извлекаем из базы количество неудачных попыток входа за последние 15 у пользователя с данным ip
$myrow = mysql_fetch_array($result);

if ($myrow['col'] > 2) {
//если ошибок больше двух, т.е три, то выдаем сообщение.
exit("Вы набрали логин или пароль неверно 3 раз. Подождите 15 минут до следующей попытки.");
}

$result = mysql_query("SELECT * FROM user WHERE login='$login' AND password='$password'",$db); //извлекаем из базы все данные о пользователе с введенным логином и паролем
$myrow = mysql_fetch_array($result);
if (empty($myrow['id']))
{
//если пользователя с введенным логином и паролем не существует
//Делаем запись о том, что данный ip не смог войти.

$select = mysql_query ("SELECT ip FROM error_user WHERE ip='$ip'");
$tmp = mysql_fetch_row ($select);
if ($ip == $tmp[0]) {//проверяем, есть ли пользователь в таблице "oshibka"
$result52 = mysql_query("SELECT col FROM error_user WHERE ip='$ip'",$db);
$myrow52 = mysql_fetch_array($result52);
$col = $myrow52[0] + 1;//прибавляем еще одну попытку неудачного входа
mysql_query ("UPDATE error_user SET col=$col,date=NOW() WHERE ip='$ip'");
}
else {
mysql_query ("INSERT INTO error_user (ip,date,col) VALUES ('$ip',NOW(),'1')");
//если за последние 15 минут ошибок не было, то вставляем новую запись в таблицу "oshibka"
}

exit ("Извините, введённый вами логин или пароль неверный.");
}
else {
nbsp; //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
$_SESSION['password']=$myrow['password'];
$_SESSION['login']=$myrow['login'];

$_SESSION['id']=$myrow['id'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь

//Далее мы запоминаем данные в куки, для последующего входа.
//ВНИМАНИЕ!!! ДЕЛАЙТЕ ЭТО НА ВАШЕ УСМОТРЕНИЕ, ТАК КАК ДАННЫЕ ХРАНЯТСЯ В КУКАХ БЕЗ ШИФРОВКИ


if ($_POST['save'] == 1) {
//Если пользователь хочет, чтобы его данные сохранились для последующего входа, то сохраняем в куках его браузера
setcookie("login", $_POST["login"], time()+9999999);
setcookie("password", $_POST["password"], time()+9999999);
}}
echo "<html><head><meta http-equiv='Refresh' content='1; URL=index.php'></head></html>";//перенаправляем пользователя на главную страничку, там ему и сообщим об удачном входе
?>


saveuser.php:

<?php
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}
//если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
//удаляем лишние пробелы
$login = trim($login);
$password = trim($password);

// дописываем новое********************************************

//добавляем проверку на длину логина и пароля

if (strlen($login) < 3 or strlen($login) > 15) {
exit ("Логин должен состоять не менее чем из 3 символов и не более чем из 15.");
}
if (strlen($password) < 3 or strlen($password) > 15) {
exit ("Пароль должен состоять не менее чем из 3 символов и не более чем из 15.");
}

if (!empty($_POST['fupload'])) //проверяем, отправил ли пользователь изображение
{
$fupload=$_POST['fupload']; $fupload = trim($fupload);
if ($fupload =='' or empty($fupload)) {
unset($fupload);// если переменная $fupload пуста, то удаляем ее
}
}

if (!isset($fupload) or empty($fupload) or $fupload =='')
{
//если переменной не существует (пользователь не отправил изображение),то присваиваем ему заранее приготовленную картинку с надписью "нет аватара"
$avatar = "templates/images/avatars/net-avatara.jpg"; //можете нарисовать net-avatara.jpg или взять в исходниках
}
else
{

//иначе - загружаем изображение пользователя
$path_to_90_directory = 'templates/images/avatars/';//папка, куда будет загружаться начальная картинка и ее сжатая копия

if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['fupload']['name']))//проверка формата исходного изображения
{
$filename = $_FILES['fupload']['name'];
$source = $_FILES['fupload']['tmp_name'];
$target = $path_to_90_directory . $filename;
move_uploaded_file($source, $target);//загрузка оригинала в папку $path_to_90_directory
if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
$im = imagecreatefromgif($path_to_90_directory.$filename) ; //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](PNG)|(png)$/', $filename)) {
$im = imagecreatefrompng($path_to_90_directory.$filename) ;//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}

if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
$im = imagecreatefromjpeg($path_to_90_directory.$filename); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
//СОЗДАНИЕ КВАДРАТНОГО ИЗОБРАЖЕНИЯ И ЕГО ПОСЛЕДУЮЩЕЕ СЖАТИЕ ВЗЯТО С САЙТА www.codenet.ru
// Создание квадрата 90x90
// dest - результирующее изображение
// w - ширина изображения
// ratio - коэффициент пропорциональности

$w = 90; // квадратная 90x90. Можно поставить и другой размер.
// создаём исходное изображение на основе
// исходного файла и определяем его размеры

$w_src = imagesx($im); //вычисляем ширину
$h_src = imagesy($im); //вычисляем высоту изображения
// создаём пустую квадратную картинку
// важно именно truecolor!, иначе будем иметь 8-битный результат

$dest = imagecreatetruecolor($w,$w);
// вырезаем квадратную серединку по x, если фото горизонтальное
if ($w_src>$h_src)
imagecopyresampled($dest, $im, 0, 0,
round((max($w_src,$h_src)-min($w_src,$h_src))/2),
0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
// вырезаем квадратную верхушку по y,
// если фото вертикальное (хотя можно тоже серединку)

if ($w_src<$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w,
min($w_src,$h_src), min($w_src,$h_src));
// квадратная картинка масштабируется без вырезок
if ($w_src==$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);
$date=time(); //вычисляем время в настоящий момент.
imagejpeg($dest, $path_to_90_directory.$date.".jpg");//сохраняем изображение формата jpg в нужную папку, именем будет текущее время. Сделано, чтобы у аватаров не было одинаковых имен.
//почему именно jpg? Он занимает очень мало места + уничтожается анимирование gif изображения, которое отвлекает пользователя. Не очень приятно читать его комментарий, когда краем глаза замечаешь какое-то движение.

$avatar = $path_to_90_directory.$date.".jpg";//заносим в переменную путь до аватара.

$delfull = $path_to_90_directory.$filename;
unlink ($delfull);//удаляем оригинал загруженного изображения, он нам больше не нужен. Задачей было - получить миниатюру.
}
else
{
//в случае несоответствия формата, выдаем соответствующее сообщение
exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>");
}
//конец процесса загрузки и присвоения переменной $avatar адреса загруженной авы
}
// Далее идет все из первой части статьи,но необходимо дописать изменение в запрос к базе.
//подключаемся к базе

require 'blocks/db.php';// файл db.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
// проверка на существование пользователя с таким же логином

$result = mysql_query("SELECT id FROM user WHERE login='$login'",$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {
exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
}
// если такого нет, то сохраняем данные
$result2 = mysql_query ("INSERT INTO user (login,password,avatar) VALUES('$login','$password','$avatar')");
// Проверяем, есть ли ошибки
if ($result2=='TRUE')
{

echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";

}
else {
echo "Ошибка! Вы не зарегистрированы.";
}

?>

Спустя 2 минуты, 5 секунд (6.12.2010 - 19:35) RCuPeR написал(а):
Ну, я надеюсь, ты понял чего я добиваюсь ?

Спустя 1 час, 45 минут, 3 секунды (6.12.2010 - 21:20) ИНСИ написал(а):
RCuPeR я сделал только вход и без комментов, чтобы ты сам разобрался.

файл: index.php Обязательно в начало страницы вставь: <?php session_start(); ?>
Свернутый текст


<!-- Panel -->
<div id="toppanel">
<div
id="panel">
<div
class="content clearfix">
<div
class="left">
<h1>
Добро пожаловать в мой блог!</h1>
<h2>
Пожалуйста, ввойдите под своим именем и паролем или зарегистрируйтесь!</h2>

</div>
<div
class="left">
<?

if(!$_SESSION['login') {
?>
<!-- Login Form -->
<form class="clearfix" action="test_reg.php" method="post">
<h1>
Ваши данные:</h1>
<label
class="grey" for="log">Логин:</label>
<input
class="field" name="login" type="text" id="log" value="" size="23" />
<label
class="grey" for="pwd">Пароль:</label>
<input
class="field" name="password" type="password" id="pwd" size="23" />
<label><input
name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Запомнить меня</label>
<br>
<div
class="clear"></div>
<input
type="submit" name="submit" value="Ввойти" class="bt_login" />
<a
class="lost-pwd" href="#">Потеряли пароль?</a>
</form>

<?

} else {
echo "Вы вошли на сайт, как ".$_SESSION['login']."<br><a href='http://rcuper.ru/'>Эта ссылка доступна только зарегистрированным пользователям</a>";
}
?>
</div>
<div
class="left right">
<!-- Register Form -->
<form enctype="multipart/form-data" action="save_user.php" method="post">
<h1>
Ещё не зарегистрирован ? Попробуй сейчас !</h1>
<label
class="grey" for="signup">Логин:</label>
<input
class="field" type="text" name="login" id="signup" value="" size="23" />
<label
class="grey" for="email">Пароль:</label>
<input
class="field" type="text" name="password" id="email" size="23" />
<label>
Пароль будет отправлен на Ваш E-mail.</label>
<label>
Выберите аватар. Изображение должно быть формата jpg, gif или png:<br></label>
<input
style="margin-top:10px;" type="FILE" name="fupload">

<!-- В переменную fupload отправится изображение, которое выбрал пользователь -->
<input type="submit" name="submit" value="Регистрация" class="bt_register" />
</form>
</div>
</div>
</div>
<!-- /login -->

<!-- The tab on top -->

<div class="tab">
<ul
class="login">
<li
class="left"> </li>
<li>
Привет <?php echo "".$_SESSION['login']."";?>!</li>
<li
class="sep">|</li>
<li
id="toggle">
<a
id="open" class="open" href="#">Вход | Рега</a>
<a
id="close" style="display: none;" class="close" href="#">Закрыть панель</a>
</li>
<li
class="right"> </li>
</ul>
</div>
<!-- / top -->

</div> <!--panel -->



файл: test_reg.php:
Свернутый текст


session_start();

function var_filter($value) {
if (is_array($value)) { $value = array_map('var_filter', $value); }
else {
$value = trim($value);
if (get_magic_quotes_gpc()) $value = stripslashes($value);
}
return $value;
}


if($_POST['login']) { $login = mysql_real_escape_string(var_filter(trim($_POST['login']))); }
if($_POST['password']) { $password = mysql_real_escape_string(var_filter(trim($_POST['password']))); }

if($login == '' || $password == '') exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");

require 'blocks/db.php';
$ip = getenv("HTTP_X_FORWARDED_FOR");

if(empty($ip) || $ip == 'unknown') $ip = getenv("REMOTE_ADDR");
mysql_query(" DELETE FROM `error_user` WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(`date`) > 900 ");

$result = mysql_query(" SELECT `col` FROM `error_user` WHERE `ip` = '{$ip}' AND `col` >=3");
if(mysql_num_rows($result) > 0) exit("Вы набрали логин или пароль неверно 3 раз. Подождите 15 минут до следующей попытки.");

$result = mysql_query(" SELECT * FROM `user` WHERE `login` = '{$login}' AND `password` = '{$password}' LIMIT 1 ");
if(mysql_num_rows($result) < 0) {

$select = mysql_query(" SELECT `ip` FROM `error_user` WHERE `ip` = '{$ip}' ");
if(mysql_num_rows($select) > 0) mysql_query(" UPDATE `error_user` SET `col` = `col` + 1, `date` = NOW() WHERE `ip` = '{$ip}' ");
else mysql_query(" INSERT INTO `error_user`(`ip`,`date`,`col`) VALUES ('{$ip}',NOW(),1) ");

exit ("Извините, введённый вами логин или пароль неверный.");
}

else {
$myrow = mysql_fetch_array($result);

$_SESSION['password'] = $password;
$_SESSION['login'] = $login;
$_SESSION['id']= $myrow['id'];

if($_POST['save'] == 1) {
setcookie("login", $login, time()+9999999);
setcookie("password", $password, time()+9999999);
}

header('Location: http://' . $_SERVER['HTTP_HOST']);
}


Спустя 2 минуты, 40 секунд (6.12.2010 - 21:23) ИНСИ написал(а):
я особо много не менял. Сделал лишь то, что надо. В будущем, улучши свой скрипты, либо заплати кому нибудь ...

Спустя 28 минут, 42 секунды (6.12.2010 - 21:51) RCuPeR написал(а):
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in Y:\home\rcuper.ru\www\test_reg.php on line 14

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in Y:\home\rcuper.ru\www\test_reg.php on line 14

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in Y:\home\rcuper.ru\www\test_reg.php on line 15

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in Y:\home\rcuper.ru\www\test_reg.php on line 15
Вы ввели не всю информацию, вернитесь назад и заполните все поля!

Спустя 13 минут, 6 секунд (6.12.2010 - 22:04) RCuPeR написал(а):
Перед session_start(); добавил require 'blocks/db.php';, но теперь вылазит ошибка:
Warning: Cannot modify header information - headers already sent by (output started at Y:\home\rcuper.ru\www\blocks\db.php:28) in Y:\home\rcuper.ru\www\test_reg.php on line 49

С оператором header(); связано, ненавижу его, то пробелы, то BOM, то ещё что-то...

Спустя 1 час, 1 минута, 27 секунд (6.12.2010 - 23:06) inpost написал(а):
RCuPeR
Добавлять надо после! Стоит, порой, открывать гугл и читать то, что ты вставляешь.
В самом начале session_start(), после все остальное

Спустя 34 минуты, 53 секунды (6.12.2010 - 23:41) RCuPeR написал(а):
Неправильно написал, вот так у меня:
<?php
session_start();
require 'blocks/db.php';

За что отвечает этот параметр ?
header('Location: http://' . $_SERVER['HTTP_HOST']);


Я его убрал, поставил редирект и всё работает как по-маслу. Не наврежу ?

Спустя 2 минуты, 26 секунд (6.12.2010 - 23:43) inpost написал(а):
Это редирект от PHP. Его надо применять до вывода любой информации на сайт.

Спустя 16 минут, 33 секунды (7.12.2010 - 00:00) RCuPeR написал(а):
Меня просто ужасно бесит оператор header();. По-этому, я поставил хтмл-евский редирект:
<html><head><meta    http-equiv='Refresh' content='0;    URL=index.php'></head></html>

Спустя 6 минут, 44 секунды (7.12.2010 - 00:07) inpost написал(а):
RCuPeR
Структура сайта неправильная. В начале должны быть обработка пхп-кода, в конце вывод информации на экран!

Спустя 2 минуты, 26 секунд (7.12.2010 - 00:09) RCuPeR написал(а):
Ну как бы так оно и есть...

Спустя 11 минут, 54 секунды (7.12.2010 - 00:21) ИНСИ написал(а):
Цитата
Я его убрал, поставил редирект и всё работает как по-маслу. Не наврежу ?

нет не навредишь. Главное чтобы работало smile.gif Жду от тебя 3 пункт smile.gif

Спустя 13 часов, 11 минут, 4 секунды (7.12.2010 - 13:32) ИНСИ написал(а):
RCuPeR конечно же обращайся smile.gif

Спустя 6 минут, 43 секунды (7.12.2010 - 13:39) RCuPeR написал(а):
Ну тогда я приступаю к профилю.

Спустя 1 час, 13 минут, 6 секунд (7.12.2010 - 14:52) RCuPeR написал(а):
Буквально только, что заметил огромную багу !
На сайт может ввойти любой, даже не зарегавшийся юзер. Ему достаточно в поля "логин и пароль" ввести произвольные значения (Вася | 01010) и он ввойдёт на сайт. Переменная $login определит его как Вася с паролем 01010.

wellbox2, ну ка пересмотри свой код:
<?php
session_start();
require 'blocks/db.php';

function var_filter($value) {
if (is_array($value)) { $value = array_map('var_filter', $value); }
else {
$value = trim($value);
if (get_magic_quotes_gpc()) $value = stripslashes($value);
}
return $value;
}


if($_POST['login']) { $login = mysql_real_escape_string(var_filter(trim($_POST['login']))); }
if($_POST['password']) { $password = mysql_real_escape_string(var_filter(trim($_POST['password']))); }

if($login == '' || $password == '') exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");

$ip = getenv("HTTP_X_FORWARDED_FOR");

if(empty($ip) || $ip == 'unknown') $ip = getenv("REMOTE_ADDR");
mysql_query(" DELETE FROM `user_error` WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(`date`) > 900 ");

$result = mysql_query(" SELECT `col` FROM `user_error` WHERE `ip` = '{$ip}' AND `col` >=3");
if(mysql_num_rows($result) > 0) exit("Вы набрали логин или пароль неверно 3 раз. Подождите 15 минут до следующей попытки.");

$result = mysql_query(" SELECT * FROM `user` WHERE `login` = '{$login}' AND `password` = '{$password}' LIMIT 1 ");
if(mysql_num_rows($result) < 0) {

$select = mysql_query(" SELECT `ip` FROM `user_error` WHERE `ip` = '{$ip}' ");
if(mysql_num_rows($select) > 0) mysql_query(" UPDATE `user_error` SET `col` = `col` + 1, `date` = NOW() WHERE `ip` = '{$ip}' ");
else mysql_query(" INSERT INTO `user_error`(`ip`,`date`,`col`) VALUES ('{$ip}',NOW(),1) ");

exit ("Извините, введённый вами логин или пароль неверный.");
}

else {
$myrow = mysql_fetch_array($result);

$_SESSION['password'] = $password;
$_SESSION['login'] = $login;
$_SESSION['id']= $myrow['id'];

if($_POST['save'] == 1) {
setcookie("login", $login, time()+9999999);
setcookie("password", $password, time()+9999999);
}

}
?>
<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>

Спустя 24 минуты, 49 секунд (7.12.2010 - 15:17) SerginhoLD написал(а):
if(mysql_num_rows($result) < 0) {


поидее так надо :

if(mysql_num_rows($result) == 0) {


p.s. и как то у тебя этот if задом на перед :)

Спустя 3 минуты, 58 секунд (7.12.2010 - 15:21) RCuPeR написал(а):
SerginhoLD, ща подождём автора этого скрипта, посмотрим, что он скажет.

Спустя 7 минут, 45 секунд (7.12.2010 - 15:28) SerginhoLD написал(а):
RCuPeR, какие блин авторы, функция mysql_num_rows() возвращает кол-во рядов, меньше нуля она тебе не возвратит

Спустя 6 минут, 50 секунд (7.12.2010 - 15:35) ИНСИ написал(а):
RCuPeR попробуй так:
<?php
session_start();
require 'blocks/db.php';

function var_filter($value) {
if (is_array($value)) { $value = array_map('var_filter', $value); }
else {
$value = trim($value);
if (get_magic_quotes_gpc()) $value = stripslashes($value);
}
return $value;
}


if($_POST['login']) { $login = mysql_real_escape_string(var_filter(trim($_POST['login']))); }
if($_POST['password']) { $password = mysql_real_escape_string(var_filter(trim($_POST['password']))); }

if($login == '' || $password == '') exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");

$ip = getenv("HTTP_X_FORWARDED_FOR");

if(empty($ip) || $ip == 'unknown') $ip = getenv("REMOTE_ADDR");
mysql_query(" DELETE FROM `user_error` WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(`date`) > 900 ");

$check = mysql_query(" SELECT `col` FROM `user_error` WHERE `ip` = '{$ip}' AND `col` >=3 ");
if(mysql_num_rows($check) > 0) exit("Вы набрали логин или пароль неверно 3 раз. Подождите 15 минут до следующей попытки.");

$result = mysql_query(" SELECT * FROM `user` WHERE `login` = '{$login}' AND `password` = '{$password}' LIMIT 1 ");
if(mysql_num_rows($result) > 0) {
$myrow = mysql_fetch_array($result);

$_SESSION['password'] = $password;
$_SESSION['login'] = $login;
$_SESSION['id']= $myrow['id'];

if($_POST['save'] == 1) {
setcookie("login", $login, time()+9999999);
setcookie("password", $password, time()+9999999);
}

echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>";
} else {
$select = mysql_query(" SELECT `ip` FROM `user_error` WHERE `ip` = '{$ip}' ");
if(mysql_num_rows($select) > 0) mysql_query(" UPDATE `user_error` SET `col` = `col` + 1, `date` = NOW() WHERE `ip` = '{$ip}' ");
else mysql_query(" INSERT INTO `user_error`(`ip`,`date`,`col`) VALUES ('{$ip}',NOW(),1) ");

exit ("Извините, введённый вами логин или пароль неверный.");
}
?>

Спустя 5 минут, 56 секунд (7.12.2010 - 15:41) RCuPeR написал(а):
welbox2, спасибо ! Уже работает.

Спустя 18 минут, 19 секунд (7.12.2010 - 15:59) RCuPeR написал(а):
Ещё один вопрос:
как сделать так, что бы ".$_SESSION['login']." была ссылкой?

Спустя 12 минут, 22 секунды (7.12.2010 - 16:12) ИНСИ написал(а):
$_SESSION['login'] = '<a href="http://site.ru">'.$_SESSION['login'].'</a>';

не советую так делать, вдруг логин тебе понадобится в другом скрипте?

Спустя 7 минут, 50 секунд (7.12.2010 - 16:20) RCuPeR написал(а):
Ну, а просто:
<a href="http://site.ru">'.$_SESSION['login'].'</a>

Не получится?

Спустя 24 минуты, 12 секунд (7.12.2010 - 16:44) inpost написал(а):
RCuPeR
А ты попробуй =)

Спустя 5 минут, 48 секунд (7.12.2010 - 16:50) RCuPeR написал(а):
Всё гуд ! Работает.

<?php echo "<a href='userdetails.php?id=$myrow[id]'>".$_SESSION['login']."</a>";?>

Спустя 1 день, 1 час, 45 минут, 14 секунд (8.12.2010 - 18:35) RCuPeR написал(а):
Чуть покрутив код, решил очень хорошо замазать пароль:
1. Шифровка с помощью md5.
2. Реверс.
3. Добавление лишних символов.

$password    = md5($password);       
$password = strrev($password);
$password = $password."b3p6f";


В базу добавляется какой-то бешеный набор символов, гуд, всё как и нужно!
Но, как мне его теперь расшифровать ? Т.е. в базе лежит md5($password), а в форму ввожу 12345. Пароли-то разные ?
Как расшифровать?

Спустя 4 минуты, 5 секунд (8.12.2010 - 18:39) kovaldm написал(а):
Нинада никаких дополнительных преобразований после md5.
Расшифровать не получится.
При сравнении сравнивай то что лежит в базе с md5 того, что ввел юзер.

Спустя 4 минуты, 30 секунд (8.12.2010 - 18:43) RCuPeR написал(а):
Так-то и думал, но не работает :

test_reg.php (файл, который отвечает за вход.)
<?php
session_start();
require 'blocks/db.php';

function var_filter($value) {
if (is_array($value)) { $value = array_map('var_filter', $value); }
else {
$value = trim($value);
if (get_magic_quotes_gpc()) $value = stripslashes($value);
}
return $value;
}

if($_POST['login']) { $login = mysql_real_escape_string(var_filter(trim($_POST['login']))); }
if($_POST['password']) { $password = mysql_real_escape_string(var_filter(trim($_POST['password']))); }

$password = md5($password);

if($login == '' || $password == '') exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");

$ip = getenv("HTTP_X_FORWARDED_FOR");

if(empty($ip) || $ip == 'unknown') $ip = getenv("REMOTE_ADDR");
mysql_query(" DELETE FROM `user_error` WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(`date`) > 900 ");

$check = mysql_query(" SELECT `col` FROM `user_error` WHERE `ip` = '{$ip}' AND `col` >=3 ");
if(mysql_num_rows($check) > 0) exit("Вы набрали логин или пароль неверно 3 раз. Подождите 15 минут до следующей попытки.");

$result = mysql_query(" SELECT * FROM `user` WHERE `login` = '{$login}' AND `password` = '{$password}' LIMIT 1 ");
if(mysql_num_rows($result) > 0) {
$myrow = mysql_fetch_array($result);

$_SESSION['password'] = $password;
$_SESSION['login'] = $login;
$_SESSION['id']= $myrow['id'];

if($_POST['save'] == 1) {
setcookie("login", $login, time()+9999999);
setcookie("password", $password, time()+9999999);
}

echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>";
} else {
$select = mysql_query(" SELECT `ip` FROM `user_error` WHERE `ip` = '{$ip}' ");
if(mysql_num_rows($select) > 0) mysql_query(" UPDATE `user_error` SET `col` = `col` + 1, `date` = NOW() WHERE `ip` = '{$ip}' ");
else mysql_query(" INSERT INTO `user_error`(`ip`,`date`,`col`) VALUES ('{$ip}',NOW(),1) ");

exit ("Извините, введённый вами логин или пароль неверный.");
}
?>


Извините, введённый вами логин или пароль неверный.

Спустя 2 часа, 25 минут, 14 секунд (8.12.2010 - 21:09) kovaldm написал(а):
Ясно, а в БД-то они(пасворды как записаны) md5 или md5+твои изменения/добавления/реверсы?

Спустя 20 минут, 58 секунд (8.12.2010 - 21:30) RCuPeR написал(а):
Уже просто md5.

Задолбал меня этот гемор, вообще шифрование убрал.

Спустя 5 минут, 54 секунды (8.12.2010 - 21:35) kovaldm написал(а):
Мож ошибка какая, воткни
echo mysql_error();
после запроса.
И максимальную длину текста в ячейке проверь.

Спустя 7 минут, 20 секунд (8.12.2010 - 21:43) RCuPeR написал(а):
Пока забил на этот вопрос. Вернусь как будет времени по-больше сейчас ещё много работы. Нужно как-то организовать заргузку и обработку аватарки.
Для начала попробую это. Другого не нашёл =(


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

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