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
Dá uma vista de olhos neste link: https://github.com/ritwickdey/vscode-live-server/issues/541
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í!
Boa tarde dev, te indico a colocar um enctype="multipart/form-data" no seu elemento form do html.
Opa! Tenta dar um var_dump antes do teu if em $_POST para ver se tem algo na sua variavel.
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).
Pequeno erro basta trocar o nome da variavel $test
para $nome
e tudo vai funcionar...