Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
4 / 3 / 2
Регистрация: 11.06.2013
Сообщений: 298
1

Не проверяет на существование логина

05.10.2014, 20:08. Показов 1267. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Читал множество тем на вашем форуме, большинство применял к своему коду - не помогло. Проблема в том что он всегда разрешает зарегаться. Заранее спасибо за помощь
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
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
<?php
session_start();
echo"<html><link href='autorization.css' rel='stylesheet' type='text/css' /><link rel='stylesheet' type='text/css' href='CSS/style.css' />";
 
if (isset($_POST['login'])) { $login = $_POST['login']; 
//if ($login == '') { unset($login);} 
} 
 
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
 
if (isset($_POST['email'])) { $email=$_POST['email']; if ($email =='') { unset($email);} }
 
if (isset($_POST['first_name'])) { $first_name=$_POST['first_name']; if ($first_name =='') { unset($first_name);} }
 
if (isset($_POST['last_name'])) { $last_name=$_POST['last_name']; if ($last_name =='') { unset($last_name);} }
 
if (isset($_POST['address'])) { $address=$_POST['address']; if ($address =='') { unset($address);} }
 
 if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
echo "<script>alert('Found empty fields');</script>";
echo "<script>document.location.replace('http://shopbat.esy.es/reg.php');</script>";
    }
 
 
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
 
    $password = stripslashes($password);
    $password = htmlspecialchars($password);
 
 $email = stripslashes($email);
    $email = htmlspecialchars($email);
 
 $first_name = stripslashes($first_name);
    $first_name = htmlspecialchars($first_name);
 
    $last_name = stripslashes($last_name);
    $last_name = htmlspecialchars($last_name);
 
    $address= stripslashes($address);
    $address = htmlspecialchars($address);
 
 //удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);
$email = trim($email);
$first_name = trim($first_name);
$last_name = trim($last_name);
$address = trim($address);
 // подключаемся к базе
 
 
    include ("bd.php");
 // проверка на существование пользователя с таким же логином
$result = mysql_query("SELECT * FROM `users` WHERE 'login'='".$_POST['login']."'") or die(mysql_error());
$myrow = mysql_fetch_array($result);
if($myrow['id']=="")
{
 
 // если такого нет, то сохраняем данные
 $result2 = mysql_query ("INSERT INTO users (login,password,email,first_name,last_name,address) VALUES('$login','$password','$email','$first_name','$last_name','$address')");
    // Проверяем, есть ли ошибки
echo
"<section class='main'>
<form method='POST' action='products.php' class='form-2'>";
    if ($result2==TRUE)
    {
      echo "Registration complete go to  <a href='index.html'> <strong> Main page </strong> </a>   or you will be return automatically ";
echo '<META HTTP-EQUIV="Refresh" CONTENT="4; URL=index.html">';
    }
 else {
    echo mysql_error();
    }
echo "</section>
</form>";
else
{
 exit ("error");
}
 
    ?>
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2014, 20:08
Ответы с готовыми решениями:

Проверка на существование логина в БД
Хочу при регистрации проверить, есть ли пользователь с таким логином. $sql = mysql_query(&quot;SELECT *...

Проверка на существование логина
if (!mysql_query(&quot;SELECT `login` FROM `r_users` WHERE `login` = '&quot;.$login.&quot;'&quot;)) { ...

Проверка на существование логина в базе
Есть php код и форма, почему постоянно с одним и тем же логином я могу регистрироваться ?...

Ошибка проверки логина на существование в базе данных
Зделал проверку логина на существование в базе данних, если нету, записивает в базу, а если єсть,...

12
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
06.10.2014, 11:24 2
Цитата Сообщение от danil663 Посмотреть сообщение
</form>";
закрывающаяся скобка нужна

Добавлено через 1 минуту
Цитата Сообщение от danil663 Посмотреть сообщение
if($myrow['id']=="")
поменяйте
PHP
1
if(!isset($myrow['id']))
Добавлено через 2 минуты
Цитата Сообщение от danil663 Посмотреть сообщение
$login = stripslashes($login);
* * $login = htmlspecialchars($login);
Цитата Сообщение от danil663 Посмотреть сообщение
$login = trim($login);
можно заменить
PHP
1
$login = trim(htmlspecialchars(stripslashes($login)));
и тд

Добавлено через 1 минуту
Цитата Сообщение от danil663 Посмотреть сообщение
WHERE 'login'='".$_POST['login'].
вы заносите в базу переделанное значение,а проверяете не переделанное. вместо POST нужно поставить $login
1
4 / 3 / 2
Регистрация: 11.06.2013
Сообщений: 298
06.10.2014, 12:36  [ТС] 3
Изменил всё как вы сказали получилось вот так:
PHP/HTML
1
2
3
4
$result = mysql_query("SELECT * FROM `users` WHERE 'login'='$login'") or die(mysql_error());
$myrow = mysql_fetch_array($result);
if(!isset($myrow['id']))
{
...
но он позволяет регистрировать всё подряд, то есть всё ещё не проверяет.
0
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
06.10.2014, 12:38 4
проверьте что у вас приходит из формы, и посмотрите что заносится в базу
1
4 / 3 / 2
Регистрация: 11.06.2013
Сообщений: 298
06.10.2014, 13:04  [ТС] 5
в базу он заносит то что я ввожу в поля ввода "при регистрации", то есть данные заносятся
мне кажется что-то не так с результатом запроса т.к. при вводе
PHP/HTML
1
2
echo $myrow['id'];
echo $myrow;
не отображает значения
0
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
06.10.2014, 13:06 6
PHP
1
print_r($myrow);
что выдает?
1
4 / 3 / 2
Регистрация: 11.06.2013
Сообщений: 298
06.10.2014, 13:27  [ТС] 7
ничего(
0
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
06.10.2014, 13:32 8
Цитата Сообщение от danil663 Посмотреть сообщение
$result = mysql_query("SELECT * FROM `users` WHERE 'login'='$login'"
попробуйте ввести в Phpmyadmin такой запрос
SQL
1
"SELECT * FROM `users` WHERE login='$login'
вместо логин подставьте любое существующее значение

Добавлено через 1 минуту
ошибок никаких не выдает?
1
4 / 3 / 2
Регистрация: 11.06.2013
Сообщений: 298
06.10.2014, 13:53  [ТС] 9
всё отлично находит
0
249 / 249 / 98
Регистрация: 26.07.2010
Сообщений: 1,685
06.10.2014, 13:55 10
Лучший ответ Сообщение было отмечено danil663 как решение

Решение

Цитата Сообщение от danil663 Посмотреть сообщение
mysql_query("SELECT * FROM `users` WHERE 'login'='$login'")
тогда в скрипте сделайте так
PHP
1
mysql_query("SELECT * FROM `users` WHERE login='".$login."'")
и посмотрите что выведет
1
4 / 3 / 2
Регистрация: 11.06.2013
Сообщений: 298
06.10.2014, 14:06  [ТС] 11
Большое спасибо, вроде как заработало)))
0
4 / 4 / 5
Регистрация: 08.05.2013
Сообщений: 55
07.10.2014, 19:23 12
PHP
1
2
3
4
5
 $query = mysql_query("SELECT COUNT(id) FROM users WHERE name='".mysql_real_escape_string($_POST['name'])."'")or die ("<br>Invalid query: " . mysql_error()); 
    if(mysql_result($query, 0) > 0) 
    { 
        echo "Користувач с таким ім'ям уже існує";
    }
Я вот так делал.
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
09.10.2014, 08:20 13
Цитата Сообщение от danil663 Посмотреть сообщение
$result = mysql_query("SELECT * FROM `users` WHERE 'login'='$login'") or die(mysql_error());
у Вас изночально ошибка в запросе, вот здесь WHERE 'login'='$login'") там login должен быть в обратных ковычках...
0
09.10.2014, 08:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2014, 08:20
Помогаю со студенческими работами здесь

Проверка логина из формы на наличие логина в базе данных
Пожалуюста подскажите что у меня неправильно работает в коде. Ошибок вродебы нет. Вообщем код...

Проверка на существование логина при регистрации
Помогите со скриптом &lt;script src=&quot;jquery.js&quot; type=&quot;text/javascript&quot;...

Создать пакетный файл, который проверяет существование файла...
Помогите пожалуйста! Совсем не понимаю Bat-файлы......Необходимо создать пакетный файл, который...

Не проверяет for цикл в char массиве буквы. Только первый элемент проверяет
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;string&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt;...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru