Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 36

Регистрация с проверкой логина на уникальность

10.07.2018, 22:28. Показов 3781. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Я совсем пень, знаю. Ну, не могу я решить поставленную передо мной задачу. Всякое пробовал уже. Очень надеюсь на вашу помощь, добрые люди.

Есть убогая форма регистрации, а данные с нее сохраняются в текстовый файл. Кусок кода:

PHP/HTML
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
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>...</title>
 
  <?php
  $d = $_POST['surname'].' '.$_POST['name'].' '.$_POST['patr'].' '.$_POST['sex'].' '.$_POST['number'].'.'.$_POST['month'].'.'.$_POST['year'].' '.$_POST['educat'].' '.$_POST['series'].'.'.$_POST['numb'].'.'.$_POST['info'].' '.$_POST['address'].' '. $_POST['tel'].' '.$_POST['email'].' '.$_POST['pass'] .' '.$_POST['reg'].PHP_EOL;
  $file = "users.txt";
  $Saved_File = fopen($file, 'a+');
  fwrite($Saved_File, $d);
  fclose($Saved_File);
  ?>
 
<style> 
        body {
                  background-color: #bbdbf5;
                  background-repeat: no-repeat center top/cover;
                  text-align:  center
            }
 
        .colortext {
                   color: blue;
                   }
 
 </style>
 
</head>
<body>
 
<br><b>Зарегистрируйся в библиотеке!</b> <br> <br> <hr>
 
 <form action="" method="post"> 
 
 
<b>Личная информация</b> <br>   
 
 Фамилия: <input type="text" name="surname" class="colortext"> <br>
 Имя: <input type="text" name="name" class="colortext"> <br>
 Отчество: <input type="text" name="patr" class="colortext"> <br> <br>
 
 <br><b>Данные для входа</b><br>
 
<b>Логин:</b> <input type="text" name="login" class="colortext"> <br>
 
<b>Пароль:</b> <input type="password" name="pass" class="colortext"> <br><br>
 
<b>С правилами ознакомлен</b><input type=checkbox name="reg" value="yes"> <br><br>
 
<input type=submit value="Регистрация">
 
</form> 
 
</body>
</html>
Теперь нужно чтобы при регистрации логин проверялся на уникальность (из того текстового файла, куда заносятся предыдущие юзеры). Если все ок, то регистрация проходит успешно, нет - вылетает ошибка, что такой логин существует.

Знаю, что проверку на уникальность нужно делать через sql. То есть из формы передать логин и искать эти данные в базе...если такого там нет, значит он уникальный.

Но я не могу этого сделать. Не выходит. Буду ОЧЕНЬ благодарен если покажете и тыкните пальцем что как куда. Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.07.2018, 22:28
Ответы с готовыми решениями:

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

Проверка логина на уникальность
Есть два файла : user.php &lt;?php require_once 'DB.php'; function create_user($user) { $connection = db_connect(); ...

Проверка на уникальность логина
Здравствуйте. Я новичек в БД и пхп, учусь и создаю регистрацию пользователей на php. И зашел вопрос по поводу страницы редактирования...

13
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
10.07.2018, 22:36
mysql Установлен? Если да, сейчас настроим.
0
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 36
10.07.2018, 22:45  [ТС]
Torovich, денвер стоит
0
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
10.07.2018, 23:11
Заходи в phpmyadmin и создай новую базу данных.
Затем распакуй архив и импортируй базу.
Вложения
Тип файла: zip testb.zip (830 байт, 2 просмотров)
0
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
10.07.2018, 23:15
Лучший ответ Сообщение было отмечено LoonyFox как решение

Решение

Создаем файл db.php
PHP
1
2
3
4
5
6
<?php
$user = "root"; // Логин mysql
$pass = "root"; // Пароль mysql
$dbname = "test"; // Имя базы данных
$host = "mysql:host=localhost;dbname=$dbname;charset=utf8";
$connect = new PDO($host, $user, $pass);
0
10.07.2018, 23:38

Не по теме:



Цитата Сообщение от LoonyFox Посмотреть сообщение
Привет. Я совсем пень, знаю.
Не факт . Откуда вы знаете ? Ето еще проверить нужно .

0
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 36
10.07.2018, 23:39  [ТС]
Torovich, при импорте появляется такое
0
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 36
10.07.2018, 23:43  [ТС]
Torovich, вроде, импортировал. И файл создал
0
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
10.07.2018, 23:49
Ты не создал базу данных. Если создал, войди в неё. Она пустая. И там сделай импорт.
0
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 36
10.07.2018, 23:59  [ТС]
Torovich, да, я писал выше, что импортировал
спасибо)
0
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
11.07.2018, 00:18
Лучший ответ Сообщение было отмечено LoonyFox как решение

Решение

Ну и держи свою форму.
PHP/HTML
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
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>DB connect</title>
    <style> 
    body {
        background-color: #bbdbf5;
        background-repeat: no-repeat;
        text-align:  center;
    }
    .colortext {
        color: blue;
    }
    </style>
</head>
<body>
<?php
require_once __DIR__.'/db.php';//Подключаем нашу базу. Имя соединения $connect;
if(isset($_POST['login'])){
    $sql = 'SELECT login FROM users WHERE login = :login'; //Формируем запрос
    $users = $connect->prepare($sql);
    $users->execute(['login' => $_POST['login']]); //Выполняем запрос с подстановкой login'a
    if($users -> rowCount() > 0){ //Колличество полученных строк
        echo '<p>Такой пользователь существует</p>';
    }else{ // Вставка нового пользователя
        $sql = "INSERT INTO users(login, pass) VALUES ('$_POST[login]', '$_POST[pass]')";
        $users = $connect->prepare($sql);
        $users -> execute();
        
        var_dump($users); // Отладочная информация, можно удалить.
        
        if($users->rowCount()){ // Выполнен (1) запрос или нет (0)
            echo '<p>Добавлен новый пользователь</p>';
        }else{
            echo '<p>ОШИБКА!!! Запрос не выполнен...</p>';
        }   
    } 
}
?>        
<form action="" method="post"> 
    <b>Личная информация</b> <br>   
 
    Фамилия: <input type="text" name="surname" class="colortext"> <br>
    Имя: <input type="text" name="name" class="colortext"> <br>
    Отчество: <input type="text" name="patr" class="colortext"> <br> <br>
 
    <br><b>Данные для входа</b><br>
    <b>Логин:</b> <input type="text" name="login" class="colortext" required> <br>
    <b>Пароль:</b> <input type="password" name="pass" class="colortext" required> <br><br>
    <b>С правилами ознакомлен</b><input type=checkbox name="reg" value="yes"> <br><br> 
    <input type=submit value="Регистрация">
</form> 
</body>
</html>
Дальше по полям думаю сам разберешься.
1
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 36
11.07.2018, 00:28  [ТС]
Torovich, спасибо тебе огромное!

Добавлено через 1 минуту
Torovich, выдает ошибку в 23 строке
Parse error: syntax error, unexpected '['
0
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
11.07.2018, 00:31
У тебя старая php, ниже 5.4
Вместо
PHP
1
['login' => $_POST['login']]
Напиши
PHP
1
array('login' => $_POST['login'])
1
0 / 0 / 0
Регистрация: 02.05.2018
Сообщений: 36
11.07.2018, 01:21  [ТС]
Torovich, а вот теперь выплыло нечто страшное х_х

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES)' in Z:\home\home_work\www\db.php:6 Stack trace: #0 Z:\home\home_work\www\db.php(6): PDO->__construct('mysql:host=loca...', 'root', 'root') #1 Z:\home\home_work\www\form15.php(19): require_once('Z:\home\home_wo...') #2 {main} thrown in Z:\home\home_work\www\db.php on line 6

Добавлено через 23 минуты
Проблема решена благодаря доброму человеку с ником D_Vik
Спасибо вам)

Добавлено через 19 минут
Проблема была в том, что не совпали данные базы и конфигом.
Пароль у меня, оказывается, не задан, поэтому оставил пустые кавычки в файле db.php и все заработало)

PHP
1
2
3
4
5
6
7
<?php
$user = "root"; // Логин mysql
$pass = ""; // Пароль mysql
$dbname = "test"; // Имя базы данных
$host = "mysql:host=localhost;dbname=$dbname;charset=utf8";
$connect = new PDO($host, $user, $pass);
?>
Может это еще кому-нибудь поможет.
Ну а так еще раз спасибо ребятам за отзывчивость и помощь)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.07.2018, 01:21
Помогаю со студенческими работами здесь

Проверка на уникальность логина и почты
Здравствуйте, вот учусь PHP, используя MySQLI, проблема состоит в том, что я создал форму для регистрации, заносит он её в бд, но мне...

Проверка на уникальность логина - MySql, Hibernate
У меня в базе данных есть таблица users с полями id, login, password. Поле login в таблице помечено как UNIQUE. Связь с БД идет...

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

Авторизация с проверкой логина и пароля
Здравствуйте. Пытаюсь сделать авторизацию с проверкой логина и пароля. Данные находятся в Access в таблице &quot;сотрудники&quot;, поля Фио...

Ошибка проверки логина на уникальность в Mysql через jquery-ajax
Здравсвуйте ув. программисты! Я начинающий не бейте больно :) Есть страница регистрации с полем логина &quot; index.php &quot;. ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru