Executando verificação de segurança...
1

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

Carregando publicação patrocinada...
3
1
2

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í!

2
2

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.

2

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!

1
1
1
1
1
1
1
1
1
1
1

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

1

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.

1
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

1
0