【问题标题】:My code does not save the data form我的代码不保存数据表单
【发布时间】:2023-04-09 16:31:01
【问题描述】:

我在使用表单将数据写入页面时遇到问题。下面是它的外观,然后是我正在使用的一些代码:

    <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>

这部分我展示了我与当地银行的联系: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);  
   ?>

从表格中输入数据并点击发送后,出现的屏幕全是白色的:

[]

【问题讨论】:

  • 你检查过phpmyadmin,看看你输入的数据有没有?
  • PHPMyAdmin 是一个数据库客户端应用程序。您似乎正在用 PHP 编写自己的客户端,所以我看不出 PHPMyAdmin 与此有什么关系。
  • 我看不到您发布的失败内容,除非存在我们不知道的语法错误/约束。错误报告和查询上的mysqli_error($conn) 将在这里为您提供帮助。如果这没有显示任何内容,那么这表明您正在尝试以file:/// 而不是http://localhost 访问,并且/或者您没有安装webserver/php/mysql。另外,如果输入了任何像撇号这样的字符,那么您的查询就会因此而失败。
  • 当您点击提交时,请查看您的 html 源代码并告诉我们您看到了什么。您还得到了答案和其他 cmets。直到你回到这里,我们才知道发生了什么;祝你好运。
  • Bom,SQL 注入。我希望你没有 O'Maley 永远不会使用你的 UI 注册。

标签: php mysql mysqli


【解决方案1】:

该主题的标题具有误导性,因为这与 PHPMyAdmin 没有任何关系。 PHPMyAdmin 只是一个工具,GUI,用于 MYSQL。

很可能,问题出在INSERT 查询上,但由于您没有使用错误报告,因此无法判断。

尝试以下方法:

<?php

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

    /* check connection */
    if (!$link) {
            printf("Connect failed: %s\n", 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);

【讨论】:

  • 我会做你给我的解决办法告诉你更多我感谢你的帮助。
  • 很高兴为您提供帮助!如果它解决了您的问题,您介意将此答案标记为已接受吗? :)
  • 我复制了代码并没有改变任何东西并出现错误404 Not Found,在此服务器上找不到请求的URL /teste/teste.ico/salvaregistro.php。 Apache/2.4.18 (Win64) PHP/5.6.19 服务器在 localhost 端口 80,银行中没有任何记录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 2022-01-25
  • 2021-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多