PHP уроки для начинающих

PHP уроки

  • Главная
  • PHP с чего начать?
  • Уроки PHP
  • Массивы
  • Функции
  • MySQL
  • Форум
Меню

  • PHP - с чего начать?
  • Уроки PHP
  • Функции
  • Массивы
  • Denwer
  • MySQL
  • Информация
  • Dreamweaver уроки
  • Галерея
  • Как здесь качать?
  • КНИГИ

Связаны

  • Доставка Грузов Из Москвы, Питера: Автоперевозки Москва. Транспортные Поисковые Системы.

Что нового?
Как создать свой сайт? Урок третий.
Загрузка файлов
Регистрация PHP
Как создать свой сайт? Урок второй.
Как создать свой сайт?
Размер изображения
Index.php

Новости на email
Подпишись на новости.
Уроки PHP на email.


Имя(login):

*Ваш email:


Календарь
Май (2012)
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031   

ИГРЫ Компьютерные, настольные, детские конструкторы, карточные игры, головоломки.
on-books.ru
 
Комментарии
Текст
сообщениясбрасы
ваются все
настройки
мозилы+удаляютс
я в...
"Сейчас
откройте
страничку в
браузере. Для
этого щёлкни...
Спасибо за
уроки
спосиба для
помщ
Читать учитесь.
 
TOP5-уроки
1.  Привет, МИР! - 62109
2.  Метод GET - 35587
3.  Как вставить картинку в скрипт PHP. - 33564
4.  Как настроить Adobe Dreamweaver для работы с сайтом. - 29804
5.  Метод POST - 29177

Регистрация PHP

Главная » Уроки PHP » Регистрация PHP

PHP урок № 338

Регистрация на сайте. PHP скипт.

Регистрация пользователей на сайте состоит из нескольких блоков кода, но с точки зрения пользователя это лишь ввод логина и пароля для аутентификации. На самом деле, хорошо построенная система регистрации достаточно сложна и не имеет смысла выдумывать велосипед и писать самостоятельно, то что уже много раз проверенно и написано другими программистами. Я лишь в этом уроке попробую объяснить и предложить вам, отличный код, используемый и мной в том числе, из великолепной книги PHP5 и MYSQL библия пользователя. И так для того чтоб реализовать задуманное прежде всего следует создать блок регистрации пользователя, чем мы сейчас и займёмся.

Регистрация

Определимся с условиями, которым должна отвечать система регистрации.
  • Проверка наличия уникального адреса электронной почты при каждой регистрации.
  • Предоставление пользователям возможности самостоятельно выбирать имена пользователей, которые должны быть уникальными.
  • Предоставление пользователям возможности выбирать собственные пароли, которые затем шифруются по методу однонаправленного шифрования.
  • Подтверждение регистрации новых пользователей путём отправки по электронной почте автоматически формируемого письма, что позволяет уменьшить объём спама и сократить количество пользователей, пытающихся провести фиктивную регистрацию.
Однонаправленное шифрование.
По своей сути однонаправленное шифрование практически является вычислением хэша md5. За основу берётся строка любой длинны и при помощи алгоритма md5 получаем 32-х символьную шестнадцатеричную строку, которая является слепком, отпечатком взятой строки (читайте пароля). Для подбора пароля при таком виде шифрования потребуются значительные вычислительные мощности и довольно продолжительное время. Совпадения хэша может стать вероятным лишь при очень больших объёмах обрабатываемых данных.
От себя хочу заметить когда писалась эта книга, таких мощностей вычислительных не существовало. Сейчас алгоритм md5 не является настолько надёжным как ранее, хотя большинство программистов используют этот алгоритм при шифровании. В данном конкретном случаи надо оценивать риски. Поскольку наш сайт всё таки для начинающих программистов, то вряд ли ваш код по настоящему кого то заинтересует в плане взлома аккаунта. Но для тех кто не уверен в этом, предлагаю воспользоваться более надёжным алгоритмом, это - sha1. Функция в php sha1().
register_funcs.php
В листинге ниже, следует изменить строку http://localhost/confirm.php?hash=$hash&email=$encoded_email указав вместо localhost свой домен и далее путь до файла confirm.php

