Estou começando 1 web site e nao estou conseguindo

19 respostas
D
**Warning** : Undefined variable $conexao in **C:\xampp\htdocs\index.php** on line **11**

**Fatal error** : Uncaught TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, null given in C:\xampp\htdocs\index.php:11 Stack trace: #0 C:\xampp\htdocs\index.php(11): mysqli_query(NULL, 'INSERT INTO use...') #1 {main} thrown in **C:\xampp\htdocs\index.php** on line **11**

Fica dando esse erro quando tento entrar no site. Esse e o codigo do site:

<?php
  if (isset($_POST['submit'])) {
    //print_r($_POST['User']);
    //print_r('<br>');
    //print_r($_POST['password']);
    
    $name = $_POST['User'];
    $password = $_POST['password'];
    $result = mysqli_query($conexao, "INSERT INTO user(User,password) VALUES ('$name','$password')");
  }
?>

<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Login - Painel</title>
  
  <style>
    body {
      font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
      background-color:#1C1C1C;
    }
    div {
      background-color: rgba(33, 33, 33, 5);
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      padding: 50px;
      border-radius: 13px;
      color: whitesmoke;
    }
    input {
      padding: 15px;
      border: none;
      outline: none;
      font-size: 15px;
      border-radius: 7px;
      background-color: rgba(38, 38, 38, 9);
    }
    #submit {
      background-color: dodgerblue;
      border: none;
      font-family: Georgia, 'Times New Roman', Times, serif;
      padding: 15px;
      font-size: medium;
      width: 100%;
      border-radius: 7px;
      color: rgba(39, 39, 39, 5);
      font-size: 15px;
    }
    #submit:hover {
      background-color: rgb(2, 133, 255);
    }
  </style>
</head>

<body>
  <div>
    <form action="index.php" method="POST">
      <h1>Login</h1>
      
      <input type="text" name="User" placeholder="User">
      <br><br>
      
      <input type="password" name="password" placeholder="Senha">
      <br><br>
      
      <input type="submit" name="submit" id="submit">
    </form>
  </div>
</body>

</html>

19 Respostas

L

Onde essa variável $conexao está declarada?

D

ela esta no banco de dados

<?php $dbhost = '127.0.0.1'; $dbUsername = 'root'; $dbPassword = ''; $dbName = 'site'; $conexao = new mysqli($dbhost,$dbUsername,$dbPassword,$dbName); if($conexao->connect_errno) { echo "Erro"; } else{ echo "Conectado com Sucesso"; } ?>
L

Não acho que ela seja acessível no index.php sendo que está declarada em outro arquivo. Deve ter alguma forma de vc conseguir referenciar essa variável no index.php, senão a variável $conexao continuará inexistente.

D

entao eu devo mudar de index.php para outro e isso?

D

eu tentei mudar de nome mais continua dando o mesmo erro

L

O nome não é o problema. É a declaração da variável. A variável não existe no index.php. Com isso, ela não será encontrada.

Declarar essa variável em outro arquivo, não significa que ela será encontrada no index.php.

D

entao como sou novato nessa area poderia me mandar?

L

Não conheço PHP, mas acho que tem um esquema de include. Achei uma referência, veja:

vars.php

<?php
  $color = 'green';
  $fruit = 'apple';
?>

test.php

<?php
  echo "A $color $fruit"; // A
  include 'vars.php';
  echo "A $color $fruit"; // A green apple
?>

Repare que no test.php, as variáveis color e fruit, que foram declaradas no arquivo vars.php, agora estarão disponiveis por conta do include: include 'vars.php';

Tente fazer assim pra ver se funciona.

FONTE: PHP: include - Manual

D
<?php
  $dbhost = '127.0.0.1';
  $dbUsername = 'root';
  $dbPassword = '';
  $dbName = 'site';
  $conexao = new mysqli($dbhost,$dbUsername,$dbPassword,$dbName);
  
  include 'index.php';
  
  if($conexao->connect_errno) {
    echo "Erro";
  } else {
    echo "Conectado com Sucesso";
  }
?>

assim?

L

Vc apenas inverteu. Pq o que vc quer é usar a $conexao no index.php, e não usar algo de index.php no seu arquivo de conexão.

D

tipo passar tudo para apenas 1 so?

L

Se vc quer usar a conexão no index.php, vc deve fazer o include do arquivo de banco no index.php.

D

eu tentei juntar os 2 em 1 so mais ele continua dando erro na mesma linha

Fatal error : Uncaught mysqli_sql_exception: Table ‘site.user’ doesn’t exist in C:\xampp\htdocs\index.php:20 Stack trace: #0 C:\xampp\htdocs\index.php(20): mysqli_query(Object(mysqli), ‘INSERT INTO use…’) #1 {main} thrown in C:\xampp\htdocs\index.php on line 20

L

Vc fez isso?

index.php

<?php
  include 'bancoDados.php'; // claro que aqui é o nome do seu arquivo de banco (que não sei qual é o nome)

  if (isset($_POST['submit'])) {
    //print_r($_POST['User']);
    //print_r('<br>');
    //print_r($_POST['password']);
    
    $name = $_POST['User'];
    $password = $_POST['password'];
    $result = mysqli_query($conexao, "INSERT INTO user(User,password) VALUES ('$name','$password')");
  }
?>
D

Agora deu esse erro

Fatal error : Uncaught mysqli_sql_exception: Normalmente é permitida apenas uma utilização de cada endereço de soquete (protocolo/endereço de rede/porta) in C:\xampp\htdocs\config.php:8 Stack trace: #0 C:\xampp\htdocs\config.php(8): mysqli->__construct(‘127.0.0.1’, ‘root’, ‘’, ‘site’) #1 C:\xampp\htdocs\index.php(2): include(‘C:\xampp\htdocs…’) #2 C:\xampp\htdocs\config.php(9)

L

Vc deixou o include index.php no seu arquivo de banco? Se sim, tem que remover.

D

nao

D

agora coloquei e apareceu esse erro

Fatal error : Uncaught mysqli_sql_exception: Normalmente é permitida apenas uma utilização de cada endereço de soquete (protocolo/endereço de rede/porta) in C:\xampp\htdocs\config.php:8 Stack trace: #0 C:\xampp\htdocs\config.php(8): mysqli->__construct(‘127.0.0.1’, ‘root’, ‘’, ‘site’) #1 C:\xampp\htdocs\index.php(2): include(‘C:\xampp\htdocs…’) #2 C:\xampp\htdocs\config.php(9):

L

Colocou o q?

Criado 31 de janeiro de 2022
Ultima resposta 31 de jan. de 2022
Respostas 19
Participantes 2