Мой код не сохраняет форму данных

#php #mysql #mysqli

#php #mysql #mysqli

Вопрос:

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

введите описание изображения здесь

     <section>
      <form method="POST" action="/teste/registro.php">
       <div class="container"> 
          <div class="form-group">
           <label for="nome">Nome</label>
           <input type="text" name="nome" id="nome" placeholder="nome completo"class="form-control" required>

       </div>
       <div class="form-group">  
          <label for="nome">Email</label>
          <input type="email" name="email" id="email" placeholder="nome@email.com"class="form-control" required>

       </div>  
       <div class="form-group">  
          <label for="telefone">Telefone</label>
          <input type="tel" name="telefone" id="telefone" placeholder="telefone residencial" class="form-control" >

       </div>
       <div class="form-group">  
          <label for="telefone">Celular</label>
          <input  type="tel" pattern="^d{2}-d{5}-d{4}$" name="celular" id="telefone" placeholder="telefone celular xx-xxxxx-xxxx" class="form-control" required>

       </div>      
       <div class="form-group">
          <label for="endereco">Endereço</label>
          <textarea name="endereco" rows="5" class="form-control"></textarea> 

       </div>

       <div class="form-group">
          <label for="assunto">Assunto</label>
          <input type="text" name="assunto" id="assunto" placeholder="assunto"class="form-control" required>

       </div>
       <div class="form-group">
          <label for="mensagem">Mensagem</label>
          <textarea name="mensagem" rows="5" class="form-control"></textarea> 
       </div>
       <button type="submit" class="btn btn-primary">Enviar</button>   

      </div>
      </form>
    </section>
    <footer>
    <footer>
  

в этой части я показываю свою связь с локальным bank:conexao.php

     <?php

      $servidor = "localhost";
      $usuario  = "root";
      $senha    = "";
      $dbname   = "contato";

      //criando a conexao com o banco
      $conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
    ?>
  

Я создал страницу для сохранения данных формы следующим образом:

     <?php

      include_once('conexao.php');
      $nome     = $_POST['nome'];
      $email    =$_POST['email'];
      $telefone = $_POST['telefone'];
      $celular  = $_POST['celular'];
      $endereco = $_POST['endereco'];
      $assunto  = $_POST['assunto'];
      $mensagem = $_POST['mensagem'];

      $result_msg_contato = "INSERT INTO tbl_contato(nome, email, telefone, celular, endereco, assunto, mensagem, criada) VALUES ('$nome', '$email', '$telefone', '$celular', '$endereco', '$assunto', '$mensagem', NOW()) "; 
      $resultado_msg_contato = mysqli_query($conn,$result_msg_contato);  
   ?>
  

после того, как вы введете данные из формы и нажмете «Отправить», появится белый экран:

[введите изображение изображения с адресом после нажатия кнопки отправить здесь]

Комментарии:

1. вы проверяли phpmyadmin, есть ли там введенные вами данные?

2. phpMyAdmin — это клиентское приложение для базы данных. Похоже, вы пишете свой собственный клиент на PHP, поэтому я не понимаю, какое отношение к этому имеет phpMyAdmin.

3. Я не вижу, что вы опубликовали с ошибкой, если только нет синтаксических ошибок / ограничений, о которых мы не знаем. mysqli_error($conn) Здесь вам помогут отчеты об ошибках и запросы. Если это ничего не показывает, то это означает, что вы пытаетесь получить доступ к as file:/// , а не к than http://localhost , и / или у вас не установлен веб-сервер / php / mysql. Кроме того, если есть какие-либо символы, введенные как апострофы, то ваш запрос не удался из-за этого.

4. Когда вы нажмете «Отправить», посмотрите на свой исходный код html и сообщите нам, что вы видите. Вам также был дан ответ и другие комментарии. До тех пор, пока вы не вернетесь сюда, мы не будем знать, что происходит; удачи с этим.

5. Спецификация, SQL-инъекция. Я желаю вам O'Maley никогда не регистрироваться, используя ваш пользовательский интерфейс.

Ответ №1:

Название темы вводит в заблуждение, поскольку это не имеет никакого отношения к phpMyAdmin. phpMyAdmin — это просто инструмент, графический интерфейс, для MYSQL.

Скорее всего, проблема связана с INSERT запросом, но не могу определить, поскольку вы не используете отчеты об ошибках.

Попробуйте выполнить следующее:

 <?php

      $link = mysqli_connect('localhost', 'root', '', 'contato');

    /* check connection */
    if (!$link) {
            printf("Connect failed: %sn", mysqli_connect_error());
            exit();
    }

      $nome     = $_POST['nome'];
      $email    = $_POST['email'];
      $telefone = $_POST['telefone'];
      $celular  = $_POST['celular'];
      $endereco = $_POST['endereco'];
      $assunto  = $_POST['assunto'];
      $mensagem = $_POST['mensagem'];

    $stmt = mysqli_prepare($link, "INSERT INTO tbl_contato (`nome`, `email`, `telefone`, `celular`, `endereco`, `assunto`, `mensagem`, `criada`) VALUES (?, ?, ?, ?, ?, ?, ?, NOW())");
    mysqli_stmt_bind_param($stmt, 'sssssssd', $nome, $email, $telefone, $celular, $endereco, $assunto, $mensagem);

    /* execute prepared statement */
    mysqli_stmt_execute($stmt);

    printf("%d Row inserted.n", mysqli_stmt_affected_rows($stmt));

    /* close statement and connection */
    mysqli_stmt_close($stmt);
  

Комментарии:

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

2. Рад вам помочь! Не могли бы вы отметить этот ответ как принятый, если он решил вашу проблему? 🙂

3. Я скопировал код и ничего не изменил, и появилась ошибка 404 Not Found, запрошенный URL /teste/teste.ico/salvaregistro.php не был найден на этом сервере. Сервер Apache / 2.4.18 (Win64) PHP / 5.6.19 на локальном хост-порту 80, и в банке ничего не было записано