Aula 12 Módulo 02

Home Fóruns PHP/MYSQL Aula 12 Módulo 02

Visualizando 4 respostas da discussão
  • Autor
    Posts
    • #123992
      Sarah Trelinski
      Participante

      Na hora que vou cadastrar um novo usuário com o nome de usuário já existente não aparece a menssagem de erro aparece outra mensagem dizendo ter um erro no codigo user-new.php. Segue o código abaixo:

      <!DOCTYPE html>
      
      <?php
      
      require_once "Includes/Banco.php";
      require_once "Includes/Funcoes.php";
      require_once "Includes/Login.php";
      
      ?>
      
      <html lang="pt-br">
      
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <link rel="stylesheet" href="CSS/Style.css">
          <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,300,1,0" />
          <title>Novo Usuário</title>
      </head>
      
      <body>
      
          <div id="corpo">
      
              <?php
      
              if (!admin()) {
                  echo msg_erro('Área restrita! Você não é administrador!');
              } else {
                  if (!isset($_POST['usuario'])) {
                      require "User-New-Form.php";
                  } else {
                      $usuario = $_POST['usuario'] ?? null;
                      $nome = $_POST['nome'] ?? null;
                      $senha01 = $_POST['senha01'] ?? null;
                      $senha02 = $_POST['senha02'] ?? null;
                      $tipo = $_POST['tipo'];
      
                      if ($senha01 === $senha02) {
                          if (empty($usuario) || empty($nome) || empty($senha01) || empty($senha02) || empty($tipo)) {
                              echo msg_erro("Todos os dados são obrigatórios!");
                          } else {
                              $senha = gerarHash($senha01);
                              $query = "INSERT INTO usuarios (usuario, nome, senha, tipo) VALUES('$usuario', '$nome', '$senha', '$tipo')";
                              if ($banco->query($query)) {
                                  echo msg_sucesso("Usuário $nome cadastrado com sucesso!");
                              } else {
                                  echo msg_erro("Não foi possível criar o usuário $usuario. Talvez o nome de usuário já esteja sendo usado");
                              }
                          }
                      } else {
                          echo msg_erro("Senhas não conferem. Repita o procedimento");
                      }
                  }
              }
      
              echo voltar();
      
              ?>
      
          </div>
      
      </body>
      
      </html>
    • #123993
      Sarah Trelinski
      Participante

      Esta é a mensagem que aparece na tela invés desta echo msg_erro(“Não foi possível criar o usuário $usuario. Talvez o nome de usuário já esteja sendo usado”); que deviria aparecer.

      Fatal error: Uncaught mysqli_sql_exception: Duplicate entry ‘pedro’ for key ‘PRIMARY’ in D:\Sarah\Estudos\Cursos\Curso de PHP com MySQL\Curso de PHP com MySQL Módulo 03\Exercícios das Aulas\User-New.php:45 Stack trace: #0 D:\Sarah\Estudos\Cursos\Curso de PHP com MySQL\Curso de PHP com MySQL Módulo 03\Exercícios das Aulas\User-New.php(45): mysqli->query(‘INSERT INTO usu…’) #1 {main} thrown in D:\Sarah\Estudos\Cursos\Curso de PHP com MySQL\Curso de PHP com MySQL Módulo 03\Exercícios das Aulas\User-New.php on line 45

    • #124022
      Tutora Jessica
      Moderador

      Ola Sarah, coloque aspas simples na variável $usuario dentro esse echo de erro.

    • #124030
      Sarah Trelinski
      Participante

      Olá boa tarde, fiz o que você falou e continua dando erro diz que o erro é nesta linha if ($banco->query($query)) {

    • #124032
      Tutora Jessica
      Moderador

      Ola Sarah, me envie aqui como aparece o erro.
      Você também pode enviar um print pelo nosso discord.

Visualizando 4 respostas da discussão
  • Você deve fazer login para responder a este tópico.