if (session_id() == '') {
session_start();
}
$string = "";
for ($i = 0; $i < 5; $i++) {
$string .= chr(rand(97, 122));
}
$_SESSION['rand_code'] = $string;
$dir = $_SERVER['DOCUMENT_ROOT'] . '/chat/capcha/fonts/verdana.ttf';
$image = @imagecreatetruecolor(170, 60) or die('Невозможно инициализировать GD поток'); // Создаём изображение
$black = imagecolorallocate($image, 0, 0, 0);
$color = imagecolorallocate($image, 200, 100, 90);
$white = imagecolorallocate($image, 255, 255, 255);
imagefilledrectangle($image, 0, 0, 399, 99, $white);
imagettftext($image, 30, 0, 10, 40, $color, $dir, $_SESSION['rand_code']);
header("Content-type: image/png");
imagepng($image);
Здесь в цикле генерируется строка из случайных чисел, при этом числа сразу преобразуются в символьные эквиваленты. Диапазон чисел 97-122 соответствует буквам латинского алфавита в диапазоне a-z по ASCII http://www.asciitable.com/ (http://www.asciitable.com/) . Полученный набор букв в виде строки сохраняется в переменную сессии, а затем оформляется в виде изображения.
21. Страница сохранения пользователя
За сохранение и обработку полученных при регистрации данных пользователя отвечает файл «save_user.php»
Листинг 37. save_user.php Путь: news/chat/admin/users/ save_user.php
<?php
error_reporting(E_ALL);
if (session_id() == '') {
session_start();
}
/* заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную */
if (isset($_POST['login'])) {
$login = $_POST['login'];
if (mb_strlen($login) < 2 or mb_strlen($login) > 15) { //проверяем длину логина
exit("Логин должен состоять не менее чем из 3 символов и не более чем из 15."); //останавливаем выполнение сценариев
}
if ($login == '') {
unset($login);
}
}
/* заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную */
if (isset($_POST['password'])) {
$password = $_POST['password'];
if (mb_strlen($password) < 3 or mb_strlen($password) > 15) { //проверяем длину пароля
exit("Пароль должен состоять не менее чем из 3 символов и не более чем из 15."); //останавливаем выполнение сценариев
}
if ($password == '') {
unset($password);
}
}
/* заносим введенный пользователем код в переменную $capcha, если он пустой, то уничтожаем переменную */
if (isset($_POST['capcha'])) {
$capcha = $_POST['capcha'];
if ($capcha == '') {