Пишем скрипт регистрации и авторизации пользователей для сайта на PHP

10 Фев 2010

Добавлено (15.08.2010): Новая версия скрипта доступна по ссылке: SUM — Simple User Management
Сегодня я продолжу пополнять недавно рожденную рубрику моего блога «Web-мастер — ломастер» . Напишу как сделать авторизацию на сайте с помощью моего простого скрипта.

Скрипт написан на PHP, для хранения информации о пользователях я использовал базу данных MySQL.

Для удобства создадим файл в котором будет осуществляться подключение к БД. Этот файл мы будем инклудить ко всем остальным скриптам где требуется связь с БД.

Содержимое файла «connectdb.php»:

1
2
3
4
5
6
7
8
9
10
11
12
13
< ?
//данные о хосте, пользователе и базе данных
$host = 'localhost';
$user = 'root'; 
$pass = 'pass'; 
$dbname = 'test';
 
// подключаемся и выбираем бд, которую указали выше
if(!mysql_connect($host,$user,$pass))
  die('Не удалось подключиться к серверу MySql!');
elseif(!mysql_select_db($dbname))
  die('Не удалось выбрать БД!');
?>

Теперь напишем скрипт инсталяции, который будет создавать таблицу необходимую для хранения информации о пользователях.

Содержимое файла со скриптом инсталяции «install.php»:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
< ?
include('connectdb.php');// подключение к серверу MySql и выбор БД
 
// sql-скрипт для создания таблицы
$sql='CREATE TABLE users(
  id INT NOT NULL AUTO_INCREMENT,
  login VARCHAR(15),
  pass TEXT,
  email VARCHAR(150),
  PRIMARY KEY(id)
);';
 
//выполняем sql-запрос
if(!mysql_query($sql)){
  echo 'Ошибка при создании таблицы в БД!';
} else {
  echo 'Всё прошло отлично, таблица создана!';
}
?>

Пользователей нужно регистрировать — напишем для этого скрипт! Сразу скажу, что все вводимые данные не проверяются на правильность и скрипт уязвим для взломов, поэтому вам придётся самим доработать его как нужно.

Регистрация заключается в добавлении информации о пользователе (Логин, пароль…) в базу данных.

Создадим файл «register.php» и добавим в него следующее:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
< ?
include('connectdb.php');// подключение к серверу MySql и выбор БД
 
if (($_POST['login']!='') || 
    ($_POST['pass1']!='') || 
    ($_POST['pass2']!='') || 
    ($_POST['email']!='')) { // если все данные для регистрации введены, то продолжаем
    $pass1 = $_POST['pass1'];
    $pass2 = $_POST['pass2'];
 
    if (strcmp($pass1, $pass2) == 0) {// если пароли совпадают, то продолжаем
      $login = $_POST['login'];
      $email = $_POST['email'];
 
      //проверяем наличие в БД пользователя с логином $login
      $sql='SELECT * FROM users WHERE login='.$login; // скрипт для поиска по логину в таблице users
      if (!($res=mysql_query($sql)) || (mysql_num_rows($res) == 0)) { // если количество найденых записей ноль, то продолжаем
	  // sql-скрипт для добавления даных в таблицу
	  $sql = 'INSERT INTO users(login, pass, email) 
		  VALUES("'.$login.'", "'.$pass1.'", "'.$email.'")';
	  if(mysql_query($sql)) {// выполняем скрипт
	    echo 'Пользователь '.$_POST['login'].' успешно зарегистрирован! <a href="/index.php">Форма для входа.';
	  } else {
	    echo 'При регистрации произошла ошибка, <a href="/register.php">повторите попытку</a>.';
	  }
	} else echo 'Пользователь с таким логином уже зарегистрирован!';
    } else echo 'Введенные пароли не совпадают, <a href="/register.php">повторите попытку</a>.';
} else {
?>
  <form method='post' action='/register.php'>
  Введите Логин: <input type='text' size='30' name='login' /><br />
  Введите e-mail: <input type=text size=30 name='email' /><br />
  Пароль: <input type='password' name='pass1' size='30' /><br />
  Повторите пароль: <input type='password' name='pass2' size='30' /><br />
  <input type='submit' value='Регистрация' />
< ?  
}
?>
</form>

Далее нам нужно создать форму для авторизации и скрипт управления авторизацией.

Всё это будет находиться в файле «index.php»:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
< ?
/*!!!Чтобы не повредить работоспособности 
    скрипта выше этого комментария 
    не размещайте вообще ничего!!!*/
include('connectdb.php');// подключение к серверу MySql и выбор БД
$userinfo='';
$state='0';
if( (isset($_COOKIE['login'])) & (isset($_COOKIE['pass'])) ) {// если в куках лежит логин и зашифрованый пароля
  if (!isset($_GET['exit'])) {// если кнопка выход не была нажата
    $login=$_COOKIE['login'];
    $pass=$_COOKIE['pass'];
 
    // проверяем наличие пользователя в БД и достаём оттуда пароль
    $sql="SELECT id, pass FROM users WHERE login='$login'";
    $res=mysql_query($sql);
    if(mysql_num_rows($res)>0){// если пользователь есть в БД
      $userinfo = mysql_fetch_array($res);// в этой переменной лежит пароль из БД
      if(strcmp($pass,md5($userinfo['pass'])) == 0) { //проверяем схожесть пароля из БД с паролем из куков
 
	// достаём все данные из БД
	$sql="SELECT * FROM users WHERE login='$login'";
	$res=mysql_query($sql);
	$userinfo=mysql_fetch_array($res); // в этой переменной будет лежать вся информация о пользователе из БД
	$time=time();
	// устанавливаем куки для запоминания статуса пользователя
	setcookie("login",$login,$time+1800);
	setcookie("pass",$pass,$time+1800);
	$state = 1;// статус, если 1, тогда пользователь авторизован
      }
    }
  } else {
    //обнуляем куки, если была нажата кнопка выход
    setcookie("login");
    setcookie("pass");
  }
}
if($state != 1) {// если после проверки куков, оказалось, что пользователь не авторизован, то идем дальше
  if( (isset($_POST['login'])) & (isset($_POST['pass'])) ){ // если пользователь ввёл логин и пароль
  $login = $_POST['login'];	
 
  // проверяем наличие пользователя в БД и достаём оттуда пароль
  $sql = "SELECT id, pass FROM users WHERE login='$login'";
  $res = mysql_query($sql);
    if(mysql_num_rows($res)>0) {// если пользователь есть в БД
      $userinfo = mysql_fetch_array($res);// в этой переменной лежит пароль из БД и номер пользователя
      $pass = $_POST['pass'];
      if(strcmp($pass,$userinfo['pass'])==0){
 
	// достаём все данные из БД
	$sql="SELECT * FROM users WHERE login='$login'";
	$res=mysql_query($sql);
	$userinfo=mysql_fetch_array($res);// в этой переменной будет лежать вся информация о пользователе из БД
	$time=time();
	// устанавливаем куки для запоминания статуса пользователя, пароль шифруем
	setcookie("login", $login, $time+1800);
	setcookie("pass", md5($pass), $time+1800);
	$state = 1;// статус, если 1, тогда пользователь авторизован
      }
    }
  }
}
if($state != 1) {
?>
<form method="post" action="/index.php">
Логин: <input type="text" size="30" name="login"/><br />
Пароль: <input type="password" name="pass" size="30"/><br />
<input type="submit" value="Войти"/>
</form>
<br /><a href="/register.php">Регистрация</a>
< ?
} else {
  echo 'Вы вошли на сайт!<br /> Ваш Логин: '.$userinfo["login"].'<br />Выш E-mail: '.$userinfo["email"].'<br /> <a href="/index.php?exit=y">Выход</a>';
}
?>

Если нужно проверить авторизован пользователь или нет, то проверяем переменную $state, она должна быть ровна 1. В массиве $userinfo содержится вся информация из БД об авторизованном пользователе.

Теперь проверим как это всё работает. В файле «connectdb.php» укажите свои настройки БД.

После этого нужно создать таблицу, для этого следуем в браузере «http://вашсайт.com/install.php» и смотрим результат выполнения скрипта.
Создание таблицы базы данных

Далее отправляемся на стартовую страницу «index.php».
Стартовая страница. Форма для входа.

Идём по ссылке «Регистрация», заполняем форму и жмём на кнопку «Регистрация».
Регистрационная форма
Регистрация

Наконец идём по ссылке «Форма для входа», вводим логин и пароль и наслаждаемся=)
Авторизация

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

Регистрация доменов в зоне RU всего за 99 рублей в год.

Отличный хостинг всего за 30 рублей в месяц.

Забобрить!
Запомнить эту страницу на Закладок.нет!
www.vaau.ru
Уважаемый читатель! Если мой блог Вам понравился, то предлагаю подписаться на обновление по RSS или по E-mail. У меня так же есть аккаунт в Twitter, за которым Вы можете следовать.

101 комментарий

# Ходус Андрей @ Израиль оставил(а) комментарий 11 Фев 2010 в 00:04

Спасибо за статью. Долго искал в своей литературе по PHP что-то подобное, так и не нашёл. Сохраняю в закладки.

Ответить
# ITSnezok оставил(а) комментарий 11 Фев 2010 в 02:10

Интересный скриптик, надо будет протестить.

Ответить
# ZeroXor оставил(а) комментарий 15 Фев 2010 в 01:20

>> Долго искал в своей литературе по PHP что-то подобное, так и не нашёл.
Так и хочется спросить: «Это в какой же литературе Вы, Андрей, искали?». Это же в любом самоучителе по PHP есть.

Ответить
# Крякер оставил(а) комментарий 15 Фев 2010 в 01:29

У меня тоже было тяжелое детство с самоучителями по PHP, в которых не было подобного.))

Ответить
# Антон Ахрамович оставил(а) комментарий 22 Фев 2010 в 16:18

Спасибо за статью. Но хочется заметить, что есть несколько замечаний:
1. Хорошим тоном считается хранение паролей в БД в зашифрованом виде, а при авторизации можно скажем сверять хранящийся в БД MD5 хеш пароля и свеже вычисленный хеш введёного пароля.
2. Зачем доставать из БД пароль и сверять его на сервере, после чего ещё и надо доставать заново полные сведенья о пользователе. В вашем случае всё может свестись к 1 запросу («SELECT * FROM users WHERE login=’$login’ AND pass = ‘$pass’») и проверке: если колличество вернувшихся строк > 0 авторизировать, = 0 – не авторизировать. В случае автоизации у вас сразу есть данные о пользователе.
3. У вас данные с формы подставляются в SQL запрос напрямую – это очень плохо, т.к. в этом случае возможна SQL injection. Хорошим тоном будет обработка всех переданых через форму данных функцией mysql_real_escape_string

Ответить
# Крякер оставил(а) комментарий 22 Фев 2010 в 16:29

на счет третьего пункта. Я писал, что проверок никаких не производится, поэтому скрипт может быть уязвимым.
А на счет 1-го и 2-го. Будет время подкорректирую скрипт. Можно будет и проверку от инъекций сделать.

Ответить
# Просто_Я оставил(а) комментарий 08 Мар 2010 в 13:32

Мда.. Тут о защите говорить нечего и обработать данные htmlspecialchars и т.п пару минут. Разметка будет хромать для xhtml документов

Ответить
# Крякер оставил(а) комментарий 08 Мар 2010 в 21:44

Просто_Я, если вы заметили, то файлы вообще не являются html документами. Нету обязательных тегов html, body и других… В рамках этой статьи я не планировал научить писать валидный (x)html код.
Всем этим я просто хотел показать, как можно разработать такой скрипт и дать толчок для написания более сложного php-кода.

Ответить
# rustam оставил(а) комментарий 21 Мар 2010 в 23:50

я установил, но выдает ошибку типа
Warning: Cannot modify header information – headers already sent by (output started at index.php:1) in index.php on line 60

Warning: Cannot modify header information – headers already sent by (output started at index.php:1) in index.php on line 61

и еще знак типа п>>i, как его убрать

Ответить
# Крякер оставил(а) комментарий 22 Мар 2010 в 00:13

в файле index.php видели надпись?
«/*!!!Чтобы не повредить работоспособности
скрипта выше этого комментария
не размещайте вообще ничего!!!*/»
Вы ничего там не размещали? Если вы его инклудите, то нужно инклудить в самом начале файла.

>>и еще знак типа п>>i, как его убрать
А где у вас такой знак?

Ответить
# Антон Ахрамович оставил(а) комментарий 22 Мар 2010 в 10:23

>>и еще знак типа п>>i, как его убрать
Это символ, который виндвовс добавляет в файлы с кодировкой UTF8 для более лёгкого распознавания. Все вышеперечисленые ошибки как раз из-за него.

Ответить
# Илья оставил(а) комментарий 26 Апр 2010 в 00:32

Единственный работающий скрипт.

Ответить
# Никита Крякер оставил(а) комментарий 26 Апр 2010 в 18:52

Рад, что кому-то смог помочь)

Ответить
# 12 оставил(а) комментарий 28 Апр 2010 в 21:45

Скрипт классный,Спасибо!))))) а можно сделать так,чтобы после регистрации создавалась страничка пользователя??? а то так получается и смысла регистрации нет(

Ответить
# Никита Крякер оставил(а) комментарий 28 Апр 2010 в 22:16

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

Ответить
# Маркел оставил(а) комментарий 10 Май 2010 в 23:55

Огромное спасибо.То что искал.Как раз этот скрипт и нужен был

Ответить
# Никита Крякер оставил(а) комментарий 11 Май 2010 в 01:37

Очень рад, что скрипт вам понадобился))

Ответить
# Alex оставил(а) комментарий 22 Май 2010 в 23:57

при установке столкнулся с проблемой: не проходит проверка на наличие зарегистрированного пользователя.

//проверяем наличие в БД пользователя с логином $login
$sql=’SELECT * FROM users WHERE login=’.$login; // поиск по логину в таблице users
if (!($res=mysql_query($sql)) || (mysql_num_rows($res) == 0)) { // если количество найденых записей ноль, то продолжаем

тут что то не так. в моем случае я могу зарегить сколько угодно пользователей с одинаковым ником.
плюс к этому проходит на ура регистрация с пустыми полями пароля.
подскажите как исправить? и как сделать «обязательное» поле?

заранее благодарю. в основном скрипт послужил как раз тем толчком) Спасибо!!

Ответить
# castnet оставил(а) комментарий 31 Май 2010 в 21:24

Огромное спасибо, как раз то, что я искал

Ответить
# Макс оставил(а) комментарий 01 Июн 2010 в 00:02

а как сделать чтобы инфа о пользователе
(Вы вошли на сайт!
Ваш Логин: макс
Выш E-mail: prikol_13@mail.ru
Выход)
отображалась на всех страницах сайта???может кто помочь???

Ответить
# Роман оставил(а) комментарий 02 Авг 2010 в 03:22

Parse error: syntax error, unexpected $end in index.php on line 75
это конец файла. в нем только то что описано выше.
чего ему не хватает?

Ответить
# Никита Красноярцев оставил(а) комментарий 04 Авг 2010 в 15:55

Роман, там нет 75-ой строки.
А вообще желательно не копировать из статьи исходники, а скачать файл, на который я ссылался в конце статьи. Возможно вордпресс немного деформировал исходный текст скрипта.

Ответить
# Никита Красноярцев оставил(а) комментарий 14 Авг 2010 в 17:39

Уже почти готова новая версия скрипта. Внесено много значительных изменений, скрипт полностью написан на классах.

Ответить
# olevpa оставил(а) комментарий 22 Авг 2010 в 21:36

попалась эта статья. попробовал реализовать, но выдало ошибку:
Notice: Undefined index: login in /usr/home/…./register.php on line 5

Notice: Undefined index: pass1 in /usr/home/…./register.php on line 6

Notice: Undefined index: pass2 in /usr/home/…./register.php on line 7

Notice: Undefined index: email in /usr/home/…./register.php on line 8

Почему?

Ответить
# Никита Красноярцев оставил(а) комментарий 23 Авг 2010 в 02:16

@olevpa, это уведомления прежде всего предназначенные для разработчика. Советую Вам использовать переработанную версию этого скрипта, которую можно скачать на странице http://it-guest.net.ru/web/simple-user-management/
При использовании его таких ошибок у Вас возникнуть не должно, всё было проверено.
Иначе, если Вы всё таки решили остановиться на старом варианте, то поставьте в начале всех сценариев строку:
error_reporting(0);
Но вы должны знать, что этот скрипт не является безопасным и разрабатывался лишь для ознакомления.

Ответить
# pos оставил(а) комментарий 02 Сен 2010 в 23:05

А как установить его на сайт ?

Ответить
# Никита Красноярцев оставил(а) комментарий 03 Сен 2010 в 00:21

@pos, на странице http://it-guest.net.ru/web/simple-user-management/ всё описано

Ответить
# pam оставил(а) комментарий 04 Сен 2010 в 14:24

Никита привет! Как можно с тобой связаться? Есть тема, нужна помощь!

Ответить
# Никита Красноярцев оставил(а) комментарий 04 Сен 2010 в 18:52

@pam, В шапке блога визитная карточка

Ответить
# BraTOK оставил(а) комментарий 04 Сен 2010 в 21:23

Люди, я ищу HTML скрипт входа и авторизации, мож кто нибудь подскажит где можно их найти? я уже блин весь гугл обыскал там нифига нет(((

Ответить
# Никита Красноярцев оставил(а) комментарий 05 Сен 2010 в 00:45

@BraTOK, если вы не знаете, что с помощью html такого реализовать не возможно, то лучше уж вам не лезть в разработку, а заказать у кого нибудь или просто заниматься другими не менее интересными делами
. Если же бы все таки хотите этим заниматься, то начните читать книги о html, одними статьями в интернет здесь не обойтись.
Удачи вам во всем.

Ответить
# frolpaxa оставил(а) комментарий 12 Ноя 2010 в 19:05

Первая понятная статья про авторизацию!
Автору респект!!!
новичек в php, но уже пару дней подряд что-то подобное искал.
везде все как-то заумно, так можно и спугнуть начинающих php программеров.
а тут все по полочкам. только вот над безопасностью конечно нужно поработать… все равно спасибо автору!!!

Ответить
# Rabadan оставил(а) комментарий 24 Ноя 2010 в 22:09

У меня не работает ошибки выдает…
Parse error: syntax error, unexpected T_STRING, expecting ‘,’ or ‘;’ in Z:\home\kuba4i.ru\www\reg\install.php on line 18 такую при входе на install.php
и такую при входе
Parse error: syntax error, unexpected $end in Z:\home\kuba4i.ru\www\reg\register.php on line 39
register.php ну на все остальное тоже самое

Ответить
# Никита Красноярцев оставил(а) комментарий 24 Ноя 2010 в 22:16

@frolpaxa, пожалуйста=)

@Rabadan, вы скрипты копировали из статьи? Возможно из за этого ошибки. Лучше скачать по ссылке, которая в конце статьи.

Ответить
# Сергей оставил(а) комментарий 26 Ноя 2010 в 01:08

Спасибо разработчику, еще бы найти статью о sql инъекциях и о их предотвращении.

Ответить
# Васян оставил(а) комментарий 20 Дек 2010 в 15:31

Приятно. Спасибо за материальчик.

Ответить
# Влад оставил(а) комментарий 25 Дек 2010 в 17:28

У меня сайт на win1251 кодировке, а скрипт работает на utf8
Не удалось никак избавиться от каракулей. Как исправить?

Ответить
# Влад оставил(а) комментарий 25 Дек 2010 в 17:39

разобрался )

Ответить
# Влад оставил(а) комментарий 26 Дек 2010 в 03:48

Однако скрипт криво работает… Если логин цифровой то повторная регистрация не срабатывает, а если буквенный то дает регистрировать до бесконечности один и тот же логин

Ответить
# JeKa оставил(а) комментарий 07 Янв 2011 в 16:50

Спасибо!
Скрипт Супер!

Ответить
# Filot оставил(а) комментарий 07 Янв 2011 в 18:46

А как в страницу внедрить? В смысле что бы была проверка, пускать на страницу или нет. И что бы имя пользователя было, вставить в страницу если не то, форма авторизаций?=) На e-mail если можно) Спасибо! Классный скрипт!

Ответить
# Андрей оставил(а) комментарий 08 Янв 2011 в 03:43

Каракули вылазят, ну да фиг сними, поля заполняю, нажимаю регистрацию ииииии ничего… А вот таблица пользователей в базе данных создалась это да

Ответить
# Антон оставил(а) комментарий 26 Янв 2011 в 20:18

@rustam, пользуйтесь Notepad ++ и сохраните документ в кодировке UTF-8 (Без ВОМ)

Ответить
# Xmyrik оставил(а) комментарий 30 Янв 2011 в 11:54

ребят вопрос не совсем по теме..мне необходимо написать php док который будет сохранять пароль и логин введнный пользовавтелем в файле base.php(база данных)провидится закрытое соревнование по кс на отбор каманд для чемпионата..прошу помощь..как будет выглядеть документ в тхт ьщй mail grom_2008_84@mail.ru прошу помощи по скольку сам не мог7у сообразить как это сделать

Ответить
# Panzer оставил(а) комментарий 08 Фев 2011 в 20:08

Поч у меня не получается????
ERROR пишет

Ответить
# Panzer оставил(а) комментарий 08 Фев 2011 в 20:11

PHP Path Error!
The probable reasons:

Not installed PHP on your computer.
PHP is installed, but not specified the path to php.exe in Run Options.

Ответить
# The_Pupsa оставил(а) комментарий 10 Фев 2011 в 00:00

если ввести неправильные логин или пароль, то не будет никакой реакции. куда вставить вывод сообщения об ошибке, чтоб сообщение появлялось после введения неправильных данных, а не сразу после открытия index.php?

Ответить
# d-ovs оставил(а) комментарий 18 Фев 2011 в 15:34

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@peremenka.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Вот что выдаёт на все скрипты с сайтов вроде вашего. У меня php5, может в этом проблема?

Ответить
# d-ovs оставил(а) комментарий 19 Фев 2011 в 18:16

О, извини за тупой вопрос, я просто по привычке пихнул в папку /cgi-bin/, поэтому использовались компиляторы чего угодно(perl, bat и т.д.), но не php :D

Ответить
# psevdo оставил(а) комментарий 25 Фев 2011 в 17:45

index.php
if( (isset($_COOKIE['login'])) & (isset($_COOKIE['pass'])) )

isset тут не нужен!

Ответить
# Никита Красноярцев оставил(а) комментарий 25 Фев 2011 в 22:11

@psevdo, поясните пожалуйста, иначе: «Ваш комментарий тут не нужен!»

Ответить
# psevdo оставил(а) комментарий 26 Фев 2011 в 17:00

@Никита Красноярцев,

А что тут пояснять?
При обнулении кук они остаются, но с нулевыми значениями!
То есть они есть!
Поэтому выражение if(isset($_COOKIE['login'])) запустит код,
даже если в куках НЕ лежит логин и зашифрованый «пароля» :-D

Ответить
# Никита Красноярцев оставил(а) комментарий 27 Фев 2011 в 15:14

@psevdo, isset там необходим, также как и проверка на пустоту, которой нет. Ну, собственно, выборка из БД всё равно не пройдет. Хотя проверять на пустоту нужно, но только после проверки на существование куки(isset($_COOKIE['login'])), иначе вылезет Notice.

ПС:
Ну опечатался я в слове «пароль», зачем петросянить то?)

Ответить
# psevdo оставил(а) комментарий 28 Фев 2011 в 03:23

@Никита Красноярцев, если опустить isset это и будет проверкой на пустоту.
Зачем лишний раз базу нагружать заведомо ненужной проверкой?

if( $_COOKIE['login'] & $_COOKIE['pass'] ) и баста! ;)

Ответить
# Никита Красноярцев оставил(а) комментарий 28 Фев 2011 в 17:40

@psevdo, какую еще базу?
Попробуй вот такое условие выполни и перед этим поставь: error_reporting(E_ALL);

Ответить
# Алексей оставил(а) комментарий 21 Мар 2011 в 18:42

А как проверять то что пользователь вошел на других страницах сайта????

Ответить
# filot оставил(а) комментарий 26 Мар 2011 в 15:24

@Алексей, надо проверить переменую: $state=’0′; то есть State должен ровнятся 1 если нет (не авторизован), или 0 если да…
Вот примерный код добавь его не страницы куда нужно поставить проверку:

Вроде так…

Ответить
# Kolyani444 оставил(а) комментарий 28 Мар 2011 в 23:49

спс!!!

оч помогло!!

Ответить
# Вера оставил(а) комментарий 30 Мар 2011 в 12:12

Что-то не так. Все сделала по инструкции. Может использование скрипта регистрации и входа предполагает другие настройки в админке сайта, которые не указаны здесь. Уже неделю не могу разобраться. Пишет: страница не найдена. Может какие-то страницы отдельно нужно сождавать под регистрацию? Я совсем запуталась. Я – новичок. Спасибо.

Ответить
# tsv9x оставил(а) комментарий 21 Апр 2011 в 22:44

У меня вот такая ошибка
Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\exper\index.php:9) in C:\xampp\htdocs\exper\index.php on line 59

Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\exper\index.php:9) in C:\xampp\htdocs\exper\index.php on line 60

в этих строках находится setcookie(«login», $login, $time+1800);
setcookie(«pass», md5($pass), $time+1800);

на сколько я понял не обязательно ограничивать время работы куки. Без этих строк все работает без ошибок.Если как то можно исправить такую ошибку помогите

Ответить
# Никита Красноярцев оставил(а) комментарий 22 Апр 2011 в 08:19

вы не правильно встроили скрипт в сайт, воспользуйтесь более новым скриптом, который находится по ссылке скрипт регистрации и авторизации пользователей.
Там так же написано как его правильно настроить.

Ответить
# Degit оставил(а) комментарий 25 Апр 2011 в 05:50

у меня ошибка при работе с сессией. типа заголовки отосланны уже были. кодировка utf-8. перед запуском сессии нет никакого вывода в окно браузере. может это изза кодировки? и как исправить? заранее спасибо.

Ответить
# RBoy оставил(а) комментарий 30 Апр 2011 в 15:03

статья – то, что доктор прописал, огромное спасибо. понятно, просто, закомментировано. от данного уже можно отталкиваться – задокументированный каркас есть, а что нужно конкретно самому уже дописать, обучаясь. автор молодца!

Ответить
# Давид оставил(а) комментарий 19 Июн 2011 в 16:11

ошибку выдаёт:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘root’@'localhost’ (using password: YES) in X:\home\localhost\www\phpauth\connectdb.php on line 14
Не удалось подключиться к серверу MySql!

Ответить
# aleks оставил(а) комментарий 25 Июн 2011 в 08:51

У меня проверка на существование логина не работала, переделал:

//проверяем наличие в БД пользователя с логином $login
$sql = «SELECT * FROM users WHERE login=’$login’»; // поиск по логину в таблице users
$result = mysql_query($sql);

// если количество найденых записей ноль, то продолжаем
if ($result == 0) {

Ответить
# Lsdpunk оставил(а) комментарий 25 Июн 2011 в 15:54

Добрый день, помогите я в этом всём лузер, скажите пожалуйста, куда нужно кидать эти все файлы, с денвером пробывал, но он пишет что MySql не заработал, кидал на рабочий стол и в браузере писал localhost/index.php
без результатно, прошу помогите очень нужно для сайта!
спасибо за внимание

Ответить
# Barsik оставил(а) комментарий 07 Июл 2011 в 18:27

отличный скрипт. Никита как с Вами связаться ?
мне нужна Ваша помощь в написании нужной мне вещи. Отзовитесь плиз. Буду Рад !
За ранее благодарен!
а скрипт БОМБА!!!
всё как из пушки строчит.
едиснтвенный момент это PRIMARY KEY(id));’;

у меня вот так работает PRIMARY KEY(id))’;

Ответить
# Никита Красноярцев оставил(а) комментарий 07 Июл 2011 в 19:45

@Barsik, Завтра ухожу в армию, через год пишите))

Ответить
# Worg оставил(а) комментарий 15 Авг 2011 в 01:12

Просто супер спасибо! а может ли уважаеммый админ примерно также рассжувать про комментарии для сайта???

Ответить
# Shelby98 оставил(а) комментарий 25 Авг 2011 в 12:00

не получается, когда я перехожу на мой сайт\install.phph у меня скачивает этот файл

Ответить
# LSdpunk оставил(а) комментарий 26 Авг 2011 в 13:36

Пользуйся денвером!

Ответить
# Marija оставил(а) комментарий 31 Авг 2011 в 14:23

У меня выдает это:Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘root’@'localhost’ (using password: YES) in Z:\home\localhost\www\connectbd.php on line 9
Не удалось подключиться к серверу MySql!

что это значит???

Ответить
# LSdpunk оставил(а) комментарий 31 Авг 2011 в 14:32

Вы ввели не верные данные для подключения к mySql

Ответить
# Marija оставил(а) комментарий 31 Авг 2011 в 14:38

а как я могу узнать данные для подключения к mySql?

Ответить
# pf оставил(а) комментарий 04 Сен 2011 в 12:32

хреновый скрипт создает одинаковых юзеров

Ответить
# valdemarin оставил(а) комментарий 09 Сен 2011 в 19:32

Люди добрые, кто знает, или может кто поможет, нужен скрипт регистрации, но только в файл, типо users.txt , если не трудно покажите как и где исправить данный выше скрипт.

Ответить
# Егор оставил(а) комментарий 18 Сен 2011 в 15:21

Парень либо блондинка дурак,ошибок дохерище.
Ты в каком классе учился то?

Ответить
# Никита Красноярцев оставил(а) комментарий 24 Сен 2011 в 10:16

@Егор, в четвертом(

Ответить
# Мари оставил(а) комментарий 08 Окт 2011 в 07:54

Спасибо!Скрипт работает отлично.
Много хочется сказать после тщетных поисков и неудачных попыток самостоятельного создания скрипта,но слов нет только эмоции.
БЛАГОДАРЮ.

Ответить
# klim оставил(а) комментарий 14 Окт 2011 в 00:25

Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘root’@'localhost’ (using password: YES) in c:\program files\apache group\apache\htdocs\13\connectdb.php on line 14
РќРµ удалось подключиться Рє серверу MySql! от шо у меня пишет после того как запускю install.php???????????????

Ответить
# klim оставил(а) комментарий 14 Окт 2011 в 00:27

если кто то знает чё ет такое то напишите deniz966@mail.ru

Ответить
# Александр Кусков оставил(а) комментарий 17 Окт 2011 в 14:37

Спасибо большое за этот шаблон регистрации и авторизации я его сам доработаю подправлю главное идея, самому бы пришлось дольше соображать.

Ответить
# миша оставил(а) комментарий 18 Окт 2011 в 11:23

надо дорабатывать скрипт конечно. не советую пользоваться <? пользуйся <?php .
$sql="SELECT * FROM users WHERE login='$login'";
$res=mysql_query($sql);
$userinfo=mysql_fetch_array($res);// в этой переменной будет лежать вся информация о пользователе из БД
так надо:
$res = mysql_query("запрос..");
$userinfo = mysql_fetch_assoc($res);// зачем нам array с индексным массивом, надо нам ведь ассоциативный!
и тд

Ответить
# миша оставил(а) комментарий 18 Окт 2011 в 11:24

автор php вообще не знает

Ответить
# Aleks оставил(а) комментарий 28 Ноя 2011 в 21:09

А в какой версии php это работает? У меня стоит php5 и он не пашет (((

Ответить
# essinfo3299 оставил(а) комментарий 13 Дек 2011 в 19:39

Обратившись в службу «Поиск», можно найти нужную компанию или подать информацию о своей фирме. Сравнительно недорогой метод.

Ответить
# фыв оставил(а) комментарий 16 Дек 2011 в 00:52

Как все данные, введенные в форме пользователем, записать уже в существующею таблицу?

Ответить
# фыв оставил(а) комментарий 16 Дек 2011 в 00:53

Как все данные, введенные в форме пользователем, записать уже в существующую таблицу?

Ответить
# nsgs3280 оставил(а) комментарий 19 Дек 2011 в 23:57

Занимается благоустройством территорий и объектов, используя для своих проектов особенные материалы.

Ответить
# russteklo3285 оставил(а) комментарий 20 Дек 2011 в 14:55

В «Фалькор» представлены разные стеклянные и зеркальные изделия по доступной стоимости. Выполняем все работы качественно и в срок.

Ответить
# ggalac1675 оставил(а) комментарий 22 Дек 2011 в 20:18

В компании «ЭлитКлаб» Вы можете найти различные изделия, Вашу коллекцию или решат проблему выбора уникального подарка для коллег или друзей.

Ответить
# axelcars3280 оставил(а) комментарий 22 Дек 2011 в 22:09

Наша организация занимается продажей автомобилей с пробегом, страхованием автомобилей, помогает взять кредит на авто.

Ответить
# cluborder оставил(а) комментарий 23 Дек 2011 в 22:31

Д А в Москве- скрытая запись.Профессиональные Агенты , для организации услуг любой сложности

Ответить
# novoteksbiz оставил(а) комментарий 24 Дек 2011 в 00:53

Сервисный центр «Новотекс» – тех обслуживание кабельных систем . Мы обладаем возможностью и правом официально выполнять весь комплекс работ

Ответить
# besprredelos оставил(а) комментарий 27 Дек 2011 в 18:47

удалите это сообщение пожалуйста , если не желаете здесь видеть рекламный текст.спасибо.

Ответить
# helpstusu оставил(а) комментарий 10 Янв 2012 в 17:10

Helpstu.Su – оказываем услуги студентам, у нас Вы можете:Заказать Аспирантский реферат не дорого – юридические,экономические,гуманитарные,технические дисциплины.Наши авторы напишут научную работу исключительно уникальную

Ответить
# kesauto0509 оставил(а) комментарий 17 Янв 2012 в 18:58

«КЭС-АВТО» предлагает автолюбителям купить универсальные наборы инструментов и ключей по выгодным ценам в удобные для заказчика сроки.

Ответить
# moneymist оставил(а) комментарий 22 Янв 2012 в 19:34

Moneymist.Ru – это новая, современная и прогрессивная система рекламы. Продвижение

Ответить
# windowsphone оставил(а) комментарий 24 Янв 2012 в 15:59

4windowsphone.Ru – windows Phone 7-7.5 Mango – Софт и Игры скачать бесплатно,{windows phone

Ответить
# trans-complect3166 оставил(а) комментарий 24 Янв 2012 в 20:55

Предлагаем купить в нашей фирме пенобетонные блоки. Наши цены вас удивят, а быстрые сроки доставки порадуют.

Ответить
# umnyefrazy оставил(а) комментарий 27 Янв 2012 в 03:59

Umnyefrazy.Ru – на ресурсе собраны фразы со смыслом ,афоризмы и многое другое

Ответить

Добавить комментарий

Псевдоним*:
Эл. почта*:
Сайт: