Preciso de ajuda para enviar informações do HTML para o PHP por formulário (RESOLVIDO e SOLUÇÃO)

(Solução no final) Código para exemplificar (nem esses, nem os originais funcionam)

HTML:

<!DOCTYPE html>
<html lang="pt-br">
<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>Document</title>
</head>
<body>
    <form action="form-test-php.php" method="post">
        <label for="nome">Nome</label>
        <input type="text" name="nome" id="nome" placeholder="Nome" required>
        <input type="submit" name="submit" value="Submit">
    </form>
</body>
</html>

PHP (form-test-php.php):

<?php

if(isset($_POST['submit'])){
    $test = $_POST['nome'];
    echo $test;

    echo "<SCRIPT LANGUAGE='JavaScript'>
    window.alert('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
    </SCRIPT>";
}

Não consigo enviar mesmo tudo parecendo certo. Eu estou a 2 dias pesquisando sobre k k, porém não acho nada sobre.

Já testei o PHP sozinho e tudo ta funcionando, porém, o navegador nem chega a carregar o PHP, ele retorna erro 405 do servidor como se não fosse permitido “POST”, mas o PHP consegue lidar com o método e não sei como faz para permitir método POST

Estou usando Live Server no VSCode para testar o site e to usando Ubuntu.


Solução e explicação

Parece que o Live Server não consegue lidar com scripts PHP. Logo quando ele recebia a requisição POST ele não sabia o’que fazer, se confundia com outros tipos de arquivo e retornava 405. E descobri que isso já é um bug antigo dele.

Para resolver esse problema (como o pessoal sugerio) eu criei um servidor de teste para rodar o site e lidar com as requisições, simplesmente rodando o comando php -S localhost:8000 na raiz do site o PHP cria um servido que você pode acessar e rodar paginas dinâmicas, etc.

Obrigado a ajuda de todos

nss vlw ja tava imaginado que era o live server mas n sabia como testar o site de outro jeito, obrigado

Cara você já está utilizando Ubuntu, por que não hospeda os arquivos diretamente dentro da /var/www/html de uma vez e testa pelo localhost? Tenho quase certeza que você já tem o Apache instalado nessa belezinha de SO aí!

Ah boa vlw, n sabia q dava pra fazer isso
Achei uma outra solução posso rodar o comando `php -S localhost:8000` na raiz do site que ele já cria um servidor de testes. Muito obrigado por abrir meu olho para essa solução.
Rapaz, muitíssimo obrigado por compartilhar essa informação comigo! Trabalho com PHP à um tempo relativamente grande e juro que não sabia/lembrava que existia essa funcionalidade! Testei aqui numa pasta qualquer e funcionou também. Valeu mesmo, e obrigado a você por abrir meu olho para essa solução também hehe Tamo junto meu querido!

Boa tarde dev, te indico a colocar um enctype="multipart/form-data" no seu elemento form do html.

Obrigado mas também não deu certo
mas isso tem que ter, teste utilizando o navegador google chrome/mozilla
Eu testei (chrome/opera/firefox) continua dando 405
retire a tag script javascript do seu codigo.
retirei, também não funciona
qual sua vesao do php?

Opa! Tenta dar um var_dump antes do teu if em $_POST para ver se tem algo na sua variavel.

O arquivo nem roda, o servidor devolve 405 antes de rodar o PHP

Olá dev,

Verifique se o arquivo php está com o nome correto e se o mesmo se encontra no mesmo diretório do arquivo PHP, acredito que seja este o erro.

Para verificar se existe alguma requisição do tipo POST no php utilize:

<?php
if($_POST) {
    $test = $_POST['nome'];
    echo $test;

    echo "<SCRIPT LANGUAGE='JavaScript'>
    window.alert('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
    </SCRIPT>";
 }
?>

Verifique também se o servidor permite a requisição do tipo POST pois se não me engano esse erro 405 está relacionado ao isto (Me corrijam se estiver errado).

O nome ta certo sim, esqueci de falar kkk. É esse mesmo o problema, o servidor não ta aceitanto POST ai ta retornando o 405, agora n sei como faz pra trocar.
Sabe me dizer qual é o servidor que você está utilizando e versão do PHP?
É o live server e o PHP 8.1.2
Recomendo você a testar em outro servidor, se funcionar em outro servidor siga os seguintes passos: - Desinstale o Live Server; - Busque um instalador mais atualizado do Live Server; - Faça uma instalação limpa seguindo o padrão de instalação; Caso o código não funcione em outro servidor você devera buscar pelo arquivo .htaccess e verificar se existe alguma configuração que bloqueie solicitações do tipo POST. Servidores locais para testar: Xampp / Wamp / EasyPHP

Pequeno erro basta trocar o nome da variavel $test para $nome e tudo vai funcionar...