Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?

>
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.Sem ver o código fica dicil, o erro mostra que é de required.
>
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...
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](/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/).
**Orientações**
2. 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.
>
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](/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/).
**Orientações**
2. 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
/monthly_2020_05/image.thumb.png.df34e6db88ded762c6f7eb334ba9c4e2.png" data-fileid="5205" />
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!!!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.
@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>"; 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>"; 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/](http://localhost/) caso tenha obrigatoriedade de colocar a porta coloque [http://localhost:8080/](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***>
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>"; 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>"; 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/](http://localhost/) caso tenha obrigatoriedade de colocar a porta coloque [http://localhost:8080/](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>
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>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);
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.