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

Добрый день! Не могу найти ошибку в форме входа на сайт!

13.03.2018, 09:47. Показов 3605. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста найти ошибку!
Пишет вот такую ошибку выдает:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\Apache24\htdocs\MySite\signub.php on line 10.

Форма PHP:
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
<?php
$dbc = mysqli_connect('localhost', 'root', '', 'lesson') or die("Ошибка подклюбения");
if(isset($_POST['submit'])){
   $username = mysqli_real_escape_string($dbc, trim($_POST['username']));
    $password1 = mysqli_real_escape_string($dbc, trim($_POST['password1']));
    $password2 = mysqli_real_escape_string($dbc, trim($_POST['password2']));
    if(!empty($username) && !empty($password1) && !empty($password2) && ($password1 == $password2)) {
        $query = "SELECT * FROM `signup` WHERE username = '$username'";
        $data = mysqli_query($dbc, $query);
        if(mysqli_num_rows($data) == 0) {
            $query ="INSERT INTO `signup` (username, password) VALUES ('$username', '$password2')";
            mysqli_query($dbc,$query);
            echo 'Всё готово, можете авторизоваться';
            mysqli_close($dbc);
            exit();
        }
        else {
            echo 'логин уже сушествует';
        }
    }
 }
 ?>
 <!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <link href="css/style1.css" rel="stylesheet">
 </head>
 <body>
 <header>
 <h1>Вход на сайт!</h1>
 </header>
 <content>
    <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <label for="username">Введите Ваш логин:</label>
    <input type="text" name="username" size="40">
    <label for="password">Введите Ваш пароль:</label>
    <input type="password" name="password1" size="40">
    <label for="password">Введите пароль еще раз:</label>
    <input type="password" name="password2" size="40">
    <button type="submit" name="submit">Войти</button>
    </form>
 </content>
 <footer class="clear"></footer>
 </body>
 </html>

За ранее благодарю!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2018, 09:47
Ответы с готовыми решениями:

Добрый день. Знакомлюсь с prolog, но, кажется, допустила где-то ошибку
Здание таково: Создайте предикат, находящий абсолютное значение числа (=X, если X&gt;=0, и =-X, если X&lt;0). Не знаю - всё ли я верно...

Добрый день! никак не могу убрать перенаправление на поиск mail.ru
Добрый день! ставил патч на цивилизацию 6, и в ноут пробралось много всякой дряни от mail.ru corp почистил adw клинером, но помогло не до...

Добрый день! У меня сломался скрипт, не могу понять в чем причина
После выбора типа сайта, в консоле выходит ошибка scripts.js:15 Uncaught TypeError: formOftype.live is not a function at...

27
0 / 0 / 1
Регистрация: 05.05.2015
Сообщений: 13
13.03.2018, 10:15
Скорее всего запрос
SQL
1
SELECT * FROM `signup` WHERE username = '$username'
не выполняется и поэтому mysqli_query() возвращает false со всеми вытекающими.
Смотрите var_dump($data) и var_dump($query)
0
0 / 0 / 0
Регистрация: 13.03.2018
Сообщений: 15
13.03.2018, 10:37  [ТС]
Что не особо понял. что необходимо поменять?

Добавлено через 2 минуты
Поменять строку SELECT * FROM `signup` WHERE username = '$username' ?
На какое ключевое выражение?
0
0 / 0 / 1
Регистрация: 05.05.2015
Сообщений: 13
13.03.2018, 10:46
Нужно проверить результат выполнения запроса. И проверить правильность строки запроса. В переменной $username может быть все что угодно(false,true,null и т.д.)
0
0 / 0 / 0
Регистрация: 13.03.2018
Сообщений: 15
13.03.2018, 10:47  [ТС]
Помогите плиз, что поменять и на что?
0
0 / 0 / 0
Регистрация: 13.03.2018
Сообщений: 15
13.03.2018, 10:52  [ТС]
Посмотрите файл!
Вложения
Тип файла: txt signub.txt (1.7 Кб, 4 просмотров)
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
13.03.2018, 13:19
Цитата Сообщение от КДВ Посмотреть сообщение
Нужно проверить результат выполнения запроса. И проверить правильность строки запроса. В переменной $username может быть все что
вот так сделайте для начала
впишите вверху $username = "SVETA"; просто без POST и проверьте ошибка вылазиет или нет

Добавлено через 43 секунды
Смотрите var_dump($data) и var_dump($query)
и так впишите и посмотрите что пишет
0
0 / 0 / 0
Регистрация: 13.03.2018
Сообщений: 15
13.03.2018, 14:38  [ТС]
Вписал: var_dump($query) = "SELECT * FROM `signup` WHERE username = '$username'";
var_dump($data) = mysqli_query($dbc, $query);
Ответ: Fatal error: Can't use function return value in write context in C:\Apache24\htdocs\MySite\signub.php on line 8
(Неустранимая ошибка: нельзя использовать возвращаемое значение функции в контексте записи)

проверил и так, сверху прописал: $username = mysqli_real_escape_string($dbc, trim("sveta"));
ответ:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\Apache24\htdocs\MySite\signub.php on line 10
(mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, boolean given)
Всё готово, можете авторизоваться
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
13.03.2018, 14:53
SQL
1
    $query = "SELECT * FROM `signup` WHERE username = 'сюда впишите любое имя которое есть в базе'";
Добавлено через 1 минуту
PHP
1
 echo mysql_error($dbс);
Добавлено через 4 минуты
SELECT * FROM `signup` WHERE username
вот этот запрос у вас не правильный скорее всего, проверьте если ли все поля в базе
signup,username

Добавлено через 1 минуту
Ответ: Fatal error: Can't use function return value in write context in C:\Apache24\htdocs\MySite\signub.php on line 8
неправильная переменная
0
0 / 0 / 0
Регистрация: 13.03.2018
Сообщений: 15
13.03.2018, 14:59  [ТС]
База новая. В phpmyadmin содержит 3 строки
1. user_id
2. username
3. password

Водил и так! Ответ тот же!
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\Apache24\htdocs\MySite\signub.php on line 10
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
13.03.2018, 15:02
PHP
1
2
3
 $username = $_POST['username'];
    $password1 = $_POST['password1'];
    $password2 = $_POST['password2'];
а так сделайте

Добавлено через 46 секунд
у меня ваш код норма работает
0
0 / 0 / 0
Регистрация: 13.03.2018
Сообщений: 15
13.03.2018, 15:06  [ТС]
Пишу в программе "Sublime Text" если, что то не правильно она подчеркивает фиолетовым цветом.
Она подчеркнула непосредственно в строке 10 цифру 0?
if(mysqli_num_rows($data) == 0) {

Уже два дня не могу понять в чем дело, я взял эту форму из видео по созданию пароля и авторизации. Там все работает! У меня все идеинтично но не работает!
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
13.03.2018, 15:16
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
<?php
 
 
 $dbc = mysqli_connect('localhost', 'root', '', 'test') or die("Ошибка подклюбения");
 if(isset($_POST['submit'])){
     
$username = mysqli_real_escape_string($dbc, trim($_POST['username']));
    $password1 = mysqli_real_escape_string($dbc, trim($_POST['password1']));
    $password2 = mysqli_real_escape_string($dbc, trim($_POST['password2']));
 
$query = "SELECT * FROM `signup` WHERE username = '$username'";
    $data = mysqli_query($dbc, $query);
    if(mysqli_num_rows($data) == 0) {
        $query ="INSERT INTO `signup` (username) VALUES ('$username')";
 mysqli_query($dbc,$query);
    echo "все ок";
    mysqli_close($dbc);
    exit();
    }
    else {
    echo 'логин уже сушествует';
    }
 
 }
 
 ?>
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <link href="css/style1.css" rel="stylesheet">
 </head>
 <body>
 <header>
 <h1>Вход на сайт!</h1>
 </header>
 <content>
    <form method="POST" action="">
    <label for="username">Введите Ваш логин:</label>
    <input type="text" name="username" size="40">
    <label for="password">Введите Ваш пароль:</label>
    <input type="password" name="password1" size="40">
    <label for="password">Введите пароль еще раз:</label>
    <input type="password" name="password2" size="40">
    <button type="submit" name="submit">Войти</button>
    </form>
 </content>
 <footer class="clear"></footer>
 </body>
 </html>
Вот так сделайте на одной странице, в одном файле
0
0 / 0 / 0
Регистрация: 13.03.2018
Сообщений: 15
13.03.2018, 15:38  [ТС]
Прописано: 8. $query = "SELECT * FROM `signup` WHERE $username = $_POST['username']";
9. $username = $_POST['password1']";
10. $username = $_POST['password2']";
Результат:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\Apache24\htdocs\MySite\signub.php on line 8

(Ошибка анализа: синтаксическая ошибка, неожиданная '' (T_ENCAPSED_AND_WHITESPACE), ожидающая идентификатор (T_STRING) или переменная (T_VARIABLE) или номер (T_NUM_STRING) в C: \ Apache24 \ htdocs \ MySite \ signub.php в строке 8)

Добавлено через 1 минуту
Сейчас попробую!

Добавлено через 6 минут
Ошибка та же,
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\Apache24\htdocs\MySite\signub.php on line 13
все ок

Добавлено через 6 минут
И в базу не чего не вводит, хоть и пишет "Все ок"
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
13.03.2018, 15:41
Цитата Сообщение от igory79 Посмотреть сообщение
И в базу не чего не вводит, хоть и пишет "Все ок"
у меня все норма отрабатывает
кстати забыл там вначале убрать свою таблицу)) надеюсь вы поменяли)

если проблема не здесь значит смотрите вашу базу данных
и точно проверяйте
е примеру столбик username напишите заново и скопируйте во все участки кода также и базе
signup - также

уже не знаю как вам помочь((
1
0 / 0 / 0
Регистрация: 13.03.2018
Сообщений: 15
13.03.2018, 16:48  [ТС]
Да, я поменял. Ладно проверю. Но все равно спасибо!

Добавлено через 59 минут
Я проверил соединение таким образом:
<?php
$server = 'localhost';
$user = 'root';
$password = '____';

$dblink = mysqli_connect($server, $user, $password);

if($dblink)
echo 'Соединение установлено.';
else
die('Ошибка подключения к серверу баз данных.');

$database = 'lesson';
$selected = mysqli_select_db($database, $dblink);
if($selected)
echo ' Подключение к базе данных прошло успешно.';
else
die(' База данных не найдена или отсутствует доступ.');
?>

Если использовать "mysql" то: Соединение есть и к базе подключается, но пишет, что "mysql" устарела.
Переписал на "mysqli", пишет:
Соединение установлено.
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\Apache24\htdocs\MySite\buttom.php on line 14
База данных не найдена или отсутствует доступ.

Странно, но понятно что ошибка где то в mysqli.
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
13.03.2018, 16:51
Цитата Сообщение от igory79 Посмотреть сообщение
$dblink = mysqli_connect($server, $user, $password);
4 ый параметр название таблицы вроде
http://php.net/manual/en/funct... onnect.php
0
0 / 0 / 0
Регистрация: 13.03.2018
Сообщений: 15
13.03.2018, 16:53  [ТС]
Кто нибудь может сталкивался с такой проблемой?

Добавлено через 1 минуту
4 строка пароль к таблице, а 13 строка название таблицы!
0
0 / 0 / 1
Регистрация: 05.05.2015
Сообщений: 13
13.03.2018, 16:58
mysqli_select_db($dblink,$database) правильный порядок параметров http://php.net/manual/ru/mysqli.select-db.php

$database - название базы, а не таблицы в базе для этой фукции
0
0 / 0 / 0
Регистрация: 13.03.2018
Сообщений: 15
13.03.2018, 17:06  [ТС]
КДВ-зделал, как вы посоветовали:

Соединение установлено. Подключение к базе данных прошло успешно.

Да в чем тогда дело!?!

Добавлено через 3 минуты
Сначала, все формы выводит нормально, после ввода логина и пароля выдает ошибку!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.03.2018, 17:06
Помогаю со студенческими работами здесь

Не могу найти ошибку в коде уже третий день
Вот код для поиска по сайту: &lt;?php include_once (&quot;../db/db.php&quot;); ?&gt; &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta...

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

Добрый день , не могу понять почему не работает system("clr")?
#include&lt;iostream&gt; #include&lt;string&gt; // getline #include&lt;cstdlib&gt; // system using namespace std; void main() { int a ; char d;...

Не могу найти ошибку в форме отправления сообщения из сайта на почтовый ящик??
&lt;FORM ACTION=&quot;send.php&quot; Method=post&gt; &lt;TABLE BORDER=0&gt; &lt;tr&gt;&lt;td&gt;Тема&lt;/td&gt;&lt;td&gt; &lt;input type=text name=&quot;sub&quot; cols=40&gt; &lt;/td&gt;&lt;/tr&gt; ...

Не отображается сайт нормальнов IE. Проблемы в CSS. Не могу найти ошибку
Может кто может подсказать где ошибка? Сайт http://klimat.studio-domino.com/shop.html нормально отображается во всех форумах кроме IE и ни...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru