Красивая форма входа с каптчей
Красивая форма входа с каптчей
На момент написания статьи меня спросили - как сделать каптчу при входе. Я не стал лазить по просторам интернета в поисках оптимального варианта и слепил нечто подобное на каптчу на скорую руку.

Вот то, что видите на скрине - делаем сами. Следуем инструкции по установке и всё получится.

1. Самое важное - сделать проверку введённого кода. Открываем login.php и ищем:
$username=uc($_POST['username']);
  $password=uc($_POST['password']);

Следом добавим код:
$captcha=$_POST['captcha'];
  $pr=$_POST['pr'];
if ($captcha==NULL)
  {
  echo "<img src="images/error.png" align="middle"> Введите код с картинки!";
  if ($captcha == $pr)
  {

Теперь в самом конце ищем код:
<?
  }
  }
  }
}else{
include('header.php');
?>

Заменяем его новым:
<?
  }
  }
  }
  }else{
  echo "<img src="images/error.png" align="middle"> Неверный код!";
  }
  }
}else{
include('header.php');
?>

Далее ищем код:
<div align="center"><div id="authform">
<fieldset>
<div id="fieldheader"><center>.::Вход в аккаунт::.</center></div>
<br>

<form action='login.php' method='POST'>
<table width="100%" border="0" align="center">
  <tr>
  <td width="40%" align="right">

<label>Логин</label></p></td>
  <td width="60%" align="left"><input type='text' size='15' maxlength='25' name='username' autocomplete="off" value="" tabindex="1" /></td>
  </tr>
  <tr>
  <td width="40%" align="right">

<label>Пароль</label></p></td>
  <td width="60%" align="left"><input type='password' size='15' maxlength='25' name='password' autocomplete="off" value="" tabindex="2" /></td>
  </tr>
  <tr>
  <td colspan=2 align="center"><input type="submit" value="Войти" class="submit" tabindex="4" /></td>
  </tr>
</table>
</form>
</fieldset>
</div></div>

Заменим его на:
<div align="center"><fieldset><div id="fieldheader">.::Вход на сайт::.</div><br>
<center>
<b><font size: 16px><form action='login.php' method='POST'>  
<table style=";width:200px;"><tbody><tr><td style="vertical-align:top"><img src="/login.png"></td>  
  <td style="vertical-align:top">  
  <label>Логин</label>

  <input type='text' size='15' maxlength='25' name='username' autocomplete="off" value="" tabindex="1" />

  <label>Пароль</label>

  <input type='password' size='15' maxlength='25' name='password' autocomplete="off" value="" tabindex="2" /></td>  
  <tr><td colspan="2" style="vertical-align:top" align="center">
<?php  
  $i=1;
  do
  {
  $num[$i] = mt_rand(0,9);
  echo "<img src='img/".$num[$i].".gif' border='0' align='bottom' vspace='5px'>";
  $i++;
  }
  while ($i<5);
  $captcha = $num[1].$num[2].$num[3].$num[4];
  ?><input name="captcha" type="hidden" value="<?php echo $captcha;?>">
<input name="pr" style=" margin-bottom:11px" type="text" size="6" maxlength="4"><br>
<input type="submit" value="Войти" size="25" class="submit" tabindex="4" />

</td></tr></tbody></table>

</form></font></b> </fieldset>

С файлом login.php покончено. Теперь нам надо вывести форму входа на всех страницах сайта.

2. Открываем menuright.php и находим строки:
<?
}else{
  echo "<center><a href="register.php?r=".$elref."">Регистрация</a><br>";
  echo "<a href="login.php?r=".$elref."">Вход</a><br></center>";
}
?>

Меняем их на новые:
<?
}else{
  include('vhod.php');
}
?>

3. Необходимо сделать так, чтобы расстояние между цифрами каптчи исчезло. Открываем style.css и находим:
img {
    padding: 4px;
}

Меняем 4px на 0px

Если используете скрипт с сменой цвета блоков - меняете во всех файлах в папке css.

Вот и всё. Осталось залить файлы с архива в корень.





Рубрика: Бесплатное » Дополнения   |   Автор: Alex   |   Просмотры: 7119
Комментариев: 1
Публикаций: 0
ICQ: --
- 0 +
  Автор: zhenya86   |   Группа: Пользователи   |   Дата: 10 марта 2011  
че то не работает. выкидывает на пустую страницу login.php.
Комментариев: 5
Публикаций: 0
ICQ: 302909666
- 4 +
  Автор: Bux.Gabriels   |   Группа: V.I.P.   |   Дата: 21 апреля 2011  
Такая же проблема
Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.