Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
-36 / 0 / 0
Регистрация: 27.02.2020
Сообщений: 11
1

Соединение с БД

29.02.2020, 19:06. Просмотров 389. Ответов 7
Метки нет (Все метки)

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

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
<form name="comment" action="comment.php" method="post">  
Имя: <input name="name" type="text" value=""><br>  
E-mail: <input name="email" type="text" value=""><br>  
Сообщение: <textarea name="text_comment" rows=15 cols=20 wrap="off"></textarea><br>  
Вы не бот? <input name="chek" type="checkbox" value="nobot"><br>
<input type="hidden" name="page_id" value="1" />  
<input type="submit" value="Отправить">  
</form>  
</head>
<body>
<?php
$host = '127.0.0.1';
$db   = 'host1808236_1';
$user = 'host1808236';
$pass = '*******';
$charset = 'utf8mb4';
$name = $_POST["name"];
$page_id = $_POST["page_id"];
$text_comment = $_POST["text_comment"];
$name = htmlspecialchars($name);
$text_comment = htmlspecialchars($text_comment);
$mysqli = new mysqli("127.0.0.1","host1808236","*******","host1808236_1");
if ($mysqli->connect_errno) {
    printf("Соединение не удалось: %s\n", $mysqli->connect_error);
    exit();
}
$mysqli->query("INSERT INTO `messages` (`name`, `page_id`, `text_comment`) VALUES ('$name', '$page_id', '$text_comment')");
 
if (isset($_SERVER['HTTP_REFERER'])) {
    $referer = $_SERVER['HTTP_REFERER'];
    $cleaned_url = preg_replace('/[^a-z ]+/i', '', strtolower($referer));
    $pattern = '/troester/';
    $res = preg_match($pattern, $cleaned_url);
    //echo $res; // <--- NO OUTPUT COMES HERE
    if ($res == true) header("Location: {$referer}");
}
?>
<?php
$page_id = 1;// Уникальный идентификатор страницы (статьи или поста)
$mysqli = new mysqli("localhost","host1808236","*********","host1808236_1");// Подключается к базе данных
if ($mysqli->connect_errno) {
    printf("Соединение не удалось: %s\n", $mysqli->connect_error);
    exit();
}
function printRresult($result_set) {
$result_set = $mysqli->query("SELECT * FROM `messages` WHERE `page_id`='$page_id'"); //Вытаскиваем все комментарии для данной страницы
  while ($row = $result_net->fetch_assoc()) {
    print_r($row); //Вывод комментариев
    echo "<br />";
}
}  
?>
вообщем все хорошо, форма есть , подключение с бд есть, ошибок нет. а данные в базу не заносятся и соответственно не выводятся.
перепробовал кучу вариантов скриптов, результат один. не могу понять в чом дело.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.02.2020, 19:06
Ответы с готовыми решениями:

Глючит соединение с интернетом. Не открываются сайты, не удается установить DNS соединение
Добрый день! Помогите разобраться с проблемой!!! Есть сеть из 30 ПК, последнее 7 дней стал глючить...

Соединение с БД (соединение через сеть)
Доброго времени суток. Помогите пожалуйста новичку. Создал в Visual Studio Net 2010 C++ проект с...

Базовое соединение закрыто: Соединение было неожиданно закрыто
Недавно написал лаунчер для своего сервера, сделал там и регистрацию. Для этого зарегистрировал...

Базовое соединение закрыто: Соединение было неожиданно закрыто
Доброго времени суток, пытаюсь подключиться к сайту таким образом. Uri uri = new...

7
Просто Икс
420 / 137 / 20
Регистрация: 15.12.2009
Сообщений: 399
29.02.2020, 22:16 2
зачем у тебя...
Цитата Сообщение от олег555123 Посмотреть сообщение
$host = '127.0.0.1';
$db   = 'host1808236_1';
$user = 'host1808236';
$pass = '*******';
а тут они не используются...
Цитата Сообщение от олег555123 Посмотреть сообщение
$mysqli = new mysqli("127.0.0.1","host1808236","*******","host1808236_1");
и тут
Цитата Сообщение от олег555123 Посмотреть сообщение
$mysqli = new mysqli("localhost","host1808236","*********","host1808236_1" );
кроме этого вот тут...
Цитата Сообщение от олег555123 Посмотреть сообщение
$page_id = 1;// Уникальный идентификатор страницы (статьи или поста)
у тебя уникальный идентификатор всегда с значением 1?

посмотри логи php и mysql что они тебе пишу на все это
0
356 / 226 / 64
Регистрация: 19.07.2016
Сообщений: 803
29.02.2020, 22:29 3
Немного переписал ваш скрипт :

Кликните здесь для просмотра всего текста

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <form name="comment" action="/" method="post">
    <p>Имя:</p>
    <input name="name" type="text" value="">
    <p>E-mail:</p>  
    <input name="email" type="text" value="">
    <p>Сообщение:</p>
    <textarea name="text_comment"></textarea>
    <p>Вы не бот? <input name="chek" type="checkbox" value="nobot"><br></p>
    <input type="hidden" name="page_id" value="1" />  
    <input type="submit" name="go" value="Отправить">  
  </form>
</body>
</html>
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
<?php
 
  function getConfig() {
    return [
      'host' => 'localhost',
      'dbname' => 'test',
      'user' => 'root',
      'password' => ''
    ];
  }
 
  function dbConnect() {
 
    $config = getConfig();
 
    $dsn ="mysql:host={$config['host']};dbname={$config['dbname']};";
    $db_object = new PDO($dsn,$config['user'],$config['password']);
 
    return $db_object;
  }
 
  function saveMessage ($name, $email, $page_id, $text_comment) {
 
    $result = dbConnect () -> prepare (
 
      'INSERT INTO `messages` (`name`, `email`, `page_id`, `text_comment`)
      VALUES (?, ?, ?, ?)'
 
    );
 
    $result -> execute (array ($name, $email, $page_id, $text_comment));
  }
 
  function getMessage ($page_id) {
 
    $result = dbConnect () -> prepare (
 
      'SELECT `name`, `text_comment` FROM `messages` WHERE `page_id` = ?'
 
    );
 
    $result -> execute (array ($page_id));
    $result = $result -> fetchAll(PDO::FETCH_ASSOC);
 
    return $result;
  }
 
  if (isset ($_POST["go"])) {
 
    $name = $_POST["name"];
    $email = $_POST["email"];
    $page_id = $_POST["page_id"];
    $text_comment = $_POST["text_comment"];
    $name = htmlspecialchars($name);
    $text_comment = htmlspecialchars($text_comment);
 
    saveMessage ($name, $email, $page_id, $text_comment);
  }
 
  $id = 1;
  $result = getMessage ($id);
 
  echo '<pre>';
  print_r($result);


Если что то не понятно или нужно что то добавить, пишите здесь.
1
-36 / 0 / 0
Регистрация: 27.02.2020
Сообщений: 11
01.03.2020, 10:15  [ТС] 4
Array
(
)
вот такая фишка на странице. что это?.
что я должен прописать где стоят '?'
0
356 / 226 / 64
Регистрация: 19.07.2016
Сообщений: 803
01.03.2020, 12:56 5
Там ничего прописывать не нужно. Нужно в форме заполнить поля и отправить сообщение.
0
-36 / 0 / 0
Регистрация: 27.02.2020
Сообщений: 11
02.03.2020, 10:51  [ТС] 6
Array
(
) -это прописано на странице под формой. я так понимаю с массивом что то не так?
я думал что id страницы сам придумаешь и пропишешь в форме . или id реально надо высмотреть через програму типа WordPress и вставить в скрипт.
на хосте посмотрел статистику работы mysql ,пишут что ввод вывод данных производится а в самой программе написано
MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 0.0003 сек.) и так постоянно. может я ни туда смотрю?

Добавлено через 1 час 35 минут
MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 0.0003 сек.) это не то .
не могу посмотреть логи на сколько я понял для этого нужна программа апаче но я пока не могу установить данный продукт, не получается.
0
-36 / 0 / 0
Регистрация: 27.02.2020
Сообщений: 11
15.03.2020, 16:16  [ТС] 7
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
83
<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <form name="comment" action="/" method="post">
    <p>Имя:</p>
    <input name="name" type="text" value="">
    <p>E-mail:</p>  
    <input name="email" type="text" value="">
    <p>Сообщение:</p>
    <textarea name="text_comment"></textarea>
    <p>Вы не бот? <input name="check" type="checkbox" value="nobot"><br></p>
    <input type="hidden" name="page_id" value="1" />  
    <input type="submit" name="go" value="Отправить">  
  </form>
</body>
</html>
<?php
 
  function getConfig() {
    return [
      'host' => 'localhost',
      'dbname' => 'host1808236',
      'user' => 'host1808236',
      'password' => '32*****'
    ];
  }
 
   function dbConnect() {
 $config = getConfig();
 $dsn ="mysql :host={$config['host']}; dbname={$config['dbname']};";
 $db_object = new PDO($dsn,$config['user'],$config['password']);
 
    return $db_object;
  }
 
  function saveMessage ($name, $email,  $text_comment, $page_id, $date) {
 
    $result = dbConnect () -> prepare (
 
      'INSERT INTO `host1808236.messages` (`name`, `email`, `text_comment`, `pade_id`, `date`)
      VALUES ( ?, ?, ? )'
    );
 
    $result -> execute (array ($name, $email, $text_comment, $pade_id, $date ));
  }
 
  function getMessage ($page_id) {
 
    $result = dbConnect () -> prepare (
 
      'SELECT `name`, `text_comment` FROM `host1808236.messages` WHERE `page_id` = '
 
    );
 
    $result -> execute (array ($page_id));
    $result = $result -> fetchAll(PDO::FETCH_ASSOC);
 
    return $result;
  }
 
  if (isset ($_POST["go"])) {
 
    $name = $_POST["name"];
    $email = $_POST["email"];
    $page_id = $_POST["page_id"];
    $text_comment = $_POST["text_comment"];
    $name = htmlspecialchars($name);
    $text_comment = htmlspecialchars($text_comment);
 
    saveMessage ($name, $email, $text_comment, $page_id, $date);
  }
 
  $id =1 ;
  $result = getMessage ($id);
 
  echo '<pre>';
  print_r($result);
  ?>
вот такой код, заработал изначально без ошибок, хотя толку не было не связи с базой данных. А потом стало так.

Fatal error: Uncaught PDOException: could not find driver in /home/host1808236/host1808236.hostland.pro/htdocs/www/comment.php:36 Stack trace: #0 /home/host1808236/host1808236.hostland.pro/htdocs/www/comment.php(36): PDO->__construct('mysql :host=loc...', 'host1808236', '') #1 /home/host1808236/host1808236.hostland.pro/htdocs/www/comment.php(54): dbConnect() #2 /home/host1808236/host1808236.hostland.pro/htdocs/www/comment.php(79): getMessage(1) #3 {main} thrown in /home/host1808236/host1808236.hostland.pro/htdocs/www/comment.php on line 36
0
-36 / 0 / 0
Регистрация: 27.02.2020
Сообщений: 11
14.01.2021, 08:18  [ТС] 8
спасибо форуму что поняли чо я полный 0 в программировании и перестали общение. Благодаря этому событию пришлось сесть за учебу что бы не задавать тупых вопросов.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2021, 08:18

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

Базовое соединение закрыто: Соединение было неожиданно закрыто
Здравствуйте. У меня возникла такая проблема, что при вызове метода soap веб-сервиса соединение...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.