Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 22.01.2014
Сообщений: 30
MySQL

Не работает форма регистрации пользователей

28.05.2015, 20:05. Показов 3068. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю дипломный проект на девере, сайт компьютерного магазина(на PHP).

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

Помогите пожалуйста или подскажите в чём может быть проблема.

Добавлено через 17 минут
Вот исходник файла database.php
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
<?
/**
  * Функция для подключения к СУБД MySQL.
  * Функция не принимает никаких параметров.
  * Функция предназначена для использования, в основном,
  * с одной базой данных
  */
function connect() {
    // Объявляем переменные, в которых будут храниться параметры для подключения к СУБД
    $db_host = 'localhost';     // Сервер
    $db_user = 'root';  // Имя пользователя
    $db_password = '';  // Пароль пользователя
    $db_name = 'db_name';           // Имя базы данных
    
    // Подключаемся к серверу
    $conn = mysql_connect($db_host, $db_user, $db_password) or die("<p>Невозможно подключиться к СУБД: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    
    // Эта часть кода выполнится только в случае успешного подключения к серверу
    // Выбираем базу данных
    $db = mysql_select_db($db_name, $conn) or die("<p>Невозможно подключиться к базе данных: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    
    // Эта часть кода выполняется только в случае успешного подключения к БД
    // Указываем серверу, что данные, которые мы от него получаем, нам нужны в кодировке UTF-8
    $query = mysql_query("set names utf8", $conn) or die("<p>Невозможно выполнить запрос к базе данных: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
}
?>
Но хотя я больше думаю что ошибка где-то в функциях functions.php
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?
/**
  * functions.php
  * Файл с пользовательскими функциями
  */
  
// Подключаем файл с параметрами подключения к СУБД
require_once('database.php');
 
// Проверка имени пользователя
function checkLogin($str) {
    // Инициализируем переменную с возможным сообщением об ошибке
    $error = '';
    
    // Если отсутствует строка с логином, возвращаем сообщение об ошибке
    if(!$str) {
        $error = 'Вы не ввели имя пользователя';
        return $error;
    }
    
    /**
      * Проверяем имя пользователя с помощью регулярных выражений
      * Логин должен быть не короче 4, не длиннее 16 символов
      * В нем должны быть символы латинского алфавита, цифры, 
      * в нем могут быть символы '_', '-', '.'
      */
    $pattern = '/^[-_.a-z\d]{4,16}$/i'; 
    $result = preg_match($pattern, $str);
    
    // Если проверка не прошла, возвращаем сообщение об ошибке
    if(!$result) {
        $error = 'Недопустимые символы в имени пользователя или имя пользователя слишком короткое (длинное)';
        return $error;
    }
    
    // Если же всё нормально, вернем значение true
    return true;
}
 
// Проверка пароля пользователя
function checkPassword($str) {
    // Инициализируем переменную с возможным сообщением об ошибке
    $error = '';
    
    // Если отсутствует строка с логином, возвращаем сообщение об ошибке
    if(!$str) {
        $error = 'Вы не ввели пароль';
        return $error;
    }
    
    /**
      * Проверяем пароль пользователя с помощью регулярных выражений
      * Пароль должен быть не короче 6, не длиннее 16 символов
      * В нем должны быть символы латинского алфавита, цифры, 
      * в нем могут быть символы '_', '!', '(', ')'
      */
    $pattern = '/^[_!)(.a-z\d]{6,16}$/i';   
    $result = preg_match($pattern, $str);
    
    // Если проверка не прошла, возвращаем сообщение об ошибке
    if(!$result) {
        $error = 'Недопустимые символы в пароле пользователя или пароль слишком короткий (длинный)';
        return $error;
    }
    
    // Если же всё нормально, вернем значение true
    return true;
}
?>
<?
// Функция регистрации пользователя
function registration($login, $password) {
    // Инициализируем переменную с возможным сообщением об ошибке
    $error = '';
    
    // Если отсутствует строка с логином, возвращаем сообщение об ошибке
    if(!$login) {
        $error = 'Не указан логин';
        return $error;
    } 
    elseif(!$password) {
        $error = 'Не указан пароль';
        return $error;
    }
    
    // Проверяем не зарегистрирован ли уже пользователь
    // Подключаемся к СУБД
    connect();
    
    // Пишем строку запроса
    $sql = "SELECT `id` FROM `users` WHERE `login`='" . $login . "'";
    // Делаем запрос к базе
    $query = mysql_query($sql) or die("<p>Невозможно выполнить запрос: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    // Смотрим на количество пользователей с таким логином, если есть хоть один,
    // возвращаем сообщение об ошибке
    if(mysql_num_rows($query) > 0) {
        $error = 'Пользователь с указанным логином уже зарегистрирован';
        return $error;
    }
    
    // Если такого пользователя нет, регистрируем его
    // Пишем строку запроса
    $sql = "INSERT INTO `users` 
            (`id`,`login`,`password`) VALUES 
            (NULL, '" . $login . "','" . $password . "')";
    // Делаем запрос к базе
    $query = mysql_query($sql) or die("<p>Невозможно добавить пользователя: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    
    // Не забываем отключиться от СУБД
    mysql_close();
    
    // Возвращаем значение true, сообщающее об успешной регистрации пользователя
    return true;
}
?>
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.05.2015, 20:05
Ответы с готовыми решениями:

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

Форма регистрации и логина по видео урокам - все равно не работает
Братва помогите по форме логина , не могу найти ошибку выходить это Fatal error: Can't use function return value in write context in...

Форма регистрации php + Mysql(phpmyadmin). Регистрация не работает посмотрите(код)
У меня есть база данных логина и пароля. В этом коде должен выполнятся запрос на регистрацию логина и пароль в базу данных Mysql. ...

21
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
28.05.2015, 21:27
Exclusive_007, а где сама форма?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
28.05.2015, 21:46
Дебажьте Работа с БД MySQL
0
1 / 1 / 0
Регистрация: 22.01.2014
Сообщений: 30
29.05.2015, 09:19  [ТС]
Вот registration.php
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?
/**
  * registration.php
  * Страница регистрации пользователей. Предполагается, что в вашей
  * базе данных присутствует таблица пользователей users, в которой
  * есть поля id, login, password, reg_date
  */
  
// Подключаем файл с пользовательскими функциями
require_once('functions.php');
 
// Инициализируем переменные для введенных значений и возможных ошибок
$errors = array();
$fields = array();
 
// Заранее инициализируем переменную регистрации, присваивая ей ложное значение
$reg = false;
 
// Если была нажата кнопка регистрации
if(isset($_POST['submit'])) {
    // Делаем массив сообщений об ошибках пустым
    $errors['login'] = $errors['password'] = $errors['password_again'] = '';
    
    // С помощью стандартной функции trim() удалим лишние пробелы
    // из введенных пользователем данных
    $fields['login'] = trim($_POST['login']);
    $password = trim($_POST['password']);
    $password_again = trim($_POST['password_again']);
    
    // Если логин не пройдет проверку, будет сообщение об ошибке
    $errors['login'] = checkLogin($fields['login']) === true ? '' : checkLogin($fields['login']);
    
    // Если пароль не пройдет проверку, будет сообщение об ошибке
    $errors['password'] = checkPassword($password) === true ? '' : checkPassword($password);
    
    // Если пароль введен верно, но пароли не идентичны, будет сообщение об ошибке
    $errors['password_again'] = (checkPassword($password) === true && $password === $password_again) ? '' : 'Введенные пароли не совпадают';
    
    // Если ошибок нет, нам нужно добавить информацию о пользователе в БД
    if($errors['login'] == '' && $errors['password'] == '' && $errors['password_again'] == '') {
        // Вызываем функцию регистрации, её результат записываем в переменную
        $reg = registration($fields['login'], $password);
        
        // Если регистрация прошла успешно, сообщаем об этом пользователю
        // И создаем заголовок страницы, который выполнит переадресацию к форме авторизации
        if($reg === true) {
            $message = '<p>Вы успешно зарегистрировались в системе. Сейчас вы будете переадресованы к странице авторизации. Если это не произошло, перейдите на неё по <a href="login.php">прямой ссылке</a>.</p>';
            header('Refresh: 5; URL = login.php');
        }
        // Иначе сообщаем пользователю об ошибке
        else {
            $errors['full_error'] = $reg;
        }
    }
}
// Инициализируем переменные для введенных значений и возможных ошибок
$errors = array();
$fields = array();
?>
 
<div class="reg">
<p class="oglavlenie">Регистрация нового пользователя</p>
<form action="" method="post">
        <div class="row">
            <label for="login">Укажите ваш логин:</label>
            <input type="text" class="text" name="login" id="login" value="<?=$fields['login'];?>" /><br>
            В имени пользователя могут быть только символы латинского алфавита, цифры, символы '_', '-', '.'. Длина имени пользователя должна быть не короче 4 символов и не длиннее 16 символов
            <div class="error" id="login-error"><?=$errors['login'];?></div>
        </div>
        <div class="row">
            <label for="password">Напишите ваш пароль:</label>
            <input type="password" class="text" name="password" id="password" value="" /><br>
            В пароле вы можете использовать только символы латинского алфавита, цифры, символы '_', '!', '(', ')'. Пароль должен быть не короче 6 символов и не длиннее 16 символов
            <div class="error" id="password-error"><?=$errors['password'];?></div>
        </div>
        <div class="row">
            <label for="password_again">Повторите пароль:</label>
            <input type="password" class="text" name="password_again" id="password_again" value="" /><br>
            Повторите введенный ранее пароль
            <div class="error" id="password_again-error"><?=$errors['password_again'];?></div>
        </div>
        <div class="row">
            <!-- Кнопка отправки данных формы -->
            <input type="submit" name="submit" class="btn-submit" value="Зарегистрироваться" />
            
            <!-- Кнопка сброса полей формы к исходному состоянию -->
            <input type="reset" name="reset" class="btn-reset" value="Очистить" />
        </div>
    </form>
    </div>
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.05.2015, 11:40
Цитата Сообщение от Exclusive_007 Посмотреть сообщение
Вот registration.php
что-то я не вижу тут подключения к БД
0
1 / 1 / 0
Регистрация: 22.01.2014
Сообщений: 30
29.05.2015, 12:38  [ТС]
подключение к БД в файле database.php
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.05.2015, 12:46
Цитата Сообщение от Exclusive_007 Посмотреть сообщение
подключение к БД в файле database.php
но в этом файле
Цитата Сообщение от Exclusive_007 Посмотреть сообщение
registration.php
где вызов подключения?
0
1 / 1 / 0
Регистрация: 22.01.2014
Сообщений: 30
29.05.2015, 17:48  [ТС]
а что разве в каждом php файле должно быть подключение?
я просто первый раз работаю с базой
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
30.05.2015, 04:41
Цитата Сообщение от Exclusive_007 Посмотреть сообщение
а что разве в каждом php файле должно быть подключение?
обязательно если есть работа с БД
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.05.2015, 12:55
Цитата Сообщение от Виталюска Посмотреть сообщение
где вызов подключения?
насколько я понял, подключение происходит в функции registration();
0
6 / 6 / 1
Регистрация: 10.06.2014
Сообщений: 98
30.05.2015, 13:33
PHP
1
include 'database.php';
Пример:

PHP
1
2
3
4
5
6
7
<?php
// database.php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$dbname = 'phpcake';
?>

PHP
1
2
3
4
5
6
7
8
9
10
<?php
// register.php
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die                      ('Error connecting to mysql');
mysql_select_db($dbname);
?>
 
<?php
include 'database.php';
 
?>
Добавлено через 4 минуты
Или так:

PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
//database.php
$con = mysqli_connect('localhost', 'root', '', 'mydb');
 
/* Проверка */
if (!$con) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
 
?>
И в файле регистрации:

PHP
1
include("includes/db.php");
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.05.2015, 14:33
Лучший ответ Сообщение было отмечено Exclusive_007 как решение

Решение

так должно работать
registration.php
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
75
76
<?php
require_once('functions.php');
// Инициализируем переменные для введенных значений и возможных ошибок
$errors = array();
$fields = array();
// Заранее инициализируем переменную регистрации, присваивая ей ложное значение
$reg = false;
// Если была нажата кнопка регистрации
if(isset($_POST['submit'])) {
    // С помощью стандартной функции trim() удалим лишние пробелы
    // из введенных пользователем данных
    $fields['login'] = trim($_POST['login']);
    $password = trim($_POST['password']);
    $password_again = trim($_POST['password_again']);
    // Если логин не пройдет проверку, будет сообщение об ошибке
   $errors['login'] = checkLogin($fields['login']) === true ? '' : checkLogin($fields['login']);
    
    // Если пароль не пройдет проверку, будет сообщение об ошибке
    $errors['password'] = checkPassword($password) === true ? '' : checkPassword($password);
    
   // Если пароль введен верно, но пароли не идентичны, будет сообщение об ошибке
    $errors['password_again'] = (checkPassword($password) === true && $password === $password_again) ? '' : 'Введенные пароли не совпадают';
   
    // Если ошибок нет, нам нужно добавить информацию о пользователе в БД
    if(empty($errors['login']) && empty($errors['password']) && empty($errors['password_again'])) {
        // Вызываем функцию регистрации, её результат записываем в переменную
       $reg = registration($fields['login'], $password);
        // Если регистрация прошла успешно, сообщаем об этом пользователю
        // И создаем заголовок страницы, который выполнит переадресацию к форме авторизации
        if($reg === true) {
            $message = '<p>Вы успешно зарегистрировались в системе. Сейчас вы будете переадресованы к странице авторизации. Если это не произошло, перейдите на неё по <a href="login.php">прямой ссылке</a>.</p>';
            header('Refresh: 5; URL = login.php');
        }
        // Иначе сообщаем пользователю об ошибке
        else {
            $errors['full_error'] = $reg;
        }
    }
}
if(isset($message)){
    echo $message;
}
if(isset($errors['full_error'])){
    echo $errors['full_error'];
}
?>
<div class="reg">
<p class="oglavlenie">Регистрация нового пользователя</p>
<form action="" method="post">
        <div class="row">
            <label for="login">Укажите ваш логин:</label>
            <input type="text" class="text" name="login" id="login" value="<?php if(isset($fields['login'])){echo $fields['login'];}?>" /><br>
            В имени пользователя могут быть только символы латинского алфавита, цифры, символы '_', '-', '.'. Длина имени пользователя должна быть не короче 4 символов и не длиннее 16 символов
            <div class="error" id="login-error"><?php if(isset($errors['login'])){echo $errors['login'];}?></div>
        </div>
        <div class="row">
            <label for="password">Напишите ваш пароль:</label>
            <input type="password" class="text" name="password" id="password" value="" /><br>
            В пароле вы можете использовать только символы латинского алфавита, цифры, символы '_', '!', '(', ')'. Пароль должен быть не короче 6 символов и не длиннее 16 символов
            <div class="error" id="password-error"><?php if(isset($errors['password'])){echo $errors['password'];}?></div>
        </div>
        <div class="row">
            <label for="password_again">Повторите пароль:</label>
            <input type="password" class="text" name="password_again" id="password_again" value="" /><br>
            Повторите введенный ранее пароль
            <div class="error" id="password_again-error"><?php if(isset($errors['password_again'])){echo $errors['password_again'];}?></div>
        </div>
        <div class="row">
            <!-- Кнопка отправки данных формы -->
            <input type="submit" name="submit" class="btn-submit" value="Зарегистрироваться" />
            
            <!-- Кнопка сброса полей формы к исходному состоянию -->
            <input type="reset" name="reset" class="btn-reset" value="Очистить" />
        </div>
    </form>
    </div>
database.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function connect() {
    // Объявляем переменные, в которых будут храниться параметры для подключения к СУБД
    $db_host = 'localhost';     // Сервер
    $db_user = 'root';  // Имя пользователя
    $db_password = '';  // Пароль пользователя
    $db_name = 'db_name';           // Имя базы данных
    
    // Подключаемся к серверу
    $conn = mysql_connect($db_host, $db_user, $db_password) or die("<p>Невозможно подключиться к СУБД: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    
    // Эта часть кода выполнится только в случае успешного подключения к серверу
    // Выбираем базу данных
    $db = mysql_select_db($db_name, $conn) or die("<p>Невозможно подключиться к базе данных: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    
    // Эта часть кода выполняется только в случае успешного подключения к БД
    // Указываем серверу, что данные, которые мы от него получаем, нам нужны в кодировке UTF-8
    $query = mysql_query("set names utf8", $conn) or die("<p>Невозможно выполнить запрос к базе данных: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    return $query;
}
function.php
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
require_once('database.php');
 
// Проверка имени пользователя
function checkLogin($str) {
    // Инициализируем переменную с возможным сообщением об ошибке
    $error = '';
    
    // Если отсутствует строка с логином, возвращаем сообщение об ошибке
    if(!$str) {
        $error = 'Вы не ввели имя пользователя';
    }
    
    /**
      * Проверяем имя пользователя с помощью регулярных выражений
      * Логин должен быть не короче 4, не длиннее 16 символов
      * В нем должны быть символы латинского алфавита, цифры, 
      * в нем могут быть символы '_', '-', '.'
      */
    $pattern = '/^[-_.a-z\d]{4,16}$/i'; 
    $result = preg_match($pattern, $str);
    
    // Если проверка не прошла, возвращаем сообщение об ошибке
    if(!$result) {
        $error = 'Недопустимые символы в имени пользователя или имя пользователя слишком короткое (длинное)';
    }
    if(!empty($error)){
        return $error;
    }
    else{
        return true;
    }
    // Если же всё нормально, вернем значение true
    
}
 
// Проверка пароля пользователя
function checkPassword($str) {
    // Инициализируем переменную с возможным сообщением об ошибке
    $error = '';
    
    // Если отсутствует строка с логином, возвращаем сообщение об ошибке
    if(!$str) {
        $error = 'Вы не ввели пароль';
    }
    
    /**
      * Проверяем пароль пользователя с помощью регулярных выражений
      * Пароль должен быть не короче 6, не длиннее 16 символов
      * В нем должны быть символы латинского алфавита, цифры, 
      * в нем могут быть символы '_', '!', '(', ')'
      */
    $pattern = '/^[_!)(.a-z\d]{6,16}$/i';   
    $result = preg_match($pattern, $str);
    
    // Если проверка не прошла, возвращаем сообщение об ошибке
    if(!$result) {
        $error = 'Недопустимые символы в пароле пользователя или пароль слишком короткий (длинный)';
    }
    
    if(!empty($error)){
        return $error;
    }
    else{
        return true;
    }
}
 
// Функция регистрации пользователя
function registration($login, $password) {
    // Инициализируем переменную с возможным сообщением об ошибке
    $error = array();
    
    // Если отсутствует строка с логином, возвращаем сообщение об ошибке
    if(!$login) {
        $error['login'] = 'Не указан логин';
//        return $error;
    } 
    elseif(!$password) {
       $error['password'] = 'Не указан пароль';
        //return $error;
    }
    
    // Проверяем не зарегистрирован ли уже пользователь
    // Подключаемся к СУБД
     $query = connect();
    
    // Пишем строку запроса
    $sql = "SELECT `id` FROM `users` WHERE `login`='" . $login . "'";
    // Делаем запрос к базе
    $query = mysql_query($sql) or die("<p>Невозможно выполнить запрос: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    // Смотрим на количество пользователей с таким логином, если есть хоть один,
    // возвращаем сообщение об ошибке
    if(mysql_num_rows($query) > 0) {
        $error = 'Пользователь с указанным логином уже зарегистрирован';
        return $error;
    }
    
    // Если такого пользователя нет, регистрируем его
    // Пишем строку запроса
    $sql = "INSERT INTO `users` 
            (`id`,`login`,`password`) VALUES 
            (NULL, '" . $login . "','" . $password . "')";
    // Делаем запрос к базе
    $query = mysql_query($sql) or die("<p>Невозможно добавить пользователя: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    
    // Не забываем отключиться от СУБД
    mysql_close();
    
    // Возвращаем значение true, сообщающее об успешной регистрации пользователя
    return true;
}
1
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
30.05.2015, 16:06
Цитата Сообщение от fanatikus Посмотреть сообщение
насколько я понял, подключение происходит в функции registration();
нет у него такой функции

а вот если сделать
Цитата Сообщение от fanatikus Посмотреть сообщение
require_once('database.php');
как Вы показали другое дело, должно работать
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.05.2015, 16:26
Цитата Сообщение от Виталюска Посмотреть сообщение
нет у него такой функции
а это что? мираж?
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
function registration($login, $password) {
    // Инициализируем переменную с возможным сообщением об ошибке
    $error = array();
    
    // Если отсутствует строка с логином, возвращаем сообщение об ошибке
    if(!$login) {
        $error['login'] = 'Не указан логин';
//        return $error;
    } 
    elseif(!$password) {
       $error['password'] = 'Не указан пароль';
        //return $error;
    }
    
    // Проверяем не зарегистрирован ли уже пользователь
    // Подключаемся к СУБД
     $query = connect();
    
    // Пишем строку запроса
    $sql = "SELECT `id` FROM `users` WHERE `login`='" . $login . "'";
    // Делаем запрос к базе
    $query = mysql_query($sql) or die("<p>Невозможно выполнить запрос: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    // Смотрим на количество пользователей с таким логином, если есть хоть один,
    // возвращаем сообщение об ошибке
    if(mysql_num_rows($query) > 0) {
        $error = 'Пользователь с указанным логином уже зарегистрирован';
        return $error;
    }
    
    // Если такого пользователя нет, регистрируем его
    // Пишем строку запроса
    $sql = "INSERT INTO `users` 
            (`id`,`login`,`password`) VALUES 
            (NULL, '" . $login . "','" . $password . "')";
    // Делаем запрос к базе
    $query = mysql_query($sql) or die("<p>Невозможно добавить пользователя: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    
    // Не забываем отключиться от СУБД
    mysql_close();
    
    // Возвращаем значение true, сообщающее об успешной регистрации пользователя
    return true;
}
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
30.05.2015, 16:30
Цитата Сообщение от fanatikus Посмотреть сообщение
а это что? мираж?
сори не заметил там connect()
но вопрос она там работает? если не подключен database.php
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.05.2015, 16:32
Цитата Сообщение от Виталюска Посмотреть сообщение
но вопрос она там работает? если не подключен database.php
да как не подключен, внимательно смотри файл function.php
прикол в том, что функция conect() ничего не возвращает.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
30.05.2015, 16:37
fanatikus, почему же, возвращает. Только не то, что нужно. Надо $conn возвращать..

Добавлено через 56 секунд
а, да, в исходном коде не возвращает. А в вашем возвращает, но не то
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.05.2015, 16:46
Цитата Сообщение от KOPOJI Посмотреть сообщение
А в вашем возвращает, но не то
да, согласен, провтыкал
но что интересно, мой код работает, проверил
0
1 / 1 / 0
Регистрация: 22.01.2014
Сообщений: 30
30.05.2015, 17:39  [ТС]
Спасибо большое всем за помощь, регистрация заработала!
Только вот не перенапраляет на главную страницу после регистрации(ошибку видно на скрине)
Вот этот код не работает
PHP
1
header('Refresh: 5; URL = index.php');
Миниатюры
Не работает форма регистрации пользователей   Не работает форма регистрации пользователей  
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.05.2015, 17:52
Что означает предупреждение "headers already sent"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.05.2015, 17:52
Помогаю со студенческими работами здесь

Не работает форма регистрации пользователей
Пытаюсь разобраться в форме для регистрации, вот тут обсуждалось https://www.cyberforum.ru/php-database/thread643852.html В итоге...

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

Форма регистрации пользователей не исправна
Доброго дня! Не работает и не активна кнопка регистрации пользователей на сайте!!! При нажатии на неё, в консоли браузера мелькает...

Форма для регистрации пользователей
Посоветуйет кто сталкивался. Мне нужно компонент для создания форм. Надо чтобы пользователь сайта мог оставить заявку на участие в...

Не работает форма регистрации
Не заносятся данные в бд index.php &lt;!doctype html&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;meta name=&quot;exs&quot;&gt; &lt;link...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru