Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155

переход на mysqli

04.01.2016, 18:07. Показов 4916. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, знаю что эта тема была, но не получается всё переделать на mysqli
много переделал, но что то ему не нравится, помогите правильно переделать все на mysqli.

PHP
1
2
$db = mysqli_connect("localhost", "root", "", "organizer");
mysqli_query($db, "SET NAMES utf8");
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
<?php
    if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
    if (isset($_POST['name'])) { $name=$_POST['name']; if ($name =='') { unset($name);} }
    //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
 if (empty($login) or empty($password) or empty($name)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
    }
    //если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
 $password = stripslashes($password);
    $password = htmlspecialchars($password);
    $name = stripslashes($name);
    $name = htmlspecialchars($name);
 //удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);
    $name = trim($name);
 // подключаемся к базе
    include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
 // проверка на существование пользователя с таким же логином
    $result = mysqli_query($db,"SELECT id FROM users WHERE login='$login'");
    $myrow = mysqli_fetch_array($result);
    if (!empty($myrow['id'])) {
    exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
    }
 // если такого нет, то сохраняем данные
    $result2 = mysqli_query ($db,"INSERT INTO users (login,password,name) VALUES('$login','$password','$name')");
    // Проверяем, есть ли ошибки
    if ($result2=='TRUE')
    {
        //создаём базу органайзер
    $id = $mysqli->insert_id;//последний добавленный ид
     mysqli_query($db,"CREATE TABLE IF NOT EXISTS `inventarizacia_$id` (
                     `number` VARCHAR(255) NOT NULL,
                      `title` text NOT NULL,
                      `kolichestvo` INT(3) NOT NULL,
                      `kabinet` text NOT NULL,
                      PRIMARY KEY (`number`)
                    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
    }
 else {
    echo "Ошибка! Вы не зарегистрированы.";
    }
    ?>
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
<?php
    session_start();
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
        //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
    }
    //если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
$password = stripslashes($password);
    $password = htmlspecialchars($password);    
//удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);    
// подключаемся к базе
    include ("bd.php"); 
$result = mysqli_query($db,"SELECT * FROM users WHERE login='$login'"); //извлекаем из базы все данные о пользователе с введенным логином
    $myrow = mysqli_fetch_array($result);
    if (empty($myrow['password']))
    {
    //если пользователя с введенным логином не существует
    exit ("Извините, введённый вами login или пароль неверный.");
    }
    else 
    //если существует, то сверяем пароли
    if ($myrow['password']==$password) {
    //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
    $_SESSION['id']=$myrow['id'];
    $_SESSION['login']=$myrow['login']; 
    $_SESSION['password']=$myrow['password'];
    $_SESSION['name']=$myrow['name'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
    {    
echo "<script>document.location.replace('index.php');</script>";
}
    }
 else {
    //если пароли не сошлись
    exit ("Извините, введённый вами login или пароль неверный.");
    }
        ?>
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
<?php
    //  вся процедура работает на сессиях. Именно в ней хранятся данные  пользователя, пока он находится на сайте. Очень важно запустить их в  самом начале странички!!!
    session_start();
    ?>
    <?php
include ("bd.php"); 
 
$id_table1 = mysqli_query($db, "SELECT `id` FROM `users` WHERE `login` =".$_SESSION['login']);
echo $_SESSION['login'];// выводит на экран логин т. е. работает
$row = mysqli_fetch_assoc($id_table1);
$row2 = $row['id'];
echo ($row2);// а здесь не работает
$sql = mysqli_query($db, "SELECT * FROM `inventarizacia_$row2`");
?>
<table border='1'>
<tr>
    <th>Инвентарный номер</th>
    <th>Название</th>
    <th>Кол-во</th>
    <th>Кабинет</th>
    <th>Удалить</th>
    <th>Редактировать</th>
</tr>
<?php
while ($row = $mysqli->query($sql)) {
?>
<tr>
    <td><?php echo $row['number'];?></td>
    <td><?php echo $row['title'];?></td>
    <td><?php echo $row['kolichestvo'];?></td>
    <td><?php echo $row['kabinet'];?></td>
    <td><a href='?del=<?php echo $row['number'];?>' onclick="return destroy();">Удалить</a></td>
    <td><a href='?edit=<?php echo $row['number'];?>'>Редактировать</a></td>
</tr>
<?php
}
?>
</table>
<table border='1'><tr>
    <form action="" method="POST" name='add'>   
       <td> <input type="text" name="nomer" placeholder="Инвентарный номер" style="width:150px;"></td>
       <td> <input type="text" name="nazvanie" style="width:150px;" placeholder="Название"></td>
       <td> <input type="text" name="kolichestvo" style="width:150px;" placeholder="Кол-во"></td>
       <td> <input type="text" name="kabinet" style="width:150px;" placeholder="Кабинет"></td>
       <td> <button name='submit_add' style="width:150px;">Добавить</button>     </td>              
    </form>
</tr>
</table>
 
<?php
if (isset($_POST['submit_add'])) {
    $nomer = $_POST['nomer'];
    $nazvanie = $_POST['nazvanie'];
    $kolichestvo = $_POST['kolichestvo'];
    $kabinet = $_POST['kabinet'];
    mysqli_query ($db, "INSERT INTO `inventarizacia_$row2`(`number`, `title`, `kolichestvo`, `kabinet`) VALUES ('".$nomer."','".$nazvanie."','".$kolichestvo."','".$kabinet."')");
    echo "<script>document.location.replace('index.php');</script>";
}
 
if (isset($_GET['del'])) {
    $del_id = $_GET['del'];
    mysqli_query ($db, "DELETE FROM `inventarizacia_$row2` WHERE `number`=".$del_id);
    echo "<script>document.location.replace('index.php');</script>";
    
}
 
if (isset($_GET['edit'])) {
    $edit_id = $_GET['edit'];
    $sql = mysqli_query ($db, "SELECT * FROM `inventarizacia_$row2` WHERE `number`=".$edit_id);
    $row = mysqli_fetch_assoc($sql);
?>
<table border='1'><tr>
    <form action="" method="POST" name='edit'>  
        
       <td> <input type="text" name="nomer" placeholder="Инвентарный номер" style="width:150px;" value="<?php echo $row['number'];?>"> </td>
       <td> <input type="text" name="nazvanie" style="width:150px;" placeholder="Название" value="<?php echo $row['title'];?>"></td>
       <td> <input type="text" name="kolichestvo" style="width:150px;" placeholder="Кол-во" value="<?php echo $row['kolichestvo'];?>"></td>
       <td> <input type="text" name="kabinet" style="width:150px;" placeholder="Кабинет" value="<?php echo $row['kabinet'];?>"></td>
       <td> <button name='submit_edit' style="width:150px;">Редактировать</button>   </td>              
    </form>
    </tr>
</table>
<?php
    if (isset($_POST['submit_edit'])) {
        
        $nomer = $_POST['nomer'];
        $nazvanie = $_POST['nazvanie'];
        $kolichestvo = $_POST['kolichestvo'];
        $kabinet = $_POST['kabinet'];
        mysqli_query($db, "UPDATE `inventarizacia_$row2` SET `number` = '".$nomer."', `title` = '".$nazvanie."', `kolichestvo` = '".$kolichestvo."', `kabinet` = '".$kabinet."' WHERE `number`=".$nomer);        
        echo "<script>document.location.replace('index.php');</script>";
    }
 
}
?>
Спасибо!

Добавлено через 12 минут
счас выдаёт ошибку
Fatal error: Call to a member function query() on a non-object in Z:\home\organizer\www\tableorganaizer.ph p on line 25
Добавлено через 1 минуту
в последнем примере ругается на строчку
PHP
1
while ($row = $mysqli->query($sql)) {
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.01.2016, 18:07
Ответы с готовыми решениями:

Переход на mysqli
Здравствуйте, подскажите как исправить эту ошибку, хотя вроде mysqli поддерживается в версиях 5+? phpmyadmin: Информация о версии: 4.5.1,...

Переход на mysqli
Всем привет. При переходе на mysqli возникли проблемы с загрузкой данных на сервер,ошибок не каких нет, данные с базы выводятся но не...

Переход с mysql на mysqli
Всем доброго времени суток! Помогите пожалуйста решить проблему перехода с mysql на mysqli Проект состоит из следующих файлов: ...

39
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
06.01.2016, 14:26  [ТС]
Студворк — интернет-сервис помощи студентам
спасибо, исправил!
mysqli_query($mysqli, "SET NAMES utf8");
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
06.01.2016, 14:29
После совета Виталюска, все встало на места?
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
06.01.2016, 18:51  [ТС]
Сравнение utf8_general_ci
иправил mysqli_query($mysqli, "SET NAMES utf8");
уффф заработало! Спасибо большое!

Добавлено через 4 часа 18 минут
новая проблема, если вводишь логин цифру, то всё норм работает, но если в логине буква, то выдаёт ошибку

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in Z:\home\organizer\www\tableorganaizer.ph p on line 16

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in Z:\home\organizer\www\tableorganaizer.ph p on line 31

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
<?php
        session_start();
?>
<?php
if (empty($_SESSION['login']) or empty($_SESSION['password']))
    {
        //если не было входа
        echo ("Зарегись");
        }
    else
    {
        //если вошёл под свом логином
include ("bd.php");//подключаемся к базе 
$id_table1 = mysqli_query($mysqli, "SELECT `id` FROM `users` WHERE `login` =".$_SESSION['login']); //выбераем id из таблицы с логинами
 
$row = mysqli_fetch_assoc($id_table1);
$row2 = $row['id'];
$sql = mysqli_query($mysqli,"SELECT * FROM `inventarizacia_$row2`");// выбираем таблицу и плюсуем id к ней
?>
<table border='1'>
<tr>
    <th>Инвентарный номер</th>
    <th>Название</th>
    <th>Кол-во</th>
    <th>Кабинет</th>
    <th>Удалить</th>
    <th>Редактировать</th>
</tr>
<?php
//выводим данные из базы на экран
while ($row = mysqli_fetch_assoc($sql)) {
?>
<tr>
    <td><?php echo $row['number'];?></td>
    <td><?php echo $row['title'];?></td>
    <td><?php echo $row['kolichestvo'];?></td>
    <td><?php echo $row['kabinet'];?></td>
    <td><a href='?del=<?php echo $row['number'];?>' onclick="return destroy();">Удалить</a></td>
    <td><a href='?edit=<?php echo $row['number'];?>'>Редактировать</a></td>
</tr>
<?php
}
?>
</table>
<table border='1'><tr><!--строка для добавления данных в базу-->
    <form action="" method="POST" name='add'>   
       <td> <input type="text" name="nomer" placeholder="Инвентарный номер" style="width:150px;"></td>
       <td> <input type="text" name="nazvanie" style="width:150px;" placeholder="Название"></td>
       <td> <input type="text" name="kolichestvo" style="width:150px;" placeholder="Кол-во"></td>
       <td> <input type="text" name="kabinet" style="width:150px;" placeholder="Кабинет"></td>
       <td> <button name='submit_add' style="width:150px;">Добавить</button>     </td>              
    </form>
</tr>
</table>
 
<?php // ввод данных в базу из строки добавления
if (isset($_POST['submit_add'])) {
    $nomer = $_POST['nomer'];
    $nazvanie = $_POST['nazvanie'];
    $kolichestvo = $_POST['kolichestvo'];
    $kabinet = $_POST['kabinet'];
    mysqli_query ($mysqli, "INSERT INTO `inventarizacia_$row2`(`number`, `title`, `kolichestvo`, `kabinet`) VALUES ('".$nomer."','".$nazvanie."','".$kolichestvo."','".$kabinet."')");
    echo "<script>document.location.replace('index.php');</script>";
}
 //удалить строку в базе
if (isset($_GET['del'])) {
    $del_id = $_GET['del'];
    mysqli_query ($mysqli, "DELETE FROM `inventarizacia_$row2` WHERE `number`=".$del_id);
    echo "<script>document.location.replace('index.php');</script>";
    
}
 //остальное изменить данные в строке
if (isset($_GET['edit'])) {
    $edit_id = $_GET['edit'];
    $sql = mysqli_query ($mysqli, "SELECT * FROM `inventarizacia_$row2` WHERE `number`=".$edit_id);
    $row = mysqli_fetch_assoc($sql);
?>
<table border='1'><tr>
    <form action="" method="POST" name='edit'>  
        <td> <input type="text" hidden name="id" placeholder="id" style="width:150px;" value="<?php echo $row['id'];?>"> </td>
       <td> <input type="text" name="nomer" placeholder="Инвентарный номер" style="width:150px;" value="<?php echo $row['number'];?>"> </td>
       <td> <input type="text" name="nazvanie" style="width:150px;" placeholder="Название" value="<?php echo $row['title'];?>"></td>
       <td> <input type="text" name="kolichestvo" style="width:150px;" placeholder="Кол-во" value="<?php echo $row['kolichestvo'];?>"></td>
       <td> <input type="text" name="kabinet" style="width:150px;" placeholder="Кабинет" value="<?php echo $row['kabinet'];?>"></td>
       <td> <button name='submit_edit' style="width:150px;">Редактировать</button>   </td>              
    </form>
    </tr>
</table>
<?php
    if (isset($_POST['submit_edit'])) {
        $id = $_POST['id'];
        $nomer = $_POST['nomer'];
        $nazvanie = $_POST['nazvanie'];
        $kolichestvo = $_POST['kolichestvo'];
        $kabinet = $_POST['kabinet'];
        mysqli_query($mysqli, "UPDATE `inventarizacia_$row2` SET `id` = '".$id."',`number` = '".$nomer."', `title` = '".$nazvanie."', `kolichestvo` = '".$kolichestvo."', `kabinet` = '".$kabinet."' WHERE `id`=".$id);        
        echo "<script>document.location.replace('index.php');</script>";
    }
 
}
    }
?>
почему тут букву нельзя?
PHP
1
$row = mysqli_fetch_assoc($id_table1);
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
06.01.2016, 18:53
проверяйте верность логина, буквы конечно-же можно)))просто такого пользователя не существует
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
06.01.2016, 19:15  [ТС]
в phpadmin норм показывает, если ввожу пользователь "1", то работает
если "q", то выдаёт ошибку...
и таблица создаётся на автомате с + id из строки пользователя
пробовал несколько раз и ошибиться не могу, с одной буквой, что то с запросами

Добавлено через 1 минуту
попробовал ошибится с логином, совсем другую ошибку показывает

Добавлено через 1 минуту
кстати, туда я попадаю, после ввода логина и пароля и уже там вместо таблицы ошибку выдаёт
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
06.01.2016, 19:16
у вас в таблице есть пользователи с логинами "1", "q"???
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
06.01.2016, 20:32  [ТС]
да, есть такие
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
06.01.2016, 20:35  [ТС]
скрины
Миниатюры
переход на mysqli   переход на mysqli  
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
06.01.2016, 20:43  [ТС]
вот сам сайт
Миниатюры
переход на mysqli  
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
06.01.2016, 21:18  [ТС]
вот гляньте, две последние строчки выделенные, id 15, 16
id 15 работает, id 16 выдаёт ошибку
Миниатюры
переход на mysqli  
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
06.01.2016, 21:19  [ТС]
но базы создаются
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
06.01.2016, 21:32
А форма авторизации как выглядит покажите код
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
06.01.2016, 21:39  [ТС]
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
<?php
        session_start();
    ?>
<?PHP header("Content-Type: text/html; charset=utf-8");?>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<?php
    if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
    if (isset($_POST['name'])) { $name=$_POST['name']; if ($name =='') { unset($name);} }
    //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
 if (empty($login) or empty($password) or empty($name)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
    }
    //если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
 $password = stripslashes($password);
    $password = htmlspecialchars($password);
    $name = stripslashes($name);
    $name = htmlspecialchars($name);
 //удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);
    $name = trim($name);
 // подключаемся к базе
    include ("bd.php");
 // проверка на существование пользователя с таким же логином
    $result = mysqli_query($mysqli,"SELECT id FROM users WHERE login='$login'");
    $myrow = mysqli_fetch_array($result);
    if (!empty($myrow['id'])) {
    exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
    }
 // если такого нет, то сохраняем данные
    $result2 = mysqli_query ($mysqli,"INSERT INTO users (login,password,name) VALUES('$login','$password','$name')");
    // Проверяем, есть ли ошибки
    if ($result2=='TRUE')
    {
        //создаём базу органайзер
    $id = mysqli_insert_id($mysqli);//последний добавленный ид
     mysqli_query($mysqli,"CREATE TABLE IF NOT EXISTS `inventarizacia_$id` (
                      `id` int(11) NOT NULL AUTO_INCREMENT, 
                      `number` VARCHAR(255) NOT NULL,
                      `title` text NOT NULL,
                      `kolichestvo` INT(3) NOT NULL,
                      `kabinet` text NOT NULL,
                      PRIMARY KEY (`id`)
                    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
    echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
    }
 else {
    echo "Ошибка! Вы не зарегистрированы.";
    }
    ?>
Добавлено через 54 секунды
там регистрация, а эта проверка входа
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
<?php
    session_start();
    ?>
    <?PHP header("Content-Type: text/html; charset=utf-8");?>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<?php
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
        //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
    }
    //если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
$password = stripslashes($password);
    $password = htmlspecialchars($password);    
//удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);    
// подключаемся к базе
    include ("bd.php"); 
$result = mysqli_query($mysqli,"SELECT * FROM users WHERE login='$login'"); //извлекаем из базы все данные о пользователе с введенным логином
    $myrow = mysqli_fetch_array($result);
    if (empty($myrow['password']))
    {
    //если пользователя с введенным логином не существует
    exit ("Извините, введённый вами login или пароль неверный.");
    }
    else 
    //если существует, то сверяем пароли
    if ($myrow['password']==$password) {
    //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
    $_SESSION['id']=$myrow['id'];
    $_SESSION['login']=$myrow['login']; 
    $_SESSION['password']=$myrow['password'];
    $_SESSION['name']=$myrow['name'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
    {    
echo "<script>document.location.replace('index.php');</script>";
}
    }
 else {
    //если пароли не сошлись
    exit ("Извините, введённый вами login или пароль неверный.");
    }
        ?>
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
06.01.2016, 21:43  [ТС]
вот структура таблицы с логинами, и всё остальное
Миниатюры
переход на mysqli  
Вложения
Тип файла: rar organizer_русскиебуквы7.rar (103.3 Кб, 3 просмотров)
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
06.01.2016, 22:46
Я имел ввиду html форму)
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
06.01.2016, 22:56  [ТС]
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
<form action="testreg.php" name="form1" method="post" enctype="multipart/form-data">
    <!--****  testreg.php - это адрес обработчика. То есть, после нажатия на кнопку  "Войти", данные из полей отправятся на страничку testreg.php методом  "post" ***** -->
 <p>
    <label>Ваш логин:<br></label>
    <input name="login" type="text" size="15" maxlength="15">
    </p>
         <p>
    <label>Ваш пароль:<br></label>
    <input name="password" type="password" size="15" maxlength="15">
    </p>
       <p>
    <input type="submit" name="submit" value="Войти"><br>
   <br>
     </p></form>
    <form name="form2" action="reg.php">
            <input type="submit" value="Зарегистрироваться">
        </form>
    <br>
    <?php
    // Если пусты, то мы не выводим ссылку
    echo "Вы вошли на сайт, как гость";
    }
    else
    {
        // Если не пусты, то мы выводим ссылку
        echo "Вы вошли на сайт, как ".$_SESSION['name']."<br><a href='exit.php'>выход</a>";
        
    }
    ?>
Добавлено через 1 минуту
чуть выше в rar-е весь проект
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
07.01.2016, 21:20
Попробовал - оба типа пользователей как с цифровым, так и с буквенным логинами проходят авторизацию... По коду конечно масса замечаний, включите отображение ошибок и до конца разработки не выключайте. У вас и сессии пытаются стартовать дважды из разных файлов, и notice куча выдает изза несуществующих переменных
0
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
07.01.2016, 21:52  [ТС]
авторизацию все проходят, но у буквенных не выдаёт данные из таблицы, я с сессией очень плохо дружу, с горем пополам понимаю, а как включить ошибки? я разные кода с инета брал, и просто получается пусто. тоесть воще ничего не выдает. мне очень интересно, почему на буквы ругается, в логине, если он берёт данные из другой таблицы?

Добавлено через 58 секунд
а какие замечания по коду? я часть методом тыка делал, пока не заработает.
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
07.01.2016, 22:09
Лучший ответ Сообщение было отмечено nikotan как решение

Решение

Все понял)))) У Вас в запросе кавычки не расставлены, для чисел это позволительно, а для строк нет
PHP
1
$id_table1 = mysqli_query($mysqli, "SELECT `id` FROM `users` WHERE `login` =".$_SESSION['login']);
сделайте так
PHP
1
$id_table1 = mysqli_query($mysqli, "SELECT `id` FROM `users` WHERE `login` ='$_SESSION[login]'");
1
1 / 1 / 2
Регистрация: 23.10.2011
Сообщений: 155
07.01.2016, 22:12  [ТС]
блин, я Вам премного благодарен!!! спасибо! работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.01.2016, 22:12
Помогаю со студенческими работами здесь

Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in
Здравствуйте! Подскажите как решить проблему с выдаваемыми ошибками: Вот сам файл install.php &lt;?php //Подключение нужных...

Ошибка mysqli::query(): Couldn't fetch mysqli
Здравствуйте) Пытаюсь вывести в БД данные из html формы, максимально сократила код php, убрала все проверки, чтобы найти проблему....

Warning: mysqli::mysqli() [mysqli.mysqli]: php_network_getaddresses: getaddrinfo failed: Этот хост неизвестен
Денвер запущен, локалхост доступен, через cmd логинюсь в mysql.exe успешно. Вот что выводится на странице при попытке подключения к...

Переход на MySQLi
В php вообще не шарю, может кто поможет перейти на mysqli, видел статьи в интернете, но без базовых знаний все равно трудно что-то сделать....

Переход на mysqli
Начал потихоньку переводить свой проект на mysqli. Возникла проблема. Файл connect.php &lt;?php $mysqli = new...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru