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

Почему не выводятся ошибки?

15.12.2012, 16:05. Показов 1232. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста! Есть форма. Если ввести разные пароли или оставить некоторые поля пустыми, то при нажатии на кнопку отправить, по идее должны выводиться ошибки: "Поля не заполнены" или "Пароли не совпадают", но ничего не выводится. Почему?

Код:
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
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/atm_admin/library/page_public.php');
 
/* если нажата кнопка отправить */
if(isset($_POST['submit_install_cms'])){
    $db_name = $_POST['db_name'];
    $db_user = $_POST['db_user'];
    $db_mail = $_POST['db_mail'];
    $db_pass = $_POST['db_pass'];
    $db_pass_confirm = $_POST['db_pass_confirm'];
    $db_host = $_POST['db_host'];
 
    if($db_name != "" && $db_user != "" && $db_pass != "" && $db_pass_confirm != "" && $db_host != ""){
        if($db_pass == $db_pass_confirm){
            $connect = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
            if($connect){
                $sql = "CREATE TABLE IF NOT EXISTS `atm_admin` (
                        `id` int(11) NOT NULL AUTO_INCREMENT,
                        `db_name` varchar(55) NOT NULL,
                        `db_user` varchar(55) NOT NULL,
                        `db_pass` varchar(55) NOT NULL,
                        `db_host` varchar(55) NOT NULL,
                        PRIMARY KEY (`id`)
                        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5";
                if($sql){
                    $query = "INSERT INTO atm_admin (db_name, db_user, db_pass, db_host) VALUES ('$db_name', '$db_user', '$db_pass', '$db_host')";
                    $res = mysqli_query($connect, $query);
    
                    /* создаём файл настроек ATM-CMS */
                    $fp = fopen("atm_admin/atm_config.php","a");
                    $date_install = "Дата установки: ".date("Y-m-d H:i:s");
                    /* записываем дату установки ATM-CMS */
                    $record = fwrite($fp, $date_install);
                    fclose($fp);
    
                    /* отправка email */
                    $from = 'atm87@mail.ru';
                    $subject = 'Установлена ATM-CMS';
                    $message = 'Была установлена ATM-CMS. E-mail пользователя: ' . $db_mail;
                    mail($db_mail, $subject, $message, 'From: '.$from);
    
                    header("Location: index.php");
                }else{
                    $msg_error = "Ошибка! Не удалось создать таблицу в базе данных.";
                }
            }else{
                $msg_error = "Не удалось подключиться к базе данных. Возможно, база данных не создана.";
            }
        }else{
            $msg_error = "Пароли не совпадают.";
        }
    }else{
        $msg_error = "Заполнены не все поля.";
    }
}
 
class AtmInstall extends PagePublic{
    protected function content(){
        ?>
        <table class="atm_install_form">
            <tr>
            <td>
                <center><h1>Установка ATM-CMS</h1>
                <strong>Введите информацию для подключения к базе данных.</strong><br /><br />
                <?php if(isset($msg_error)){ echo "<center><h2>".$msg_error."</h2></center><br />"; }
                    $this->atm_install_form(); 
                ?>
            </td>
            </tr>
            <tr>
                <td>
        <?php
    }
 
    /* форма установки atm-cms */
    private function atm_install_form(){
    ?>
                    <form action='atm_install.php' method='post'>
                    Имя базы данных:<br />
                    <input type='text' name='db_name' /><br /><br />
                    Имя пользователя:<br />
                    <input type='text' name='db_user' /><br /><br />
                    E-mail:<br />
                    <input type='text' name='db_mail' /><br /><br />
                    Пароль:<br />
                    <input type='password' name='db_pass' /><br /><br />
                    Подтверждение пароля:<br />
                    <input type='password' name='db_pass_confirm' /><br /><br />
                    Сервер базы данных:<br />
                    <input type='text' name='db_host' /><br /><br />
                    <input type='submit' value='Далее' name='submit_install_cms' /><br />
                    </form>
                    </center>
                </td>
            </tr>
        </table>
        </body>
        </html>
    <?php
    }
}
/* вывод контента */
$page = new AtmInstall();
$page->displayPage();
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.12.2012, 16:05
Ответы с готовыми решениями:

Почему не выводятся данные?
&lt;?php include 'database.php' $link = mysql_connect('cyber-park.ru','fireflow1919','discovery1'); if (!$link) { die('Ошибка...

Почему не выводятся данные из БД PHP?
Здравствуйте! Почему-то приведённый ниже код ничего не выводит (хотя я проверял, запрос выполняется - поставил or die ()) &lt;?php ...

Почему не выводятся данные из базы
вот мой код &lt;?php //вывод заголоука с данными о кодировке страницы header ('Content-type: text/html; charset=utf-8/'); // Настройка...

10
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
15.12.2012, 17:27
Цитата Сообщение от atm87 Посмотреть сообщение
PHP
1
2
$sql = "CREATE TABLE IF NOT EXISTS `atm_admin` ( `id` int(11) NOT NULL AUTO_INCREMENT, `db_name` varchar(55) NOT NULL, `db_user` varchar(55) NOT NULL, `db_pass` varchar(55) NOT NULL, `db_host` varchar(55) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5";
if($sql){
а что это?
0
2 / 2 / 0
Регистрация: 15.12.2012
Сообщений: 126
15.12.2012, 17:50  [ТС]
Это создание таблицы в БД
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
15.12.2012, 17:53
что то я не уверен что таблица может создаться просто от того что в переменную поместят sql-запрос, без отправки его в базу
0
2 / 2 / 0
Регистрация: 15.12.2012
Сообщений: 126
15.12.2012, 18:00  [ТС]
Дело в том, что при заполнении формы, данные заносятся в переменные и по ним происходит подключение а БД. И в ней же создаётся таблица. Например, у нас есть база atm-cms, пользователь вводит в input db_name "atm-cms", а так же пароли. Происходит подключение к БД, создаётся таблица.
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
15.12.2012, 18:06
как может создатся таблица если вы запрос к базе не отправляете а только в переменную помещаете?

Добавлено через 1 минуту
что касается вывода он у вас создается в методе content но в этом коде нет вызова этого метода
0
2 / 2 / 0
Регистрация: 15.12.2012
Сообщений: 126
15.12.2012, 18:13  [ТС]
А как сделать правильно?

Добавлено через 3 минуты
Если оставить так, то выдаст ошибку.

PHP
1
2
3
4
5
6
7
8
CREATE TABLE IF NOT EXISTS `atm_admin` (
                `id` int(11) NOT NULL AUTO_INCREMENT,
                `db_name` varchar(55) NOT NULL,
                `db_user` varchar(55) NOT NULL,
                `db_pass` varchar(55) NOT NULL,
                `db_host` varchar(55) NOT NULL,
                PRIMARY KEY (`id`)
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5;
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
15.12.2012, 18:15
ну вы в переменную поместили sql запрос, после этого его нужно в базу отправить
PHP
1
mysqli_query($connect, $sql);
1
2 / 2 / 0
Регистрация: 15.12.2012
Сообщений: 126
15.12.2012, 18:46  [ТС]
Точно))) А по поводу ошибок что? Почему они не выводятся. Если пользователь ввёл разные пароли, то в else находится переменная $msg_error = "Пароли не совпадают";
Значит перед формой должна вывестись ошибка, т.е. if(isset($msg_error)){ echo "<center><h2>".$msg_error."</h2></center><br />";

Добавлено через 4 минуты
Вот такой сейчас у меня код:
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
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/atm_admin/library/page_public.php');
 
/* если нажата кнопка отправить */
if(isset($_POST['submit_install_cms'])){
    $db_name = $_POST['db_name'];
    $db_user = $_POST['db_user'];
    $db_mail = $_POST['db_mail'];
    $db_pass = $_POST['db_pass'];
    $db_pass_confirm = $_POST['db_pass_confirm'];
    $db_host = $_POST['db_host'];
 
    if($db_name != "" && $db_user != "" && $db_pass != "" && $db_pass_confirm != "" && $db_host != ""){
        if($db_pass == $db_pass_confirm){
            $connect = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
            if($connect){
                $sql = "CREATE TABLE IF NOT EXISTS `atm_admin` (
                        `id` int(11) NOT NULL AUTO_INCREMENT,
                        `db_name` varchar(55) NOT NULL,
                        `db_user` varchar(55) NOT NULL,
                        `db_pass` varchar(55) NOT NULL,
                        `db_host` varchar(55) NOT NULL,
                        PRIMARY KEY (`id`)
                        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5";
                if(mysqli_query($connect, $sql)){
                    $query = "INSERT INTO atm_admin (db_name, db_user, db_pass, db_host) VALUES ('$db_name', '$db_user', '$db_pass', '$db_host')";
                    $res = mysqli_query($connect, $query);
    
                    /* создаём файл настроек ATM-CMS */
                    $fp = fopen("atm_admin/atm_config.php","a");
                    $date_install = "Дата установки: ".date("Y-m-d H:i:s");
                    /* записываем дату установки ATM-CMS */
                    $record = fwrite($fp, $date_install);
                    fclose($fp);
    
                    /* отправка email */
                    $from = 'atm87@mail.ru';
                    $subject = 'Установлена ATM-CMS';
                    $message = 'Была установлена ATM-CMS. E-mail пользователя: ' . $db_mail;
                    mail($db_mail, $subject, $message, 'From: '.$from);
 
                    mysqli_close($connect);
    
                    header("Location: index.php");
                }else{
                    $msg_error = "Ошибка! Не удалось создать таблицу в базе данных.";
                }
            }else{
                $msg_error = "Не удалось подключиться к базе данных. Возможно, база данных не создана.";
            }
        }else{
            $msg_error = "Пароли не совпадают.";
        }
    }else{
        $msg_error = "Заполнены не все поля.";
    }
}
 
class AtmInstall extends PagePublic{
    protected function content(){
        ?>
        <table class="atm_install_form">
            <tr>
            <td>
                <center><h1>Установка ATM-CMS</h1>
                <strong>Введите информацию для подключения к базе данных.</strong><br /><br />
                <?php if(isset($msg_error)){ echo "<center><h2>".$msg_error."</h2></center><br />"; }
                    $this->atm_install_form(); 
                ?>
            </td>
            </tr>
            <tr>
                <td>
        <?php
    }
 
    /* форма установки atm-cms */
    private function atm_install_form(){
    ?>
                    <form action='atm_install.php' method='post'>
                    Имя базы данных:<br />
                    <input type='text' name='db_name' /><br /><br />
                    Имя пользователя:<br />
                    <input type='text' name='db_user' /><br /><br />
                    E-mail:<br />
                    <input type='text' name='db_mail' /><br /><br />
                    Пароль:<br />
                    <input type='password' name='db_pass' /><br /><br />
                    Подтверждение пароля:<br />
                    <input type='password' name='db_pass_confirm' /><br /><br />
                    Сервер базы данных:<br />
                    <input type='text' name='db_host' /><br /><br />
                    <input type='submit' value='Далее' name='submit_install_cms' /><br />
                    </form>
                    </center>
                </td>
            </tr>
        </table>
        </body>
        </html>
    <?php
    }
}
/* вывод контента */
$page = new AtmInstall();
$page->displayPage();
?>
Добавлено через 20 минут
Всё!!! Я решил вопрос с ошибками. Просто нужно было верхний код добавить в class, в функцию content.
Спасибо alpex, что помог с созданием таблицы!

Добавлено через 19 секунд
Вот так должно быть в итоге:
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
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/atm_admin/library/page_public.php');
 
class AtmInstall extends PagePublic{
    protected function content(){
        /* если нажата кнопка отправить */
        if(isset($_POST['submit_install_cms'])){
            $db_name = $_POST['db_name'];
            $db_user = $_POST['db_user'];
            $db_mail = $_POST['db_mail'];
            $db_pass = $_POST['db_pass'];
            $db_pass_confirm = $_POST['db_pass_confirm'];
            $db_host = $_POST['db_host'];
        
            if($db_name != "" && $db_user != "" && $db_pass != "" && $db_pass_confirm != "" && $db_host != ""){
                if($db_pass == $db_pass_confirm){
                    $connect = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
                    if($connect){
                        $sql = "CREATE TABLE IF NOT EXISTS `atm_admin` (
                                `id` int(11) NOT NULL AUTO_INCREMENT,
                                `db_name` varchar(55) NOT NULL,
                                `db_user` varchar(55) NOT NULL,
                                `db_pass` varchar(55) NOT NULL,
                                `db_host` varchar(55) NOT NULL,
                                PRIMARY KEY (`id`)
                                ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5";
                        $res = mysqli_query($connect, $sql);
                        if($res){
                            $query = "INSERT INTO atm_admin (db_name, db_user, db_pass, db_host) VALUES ('$db_name', '$db_user', '$db_pass', '$db_host')";
                            $res = mysqli_query($connect, $query);
            
                            /* создаём файл настроек ATM-CMS */
                            $fp = fopen("atm_admin/atm_config.php","a");
                            $date_install = "Дата установки: ".date("Y-m-d H:i:s");
                            /* записываем дату установки ATM-CMS */
                            $record = fwrite($fp, $date_install);
                            fclose($fp);
            
                            /* отправка email */
                            $from = 'atm87@mail.ru';
                            $subject = 'Установлена ATM-CMS';
                            $message = 'Была установлена ATM-CMS. E-mail пользователя: ' . $db_mail;
                            mail($db_mail, $subject, $message, 'From: '.$from);
        
                            mysqli_close($connect);
            
                            header("Location: index.php");
                        }else{
                            $msg_error .= "Ошибка! Не удалось создать таблицу в базе данных.";
                        }
                    }else{
                        $msg_error .= "Не удалось подключиться к базе данных. Возможно, база данных не создана.";
                    }
                }else{
                    $msg_error .= "Пароли не совпадают.";
                }
            }else{
                $msg_error .= "Заполнены не все поля.";
            }
        }
        ?>
        <table class="atm_install_form">
            <tr>
            <td>
                <center><h1>Установка ATM-CMS</h1>
                <strong>Введите информацию для подключения к базе данных.</strong><br /><br />
                <?php if(isset($msg_error)){ echo "<center><h2>".$msg_error."</h2></center><br />"; }
                    $this->atm_install_form(); 
                ?>
            </td>
            </tr>
            <tr>
                <td>
        <?php
    }
 
    /* форма установки atm-cms */
    private function atm_install_form(){
    ?>
                    <form action='atm_install.php' method='post'>
                    Имя базы данных:<br />
                    <input type='text' name='db_name' /><br /><br />
                    Имя пользователя:<br />
                    <input type='text' name='db_user' /><br /><br />
                    E-mail:<br />
                    <input type='text' name='db_mail' /><br /><br />
                    Пароль:<br />
                    <input type='password' name='db_pass' /><br /><br />
                    Подтверждение пароля:<br />
                    <input type='password' name='db_pass_confirm' /><br /><br />
                    Сервер базы данных:<br />
                    <input type='text' name='db_host' /><br /><br />
                    <input type='submit' value='Далее' name='submit_install_cms' /><br />
                    </form>
                    </center>
                </td>
            </tr>
        </table>
        </body>
        </html>
    <?php
    }
}
/* вывод контента */
$page = new AtmInstall();
$page->displayPage();
?>
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
15.12.2012, 20:51
Цитата Сообщение от atm87 Посмотреть сообщение
Просто нужно было верхний код добавить в class, в функцию content.
мне кажется что в вашем случае, в такой реализации, нужно вообще убрать классы
0
2 / 2 / 0
Регистрация: 15.12.2012
Сообщений: 126
15.12.2012, 21:09  [ТС]
Да - да, я знаю, просто практикуюсь в ООП. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.12.2012, 21:09
Помогаю со студенческими работами здесь

Почему выводятся и ключи, и индексы 0 и 1 из массива от fetchAll()?
День добрый ! Учу PDO. И снова появился вопрос. //dishes это таблица, dish_name, price - столбцы ...

Почему картинки выводятся всё ровно в своём размере?
Почему картинки выводятся всё ровно в своём размере? if ($row !=&quot;&quot; &amp;&amp; file_exists(&quot;./project&quot;.$row)) { ...

Почему не выводятся <option>?
&lt;select class='select_m' id='year' name='year'&gt; &lt;option selected disabled&gt;-- Год выпуска --&lt;/option&gt; &lt;?php $year = Array('2014',...

Почему выводятся все ошибки, а не одна?
Вводим в &quot;размер массива&quot; отрицательное число. Получаем сразу все ошибки(отрицательное значение, слишком маленькое/большое..), а не одну...

Ошибки не выводятся в log
У студии бывают такие ситуации когда приложение падает с ошибкой например NullPointer или ClassCast и в лог ошибка иногда почему то не...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru