Estou começando 1 web site e nao estou conseguindo

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

Onde essa variável $conexao está declarada?

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"; } ?>

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.

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

eu tentei mudar de nome mais continua dando o mesmo erro

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.

entao como sou novato nessa area poderia me mandar?

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

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

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.

tipo passar tudo para apenas 1 so?

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

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

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')");
  }
?>

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)

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

nao

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

Colocou o q?