Jonathan Abilio 0 Report post Posted May 29, 2020 Boa tarde, fiz um código em PHP como teste, conforme foto abaixo Quando abro o servidor no navegador Edge, Chrome, retornam este erro. Sim, o APACHE esta ativo, HTTP Server também, consigo abrir as pastas, mas ao clicar no documento Formulario.php, ele abre o problema da imagem abaixo. Como resolvo? Share this post Link to post Share on other sites
Williams Duarte 431 Report post Posted May 29, 2020 Envia como Post e não Get E posta o código de que recebe o Formulario.php Outro coisa, crie um arquivo qualquer.php e coloque dentro o seguinte, em seguida execute pelo browser. <?php // Mostra todas as informações, usa o padrão INFO_ALL phpinfo(); // Mostra apenas informações dos módulos. // phpinfo(8) mostra um resultado identico. phpinfo(INFO_MODULES); ?> Se estiver tudo okay com php, o problema é seu codigo. Share this post Link to post Share on other sites
Jonathan Abilio 0 Report post Posted May 29, 2020 1 hora atrás, Williams Duarte disse: Envia como Post e não Get E posta o código de que recebe o Formulario.php Outro coisa, crie um arquivo qualquer.php e coloque dentro o seguinte, em seguida execute pelo browser. <?php // Mostra todas as informações, usa o padrão INFO_ALL phpinfo(); // Mostra apenas informações dos módulos. // phpinfo(8) mostra um resultado identico. phpinfo(INFO_MODULES); ?> Se estiver tudo okay com php, o problema é seu codigo. Obrigado por me responder. Então, estou acompanhando as videoaulas de um professor do YouTube, o Gunabara, ele ensina com GET por enquanto, e percebo o seguinte: os códigos funcionam com a inserção do html com php. somente a extensão.php, da este erro do print. Share this post Link to post Share on other sites
Williams Duarte 431 Report post Posted May 30, 2020 Sem ver o código fica dicil, o erro mostra que é de required. Share this post Link to post Share on other sites
Jonathan Abilio 0 Report post Posted May 30, 2020 13 horas atrás, Williams Duarte disse: Sem ver o código fica dicil, o erro mostra que é de required. Basicamente, os prints são todos os códigos que possuo, a não ser que tenha mais algum que desconheço... Share this post Link to post Share on other sites
Williams Duarte 431 Report post Posted May 30, 2020 Print não é código. Se está aprendendo, começa a saber diferenciar código <> de print de tela. Isto abaixo, é um código adicionado em code "<>" deste editor aqui no fórum. <?php echo "Olá Mundo!"; ?> E pelo que vi você tem 03 arquivos php, se quer ajuda, leia as regras do forum. Orientações2. Use a Tag CódigoSempre que postar códigos, adicione-o entre as tags [ code ] e [ /code ] (sem os espaços), para facilitar a leitura.Você também pode usar o Botão Code (símbolo "<>"), ao lado do Botão Imagem, no editor de textos do fórum. Share this post Link to post Share on other sites
Jonathan Abilio 0 Report post Posted May 30, 2020 5 minutos atrás, Williams Duarte disse: Print não é código. Se está aprendendo, começa a saber diferenciar código <> de print de tela. Isto abaixo, é um código adicionado em code "<>" deste editor aqui no fórum. <?php echo "Olá Mundo!"; ?> E pelo que vi você tem 03 arquivos php, se quer ajuda, leia as regras do forum. Orientações2. Use a Tag CódigoSempre que postar códigos, adicione-o entre as tags [ code ] e [ /code ] (sem os espaços), para facilitar a leitura.Você também pode usar o Botão Code (símbolo "<>"), ao lado do Botão Imagem, no editor de textos do fórum. Vou pegar um outro exemplo que fiz usando as extensões .html e .php Na extensão .html tem este código: <!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <form method="get" action="Fatorial.php"> Número <input type="number" name="fat" min="0" max="15" value="1"/> <input type="submit" value="FATORAR"/> </form> </div> </body> </html> Estou usando o EasyPHP como servidor e abre esta pagina .html tranquilamente. (Não consigo mandar um print, pois a pg é grande para o permitido) O problema enfrentado é quando meu botão FATORAR, por exemplo, faz requisição da pg php no servidor. Ele da o erro do primeiro print O código usado no Fatorial.php é este: <?php //passando o valor por parâmetro ($fat) $f = isset($_GET["fat"])?$_GET["val"]:1; echo "<h2> Calculando o fatorial de $f </h2>"; //contador inicia no valor inserido pelo usuário $cont = $f; $fat=1; do { $fat = $fat*$cont; //contador regressivo $cont --; } while ($cont >= 1); echo "<h3> $f! = $fat </h3>"; ?> <a href="Fatorial.html"> VOLTAR </a> Venho enfrentando este problema a cada exercício que faço envolvendo extensão.php Espero ter explicado melhor minha dúvida!!! Share this post Link to post Share on other sites
Williams Duarte 431 Report post Posted May 31, 2020 Bom, seu php nao há problemas, mas sim estes envio por get, em nenhum momento a string foi passada. Mas volto a repetir, postar imagens nao resolve. Tem que postar o código para que possamos copiar o codigo e corrigir. Veja em Factoria.php, você espera por fat e val e um ternario? Ja mostra o primeiro o erro. Share this post Link to post Share on other sites
Felipe Guedes Coutinho 0 Report post Posted May 31, 2020 @Jonathan Abilio Fera, vamos com calma e por partes. Primeiro, existe um possível erro no seu servidor, então vamos tentar descobrir o erro. Primeiro, salve o seu código Formulario.php para um Formulario.html, vamos explicar um conceito, primeiro, salvamos o arquivo como .PHP caso o arquivo tenha algum comando PHP em seu conteúdo e pelo o que eu vi em seu arquivo Formulario.php não existe nenhum <?php ?>... Outro ponto é o seguinte, você tem um <form> dentro de formulário e ele deve "direcionar" para um local onde exista um meio de recepção. Explicando com mais detalhes, você criou um FORM com método de ENVIO que foi declarado como "GET" você pode sim declarar como "POST" ou "GET" sem o menor problema, mas saiba a diferença entre eles. GET os dados serão transmitidos na barra de navegação, local onde você digita um endereço de site exemplo www.google.com.br POST os dados são transmitidos "por trás" na parte apenas do servidor, ou seja, você não vai ver os dados sendo transmitidos em sua tela. OKAY, continuando. Já que você quer no FORM chamar a própria página, você precisa colocar os códigos de tratamento na mesma página. Explicando, você tem o seu FORM dentro do arquivo Formulario.php (mantenha como .php caso você faça o que eu falar aqui), então você deve copiar o conteúdo de código que está dentro de Fatorial.php para depois do </form> Deixando o código assim: <!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <form method="POST" action="formulario.php"> Número <input type="number" name="fat" min="0" max="10" value="1"/> <input type="submit" value="FATORAR"/> </form> </div> <?php if (!empty($_POST["fat"]) and $_POST["fat"] > 0) { $res = 1; $fat = $_POST["fat"]; echo "<h2> Calculando o fatorial de ".$fat."! </h2>"; while ($fat >= 1) { $res = $res * ($fat); $fat--; } echo "<h3>".$_POST["fat"]."! = ".$res."</h3>"; } ?> </body> </html> O Código acima faz a função do HTML (Formulário de preenchimeto) e a função do PHP. Caso você queria usar separadamente recomendo que faça o seguinte. Método GET formulario.html <!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <form method="GET" action="fatorial.php"> Número <input type="number" name="fat" min="0" max="10" value="1"/> <input type="submit" value="FATORAR"/> </form> </div> </body> </html> fatorial.php <?php if (!empty($_GET["fat"]) and $_GET["fat"] > 0) { $res = 1; $fat = $_GET["fat"]; echo "<h2> Calculando o fatorial de ".$fat."! </h2>"; while ($fat >= 1) { $res = $res * ($fat); $fat--; } echo "<h3>".$_GET["fat"]."! = ".$res."</h3>"; } else { echo "Você digitou um número inferior ou igual a ZERO!"; } ?> Agora caso você queira ver a diferença usando o método POST formulario.html <!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <form method="POST" action="fatorial.php"> Número <input type="number" name="fat" min="0" max="10" value="1"/> <input type="submit" value="FATORAR"/> </form> </div> </body> </html> formulario.php <?php if (!empty($_POST["fat"]) and $_POST["fat"] > 0) { $res = 1; $fat = $_POST["fat"]; echo "<h2> Calculando o fatorial de ".$fat."! </h2>"; while ($fat >= 1) { $res = $res * ($fat); $fat--; } echo "<h3>".$_POST["fat"]."! = ".$res."</h3>"; } else { echo "Você digitou um valor inferior ou igual a ZERO!"; } ?> Não sei como você faz para acessar a sua aplicação, mas eu recomendo usar http://localhost/ caso tenha obrigatoriedade de colocar a porta coloque http://localhost:8080/ Experimente os códigos e as recomendações acima e caso tenha algum problema ou dúvida pergunte ai. Espero ter ajudado de alguma forma Att. Felipe Coutinho Share this post Link to post Share on other sites
Jonathan Abilio 0 Report post Posted June 1, 2020 16 horas atrás, Felipe Guedes Coutinho disse: @Jonathan Abilio Fera, vamos com calma e por partes. Primeiro, existe um possível erro no seu servidor, então vamos tentar descobrir o erro. Primeiro, salve o seu código Formulario.php para um Formulario.html, vamos explicar um conceito, primeiro, salvamos o arquivo como .PHP caso o arquivo tenha algum comando PHP em seu conteúdo e pelo o que eu vi em seu arquivo Formulario.php não existe nenhum <?php ?>... Outro ponto é o seguinte, você tem um <form> dentro de formulário e ele deve "direcionar" para um local onde exista um meio de recepção. Explicando com mais detalhes, você criou um FORM com método de ENVIO que foi declarado como "GET" você pode sim declarar como "POST" ou "GET" sem o menor problema, mas saiba a diferença entre eles. GET os dados serão transmitidos na barra de navegação, local onde você digita um endereço de site exemplo www.google.com.br POST os dados são transmitidos "por trás" na parte apenas do servidor, ou seja, você não vai ver os dados sendo transmitidos em sua tela. OKAY, continuando. Já que você quer no FORM chamar a própria página, você precisa colocar os códigos de tratamento na mesma página. Explicando, você tem o seu FORM dentro do arquivo Formulario.php (mantenha como .php caso você faça o que eu falar aqui), então você deve copiar o conteúdo de código que está dentro de Fatorial.php para depois do </form> Deixando o código assim: <!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <form method="POST" action="formulario.php"> Número <input type="number" name="fat" min="0" max="10" value="1"/> <input type="submit" value="FATORAR"/> </form> </div> <?php if (!empty($_POST["fat"]) and $_POST["fat"] > 0) { $res = 1; $fat = $_POST["fat"]; echo "<h2> Calculando o fatorial de ".$fat."! </h2>"; while ($fat >= 1) { $res = $res * ($fat); $fat--; } echo "<h3>".$_POST["fat"]."! = ".$res."</h3>"; } ?> </body> </html> O Código acima faz a função do HTML (Formulário de preenchimeto) e a função do PHP. Caso você queria usar separadamente recomendo que faça o seguinte. Método GET formulario.html <!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <form method="GET" action="fatorial.php"> Número <input type="number" name="fat" min="0" max="10" value="1"/> <input type="submit" value="FATORAR"/> </form> </div> </body> </html> fatorial.php <?php if (!empty($_GET["fat"]) and $_GET["fat"] > 0) { $res = 1; $fat = $_GET["fat"]; echo "<h2> Calculando o fatorial de ".$fat."! </h2>"; while ($fat >= 1) { $res = $res * ($fat); $fat--; } echo "<h3>".$_GET["fat"]."! = ".$res."</h3>"; } else { echo "Você digitou um número inferior ou igual a ZERO!"; } ?> Agora caso você queira ver a diferença usando o método POST formulario.html <!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <form method="POST" action="fatorial.php"> Número <input type="number" name="fat" min="0" max="10" value="1"/> <input type="submit" value="FATORAR"/> </form> </div> </body> </html> formulario.php <?php if (!empty($_POST["fat"]) and $_POST["fat"] > 0) { $res = 1; $fat = $_POST["fat"]; echo "<h2> Calculando o fatorial de ".$fat."! </h2>"; while ($fat >= 1) { $res = $res * ($fat); $fat--; } echo "<h3>".$_POST["fat"]."! = ".$res."</h3>"; } else { echo "Você digitou um valor inferior ou igual a ZERO!"; } ?> Não sei como você faz para acessar a sua aplicação, mas eu recomendo usar http://localhost/ caso tenha obrigatoriedade de colocar a porta coloque http://localhost:8080/ Experimente os códigos e as recomendações acima e caso tenha algum problema ou dúvida pergunte ai. Espero ter ajudado de alguma forma Att. Felipe Coutinho Bom dia, eu verifiquei os codigos e está igual ao seu. Sobre o acesso à aplicação, uso o EasyPHP -> localhost:8080 Share this post Link to post Share on other sites
Jonathan Abilio 0 Report post Posted June 1, 2020 21 horas atrás, Williams Duarte disse: Bom, seu php nao há problemas, mas sim estes envio por get, em nenhum momento a string foi passada. Mas volto a repetir, postar imagens nao resolve. Tem que postar o código para que possamos copiar o codigo e corrigir. Veja em Factoria.php, você espera por fat e val e um ternario? Ja mostra o primeiro o erro. Ótimo dia. Sim, o usuário forncerá o valor atráves da variável fat, passará para o parametro $fat e fiz um ternário, onde confirmava o valor passado ou geraria utilizaria o value =1 (else) Obs: eu segui a orientação do colega abaixo e conferi os códigos. Além disto, verifiquei a porta do localhost (http://localhost:8080), mas mesmo assim persiste o erro após eu abrir a pasta do projeto e clicar na extensão .php . Não ocorre erro nas extensões .html. Por quê? <!<!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <form method="GET" action="Fatorial.php"> Número <input type="number" name="fat" min="0" max="15" value="1"/> <input type="submit" value="FATORAR"/> </form> </div> </body> </html> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- <!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <?php ($fat) $f = isset($_GET["fat"])?$_GET["val"]:1; echo "<h2> Calculando o fatorial de $f </h2>"; $cont = $f; $fat=1; do { $fat = $fat*$cont; $cont --; } while ($cont >= 1); echo "<h3> $f! = $fat </h3>"; ?> <a href="Fatorial.html"> VOLTAR </a> </div> </body> </html> Share this post Link to post Share on other sites
Williams Duarte 431 Report post Posted June 1, 2020 Crie um novo arquivo info.php, com as informações abaixo : info.php <?php // Mostra todas as informações, usa o padrão INFO_ALL phpinfo(); // Mostra apenas informações dos módulos. // phpinfo(8) mostra um resultado identico. phpinfo(INFO_MODULES); ?> e rode diretamente pela url http://localhost:8080/info.php Se imprimir na tela as configurações do php, versão etc, não tem erro em seu php Sobre isto aqui Você espera duas variaveis no mesmo ternario, "fat e val" isset($_GET["fat"])?$_GET["val"]:1 Correto $fat = $f = isset($_GET["fat"]) ? $_GET["fat"] : 1; O ternario testa se a var $_GET['fat'] foi iniciada, e retorna o valor, senao retorna false ou seja true === true retorna true else false. Se que testar mais de uma variavel, faça outro ternario. Coloque nos seus codigos php, para reportar erros: <?php ini_set('display_errors', true); error_reporting(E_ALL); Share this post Link to post Share on other sites