Листинг № 1 - Скрипт файла register_funcs.php. В нём имеются все функции относящиеся к системе регистрации. Эти функции вызываются другими скриптами системы регистрации.

<?php

// Подключаемся к БД
include_once('db_vars.php');

// Строка, используемая для md5 шифрования. Вы можете переместить её в файл
// вне дерева веб-документов для большей безопасности.
$supersecret_hash_padding = 'О сколько нам открытий чудных...';


function 
user_register() {
  
// Эта функция будет работать только с суперглобальными массивами.
  
global $supersecret_hash_padding;

  
// Проверяем данные от пользователя на соответствие заданным параметрам, условиям.
  
if (strlen($_POST['user_name']) <= 25 && strlen($_POST['password1']) <= 25 && 
(
$_POST['password1'] == $_POST['password2']) && 
strlen($_POST['email']) <= 50 && validate_email($_POST['email'])) {
    
// Проверка имени пользователя и пароля
    
if (account_namevalid($_POST['user_name']) || strlen($_POST['password1'] >= 6)) {

      
$user_name = strtolower($_POST['user_name']);
      
$user_name = trim($user_name);
      
$email= $_POST['email'];
      
// Сопоставление логина и email, заявленных новым пользователем, с уже имеющимися в БД
      // В БД не должно найтись совпадений, ни логину не email.
      
$query = "SELECT user_id
                FROM user
                WHERE user_name = '$user_name'
                OR email = '$email'"
;
      
$result = mysql_query($query);
      if (
$result && mysql_num_rows($result) > 0) {
        
$feedback = 'ОШИБКА - Имя пользователя или адрес электронной почты уже существует';
        return 
$feedback;
      } else {
    
$first_name = $_POST['first_name'];
    
$last_name = $_POST['last_name'];
        
$password = md5($_POST['password1']);
    
$user_ip = $_SERVER['REMOTE_ADDR'];
        
// Создайте новый хэш для вставки в БД и подтверждение по электронной почте
        
$hash = md5($email.$supersecret_hash_padding);

        
$query = "INSERT INTO user (user_id, user_name, first_name, last_name, 
password, email, remote_addr, confirm_hash, is_confirmed, date_created)
                  VALUES ('', '$user_name', '$first_name', '$last_name', 
'$password', '$email', '$user_ip', '$hash', 0, NOW())"
;
        
$result = mysql_query($query);
        if (!
$result) {
          
$feedback = 'ОШИБКА - Ошибка базы данных';
          
$feedback .= mysql_error();
          return 
$feedback;
        } else {
          
// Отправить подтверждение по электронной почте
          
$encoded_email = urlencode($_POST['email']);
          
$mail_body = <<< EOMAILBODY
Спасибо за регистрацию на LPHP.RU. Щелкните по этой ссылке для подтверждения регистрации:

http:??localhost/confirm.php?hash=$hash&email=$encoded_email

Как только вы увидите подтверждающее сообщение, вы будете зарегистрированы в LPHP.RU
EOMAILBODY;
          
mail ($email, 'LPHP.RU registration Confirmation', $mail_body,
 
'From: noreply@example.com');

      
// Give a successful registration message
          
$feedback = 'Вы успешно зарегистрировались.
 Вы вскоре получите подтверждение по электронной почте'
;
          return 
$feedback;
        }
      }
    } else {
      
$feedback =  'ОШИБКА - Имя пользователя или пароль являются недопустимыми';
      return 
$feedback;
    }
  } else {
    
$feedback = 'ОШИБКА - Пожалуйста, заполните все поля правильно';
    return 
$feedback;
  }
}


function 
account_namevalid() {

  
// должны иметь по крайней мере один символ
  
if (strspn($_POST['user_name'],
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-") == 0) {
    return 
false;
  }
 
  
// должна содержать все допустимые символы
  
if (strspn($_POST['user_name'],
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_")
 != 
strlen($_POST['user_name'])) {
    return 
false;
  }

  
// минимальная и максимальная длина
  
if (strlen($_POST['user_name']) < 5) {
    return 
false;
  }
  if (
strlen($_POST['user_name']) > 25) {
    return 
false;
  }

  
// Запрещённый логины для регистрации
  
if (eregi("^((root)|(bin)|(daemon)|(adm)|(lp)|(sync)|(shutdown)|(halt)|(mail)|(news)|(uucp)
|(operator)|(games)|(mysql)|(httpd)|(nobody)|(dummy)|(www)|(cvs)|(shell)|(ftp)|(irc)|(debian)
|(ns)|(download))$"
, $_POST['user_name'])) {
    return 
false;
  }
  if (
eregi("^(anoncvs_)", $_POST['user_name'])) {
    return 
false;
  }

return 
true;
}


function 
validate_email($email) {
   if(
preg_match("|^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $email))
           {
             return 
$email;
           }
}


function 
user_confirm() {
  
// Эта функция будет работать только с суперглобальными массивами
  
global $supersecret_hash_padding;

  
// Проверка на соответствие указанного адреса при регистрации и подтверждение этого адреса
  
$new_hash = md5($_GET['email'].$supersecret_hash_padding);
  if (
$new_hash && ($new_hash == $_GET['hash'])) {
    
$query = "SELECT user_name
              FROM user
              WHERE confirm_hash = '$new_hash'"
;
    
$result = mysql_query($query);
    if (!
$result || mysql_num_rows($result) < 1) {
      
$feedback = 'ОШИБКА - Hash не найден';
      return 
$feedback;
    } else {
      
// Подтверждение регистрации через email указанный пользователем при регистрации
      // Обновление поля is_confirmed, т.е. зарегистрирован и проверен.
      
$email = $_GET['email'];
      
$hash = $_GET['hash'];
      
$query = "UPDATE user SET email='$email', is_confirmed=1 WHERE confirm_hash='$hash'";
      
$result = mysql_query($query);
      return 
1;
    }
  } else {
    
$feedback = 'ОШИБКА - Значения не совпадают';
    return 
$feedback;
  }
}
function 
site_header($autor)
{
    echo 
'<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>'
.$autor.'</title>
</head>

<body>'
;
}

function 
site_footer()
{
    echo 
'</body></html>';
}
?>
Обратите внимание, здесь при регистрации пользователя применяется алгоритм md5, однонаправленного шифрования почтового адреса (строка: $hash = md5($email.$supersecret_hash_padding)). К email добавляется зашифрованная, функцией md5(), секретная строка известная только создателю кода. Такой способ используется для подтверждения того адреса эл.почты, который заявлен пользователем и с которого идёт непосредственно подтверждение. Проще сказать проверяется полное совпадения этих двух адресов и как вывод, что это один и тот же адрес, т.е. заявленный при регистрации email подтверждён.
register.php

Листинг № 2 - Скрипт файла register.php, который выводит на монитор форму регистрации и вызывает функцию register(), после подключения файла register_funcs.php

<?php

/*****************************************************
 * Страница регистрации нового пользователя. 
 * Ссылки на эту страницу имеются в заголовках всех прочих страниц, 
 * которые предназначены для пользователей, выходящих из системы и 
 * входящих в систему. Тем не менее в проекте узла могут обнаруживаться дефекты; 
 * вполне возможно, что будет решено предоставлять доступ к этой странице только для посетителей,
 * которые ещё не вошли в систему. 
 *****************************************************/

require_once('register_funcs.php');

if (
$_POST['submit'] == 'Зарегистрироваться') {
  
$feedback = user_register();

  
// Обратная связь
  
$feedback_str = "<P class=\"errormess\">$feedback</P>";
} else {
  
// Вывести форму на экран
  
$feedback_str = '';
}


// ----------------
// Отображения формы
// ----------------

// Название страницы и шапка
site_header('Регистрация на LPHP.RU');

// В сочетании с вложенным документом не могут использоваться суперглобальные массивы
$php_self = $_SERVER['PHP_SELF'];

$reg_str = <<< EOREGSTR
<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 ALIGN=CENTER WIDTH=621>
<TR>
  <TD ROWSPAN=10><IMG WIDTH=15 HEIGHT=1 SRC="../images/spacer.gif"></TD>
  <TD WIDTH=606></TD>
</TR>
<TR>
 <TD>

$feedback_str
<P CLASS="left"><B>РЕГИСТРАЦИЯ</B><BR>
Заполните эту форму и подтверждение о регистрации будет направлено вам на указанный email. 
Как только вы нажмете на ссылку в письме, ваша учетная запись будет подтверждена 
и вы cможете зайти на сайт.</P>
<FORM ACTION="$php_self" METHOD="POST">
<P CLASS="bold">Имя<BR>
<INPUT TYPE="TEXT" NAME="first_name" VALUE="$first_name" SIZE="20" MAXLENGTH="25"></P>
<P CLASS="bold">Фамилия<BR>
<INPUT TYPE="TEXT" NAME="last_name" VALUE="$last_name" SIZE="20" MAXLENGTH="25"></P>
<P CLASS="bold">Логин<BR>
<INPUT TYPE="TEXT" NAME="user_name" VALUE="$user_name" SIZE="10" MAXLENGTH="25"></P>
<P CLASS="bold">Пароль<BR>
<INPUT TYPE="password" NAME="password1" VALUE="" SIZE="10" MAXLENGTH="25"></P>
<P CLASS="left"><B>Пароль</B> (повторить)<BR>
<INPUT TYPE="password" NAME="password2" VALUE="" SIZE="10" MAXLENGTH="25"></P>
<P CLASS="left"><B>Email</B> (требуется для подтверждения регистрации)<BR>
<INPUT TYPE="TEXT" NAME="email" VALUE="$email" SIZE="30" MAXLENGTH="50">
</P>
<P><INPUT TYPE="SUBMIT" NAME="submit" VALUE="Зарегистрироваться"></P>
</FORM>

 </TD>
</TR>
</TABLE>
EOREGSTR;
echo 
$reg_str;

site_footer();

?>
Рис. 1
После того как процедура регистрации пройдена, пользователь получает на указанный email. Письмо со ссылкой, по которой он должен перейти, что бы подтвердить регистрацию. В этой ссылке записан хэш этого подтверждения. Он состоит из email указанного пользователем и секретной строки, которую определили мы в файле register_funcs.php переменная $supersecret_hash_padding. Пользователь не сможет зарегистрироваться пока не получит письмо на указанный адрес эл.почты.
При таком подходе осуществляется принцип разделения окончательного значения хэша, т.е. пользователь знает только свой email, и он может быть представлен одной шестнадцатеричной строкой, тогда как мы имеем секретную строку (её ещё называют - соль), которую мы приписываем к email прежде, чем узнать хэш полного подтверждения, которое мы и отправляем на адрес электронной почты юзера. Тем самым при проверке мы легко сможем подтвердить или опровергнуть email, когда пользователь нажмет на ссылку в письме, по отправленному нам хэш методом GET.
confirm.php

Листинг № 3 - Скрипт confirm.php. Файл проверки и подтверждения регистрации вновь прибывшего пользователя.

<?php

/*****************************************************
 * Страница подтверждения регистрации нового пользователя.
 * Возможность перехода на эту страницу должна обеспечиваться 
 * только с помощью ссылки, представленной в электронном письме.
 *****************************************************/


require_once('register_funcs.php');


site_header('Подтверждение регистрации');

if (
$_GET['hash'] && $_GET['email']) {
  
$worked = user_confirm();
} else {
  
$feedback_str = "<P class=\"errormess\">ОШИБКА - Не верный линк.</P>";
}


if (
$worked != 1) {
  
$noconfirm = '<P class="errormess">Что-то пошло не так. 
Отправить сообщение на admin@example.com с указанием причины.
 Или перейдите на страницу login.php.</P>'
;
} else {
   
$confirm = '<P class="big">Регистрация подтверждена. 
<A HREF="login.php">Войдите</A> чтобы начать просмотр сайта.</P>'
;
}

$page = <<< EOPAGE

<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 ALIGN=CENTER WIDTH=621>
<TR>
  <TD><IMG WIDTH=15 HEIGHT=1 SRC=../images/spacer.gif></TD>
  <TD WIDTH=606 CLASS=left>
  $feedback_str
  $noconfirm
  $confirm
  </TD>
</TR>
</TABLE>
EOPAGE;

echo 
$page;

site_footer();

?>
Таблица user в базе данных может выглядеть так:
--
-- Структура таблицы `user`
--

CREATE TABLE IF NOT EXISTS `user` (
  `user_id` int(6) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(25) NOT NULL,
  `first_name` varchar(25) NOT NULL,
  `last_name` varchar(25) NOT NULL,
  `password` varchar(32) NOT NULL,
  `email` varchar(50) NOT NULL,
  `remote_addr` varchar(16) NOT NULL,
  `confirm_hash` varchar(32) NOT NULL,
  `is_confirmed` smallint(2) NOT NULL,
  `date_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`user_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7 ;

--
-- Дамп данных таблицы `user`
--
Файл соединения с БД должен быть настроен согласно вашим данным на подключение к базе данных.
db_vars.php

Листинг № 4 - Скрипт файла db_vars.php. Конфигурационный файл, для подключения к базе данных.

<?php
$db_host 
= 'localhost';
$db_user = 'root';
$db_password = '';
$database = 'registration';

mysql_connect($db_host, $db_user, $db_password);
mysql_select_db($database);

?>

Форма регистрации

login_funcs.php

Листинг № 5 - Скрипт файла login_funcs.php. Функции входа в систему и выхода из неё.

<?php

// Подключаемся к БД
include_once('db_vars.php');

// Строка применяемая для шифрования по алгоритму md5
$supersecret_hash_padding = 'Однажды в студёную зимнюю пору...';


$LOGGED_IN = false;
unset(
$LOGGED_IN);


function 
user_isloggedin() {
  
  global 
$supersecret_hash_padding, $LOGGED_IN;

  
// Если проверки хэшированных значений уже были выполнены,  
  // возвратить заранее заданное значение переменной
  
if (isSet($LOGGED_IN)) {
    return 
$LOGGED_IN;
  }
  if (
$_COOKIE['user_name'] && $_COOKIE['id_hash']) {
    
$hash = md5($_COOKIE['user_name'].$supersecret_hash_padding);
    if (
$hash == $_COOKIE['id_hash']) {
      return 
true;
    } else {
      return 
false;
    }
  } else {
    return 
false;
  }
}


function 
user_login() {

  if (!
$_POST['user_name'] || !$_POST['password']) {
    
$feedback = 'ОШИБКА - Отсутствует имя пользователя или пароль';
    return 
$feedback;
  } else {
    
$user_name = strtolower($_POST['user_name']);
    
$password = $_POST['password'];

    
$crypt_pwd = md5($password);
    
$query = "SELECT user_name, is_confirmed
              FROM user
              WHERE user_name = '$user_name'
              AND password = '$crypt_pwd'"
;
    
$result = mysql_query($query);
    if (!
$result || mysql_num_rows($result) < 1){
      
$feedback = 'ОШИБКА - Пользователь не найден или пароль неверный';
      return 
$feedback;
    } else {
      if (
mysql_result($result, 0, 'is_confirmed') == '1') {
           
user_set_tokens($user_name);
           return 
1;
      } else {
           
$feedback = 'ОШИБКА - Вы, возможно, не подтвердили свою регистрацию';
           return 
$feedback;
      }
    }
  }
}


function 
user_logout() {
  
setcookie('user_name', '', (time()+2592000), '/', '', 0);
  
setcookie('id_hash', '', (time()+2592000), '/', '', 0);
}


function 
user_set_tokens($user_name_in) {
  global 
$supersecret_hash_padding;
  if (!
$user_name_in) {
    
$feedback =  'ОШИБКА - Нет имени пользователя';
    return 
false;
  }
  
$user_name = strtolower($user_name_in);
  
$id_hash = md5($user_name.$supersecret_hash_padding);

  
setcookie('user_name', $user_name, (time()+2592000), '/', '', 0);
  
setcookie('id_hash', $id_hash, (time()+2592000), '/', '', 0);
}

?>
login.php

Листинг № 6 - Скрипт файла loin.php. Форма регистрации.

<?php

/*****************************************************
 * Страница регистрации. 
 * Ссылки на эту страницу имеются в заголовках всех прочих страниц, 
 * которые предназначены для пользователей, выходящих из системы.                                 
 **************************************************/

require_once('login_funcs.php');

// Если пользователь уже вошёл в систему, вызвать функцию user_logout,
// что бы он вышел из системы.
// Пользователь не должен иметь возможности видеть эту страницу,
// после того как он вошёл в систему.
// Это позволяет использовать один и тот же сценарий формирования 
// страницы идля входа в систему и для  выхода из неё.
if ($LOGGED_IN == user_isloggedin()) {
  
user_logout();
  
$_COOKIE['user_name'] = '';
  unset(
$LOGGED_IN);
}

if (
$_POST['submit'] == 'Войти') {
  if (
strlen($_POST['username']) <= 25 && strlen($_POST['password']) <=25) {
    
$feedback = user_login();
  } else {
    
$feedback = 'ОШИБКА - Имя пользователя и пароль слишком длинные';
  }
  if (
$feedback == 1) {
    
// Перенаправить пользователя на главную страницу сайта, 
    // после удачного входа в систему.
    
header("Location: index.php");
  } else {
    
$feedback_str = "<P class=\"errormess\">$feedback</P>";
  }
} else {
  
$feedback_str = '';
}


// ----------------
// DISPLAY THE FORM
// ----------------
include_once('header_footer.php');
site_header('Авторизация');

// Superglobals don't work with heredoc
$php_self = $_SERVER['PHP_SELF'];

$login_form = <<< EOLOGINFORM
<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 ALIGN=CENTER WIDTH=621>
<TR>
  <TD ROWSPAN=2><IMG WIDTH=15 HEIGHT=1 SRC=../images/spacer.gif></TD>
  <TD WIDTH=606 HEIGHT=1><IMG WIDTH=606 HEIGHT=1 SRC=../images/spacer.gif></TD>
</TR>
<TR>
 <TD>

$feedback_str
<P CLASS="bold">LOGIN</P>
<FORM ACTION="$php_self" METHOD="POST">
<P CLASS="bold">Логин<BR>
<INPUT TYPE="TEXT" NAME="user_name" VALUE="" SIZE="10" MAXLENGTH="15"></P>
<P CLASS="bold">Пароль<BR>
<INPUT TYPE="password" NAME="password" VALUE="" SIZE="10" MAXLENGTH="15"></P>
<P><INPUT TYPE="SUBMIT" NAME="submit" VALUE="Войти"></P>
</FORM>

 </TD>
</TR>
</TABLE>
EOLOGINFORM;
echo 
$login_form;

site_footer();

?>
index.php
Страница index.php, представленная в листинге ниже, скорее для примера, чтоб вы могли отследить вход в систему. На самом деле конечно вам следует внедрить систему регистрации в свой сайт самостоятельно, либо обратиться к профессионалам.

Листинг № 7 - HTML разметка файла index.php - для примера.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head>

<body>Вы вошли в систему!
</body>
</html>
На данном этапе основные файлы регистрации созданы и можно считать, что процесс регистрации и проверку (аутентификацию), мы описали и сделали. С помощью этих файлов уже можно регистрировать пользователей в БД, просто создайте все эти файлы в одной папке. Начинается всё с файла register.php, который выводит форму для регистрации.
Следующим шагом будет расширение системы регистрации и создания инструментов для пользователя. Такие например как смена пароля, восстановление забытого пароля, изменение конфиденциальных данных пользователя и т.д.

Продолжение следует...

SETTER © LPHP.RU
Администрация сайта
15.09.2011 16:50:43


Рекомендованные уроки этого раздела:
  • Index.php
  • Как вставить картинку в скрипт PHP.
  • Как вставить Flash-кнопку в страницу сайта?
  • Как создать базу данных и таблицу из скрипта PHP.

НАПИШИТЕ СВОЙ КОММЕНТАРИЙ

Имя:

Введите цифры с картинки:

КОММЕНТАРИИ

Имя: berlion     Время: 18.11.2011 18:57:11
  • Спасибо!
  • Имя: Сергей     Время: 04.12.2011 21:20:48
  • Огромное спасибо
  • Имя: Юрок     Время: 10.12.2011 06:49:43
  • Отлично, как раз искал хорошее готовое решение. Спасибо автору.
  • Имя: Аист     Время: 12.12.2011 22:56:11
  • На странице register.php вижу строку Parse error: syntax error, unexpected T_SL in W:\html\domain.ru\test\register.php on line 23 что делать?
  • Имя: SETTER     Время: 13.12.2011 16:48:04
  • Предполагаю, что вы изменили файл register.php, потому что 23 строка в оригинале пустая, следовательно вам стоит, либо разобраться как работает весь код из примера урока и только потом вносить изменения, либо разбираться самостоятельно. Я смогу помочь лишь в ошибках своего листинга, если таковые будут обнаружены. Судя по ошибки могу сказать, что у вас незначительная ошибка синтаксиса, возможно нет точки запятой или ещё что-то в этом роде. Смотрите строку 23 и выше от неё проверяйте код на предмет ошибок.
  • Имя: Аист     Время: 13.12.2011 20:08:46
  • Понял, что ругается на строку: $reg_str =
  • Имя: Владимир     Время: 07.01.2012 19:42:04
  • На странице register.php вижу строку Parse error: syntax error, unexpected T_SL in X:\\home\\localhost\\www\\demo\\register.php on line 34 - копировал все как у Вас. Подскажите как решить?
  • Имя: SETTER     Время: 07.01.2012 19:50:56
  • Судя по ошибки могу сказать, что у вас незначительная ошибка синтаксиса, возможно нет точки запятой или ещё что-то в этом роде. Смотрите строку 34 и выше от неё проверяйте код на предмет ошибок.
  • Имя: Viper     Время: 15.01.2012 00:20:29
  • Здравствуйте, у меня возникли вопросы касательно кода представленного выше. 1) Откуда взялись некоторые переменные(к примеру, $id_hash и $user_name_in)? 2)А также функции для генерации футера и хедера (site_footer(); и site_header();) Заранее извиняюсь, если что-то не заметил в изложенном материале.
  • Имя: SETTER     Время: 15.01.2012 20:25:10
  • Ответ на первый вопрос: $id_hash - вводим просто новую переменную. $user_name_in - это аргумент функции user_set_tokens($user_name_in). Второй вопрос: здесь немного сложнее, точнее с вашей стороны совершенно законный вопрос. Так как была допущена мной, ошибка в коде. В файле register_funcs.php не прописаны как раз эти две функции site_footer() и site_header(). Так же поправил файл confirm.php.
  • Имя: Руслан     Время: 21.01.2012 19:34:13
  • Здравствуйте, напишите пожалуйста рабочую версию всей регистрации , для email для связи faqrus777@mail.ru
  • Имя: SETTER     Время: 22.01.2012 00:25:08
  • Рабочая версия представлена в этом уроке.
  • Имя: Constantine     Время: 02.03.2012 11:55:18
  • Я новичек в этом деле 2 день как изучаю html Сайт сделан на основе html avtor.php где ??? куда путь указать и внутри что О_О method для чего ? можно его убрать?
  • Имя: SETTER     Время: 05.03.2012 18:27:19
  • Constantine изучите HTML, а потом возможно поймёте надобность php. Сейчас урок этот для вас не нужен.
  • Имя: Alexxa     Время: 09.03.2012 11:33:56
  • страница login.php Parse error: syntax error, unexpected T_SL in Z:\\home\\localhost\\www\\Mynews2\\login.php on line 50 как это дело исправить
  • Имя: SETTER     Время: 09.03.2012 23:34:32
  • Не видя вашего кода не могу сказать точно, но ошибка синтаксиса. Возможно в строке выше не поставили точку с запятой или ещё что-то подобное.
  • Имя: nasty     Время: 13.03.2012 12:52:45
  • Здравствуйте, файл loin.php интересуют следующие строчки: // DISPLAY THE FORM // ---------------- include_once('header_footer.php'); site_header('Авторизация'); Где можно найти файл header_footer.php?
  • Имя: Эльдар     Время: 24.03.2012 11:49:13
  • А когда продолжение?))
  • Имя: SETTER     Время: 24.03.2012 22:08:08
  • Не могу сказать точно, кому срочно нужно, купите книгу или скачайте, там очень много интересного. Действительно, эта книга бестселлер по PHP. Там же и коды все есть.
  • Имя: Денис     Время: 28.03.2012 14:15:23
  • Спасибо огромнейшее! я так всеравно и не понял, как же просматривать информацию отправленную пользователем, или каким способом данные формы, не только регистрации, отправляются на хостинг сайта. Ну никак не могу сообразить?
  • Имя: SETTER     Время: 28.03.2012 18:32:14
  • Вам надо почитать урок "Метод POST" и "Метод GET" там подробно описывается технология пересылки данных именно одним из этих способов. Вероятно станет понятно что и как. Ну а если нет тогда пишите конкретно что именно не понятно, попробую объяснить.
  • Имя: Илья     Время: 29.04.2012 20:07:34
  • Parse error: syntax error, unexpected T_SL in C:\\Users\\Ilya\\Desktop\\domains\\test\\public_html\\register.php on line 35 вот что появляется при открытие register.php вот что там написано: с то строки с которой идет ошибка: $reg_str =
  • Имя: Андрей     Время: 30.04.2012 17:32:43
  • Об"ясните, 1) Пользователь зарегистрировался. 2) Даные записались в БД. 3) Пользователь вошёл. а как направить пользователя на его страницу? и как сделать например "Приветствую вас, (и им"я пользователя)"
  • Имя: SETTER     Время: 30.04.2012 20:12:23
  • Речь идёт, как я понял, о логике того как это сделать. Ну например так $name = 'Вася'; $a = TRUE; // Переменная содержит какое либо значение (TRUE либо FALSE) по завершении аутентификации if($a) { echo 'Приветствуем вас ' .$name. ' на сайте Феди. Через 5сек. вы будите перенаправлены на вашу страницу Загрузка...'; } else { echo 'Не правильный логин или пароль, '.$name .'!'; }

  • Copyright © 2009-2012 LPHP.RU