Ir para conteúdo
Jonathan Abilio

Problema com projeto PHP

Recommended Posts

Boa tarde, fiz um código em PHP como teste, conforme foto abaixo

image.thumb.png.06e40bf960c6ac393a0bd54ec9b03638.png

 

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?

 

 

image.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem ver o código fica dicil, o erro mostra que é de required.:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 horas atrás, Williams Duarte disse:

Sem ver o código fica dicil, o erro mostra que é de required.:thumbsup:

 Basicamente, os prints são todos os códigos que possuo, a não ser que tenha mais algum que desconheço...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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ções

2. Use a Tag Código
Sempre 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.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
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ções

2. Use a Tag Código
Sempre 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

 

image.png

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
Compartilhar em outros sites
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

Compartilhar este post


Link para o post
Compartilhar em outros sites
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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por bamoZ
      Procuro um desenvolvedor PHP, que conheca CakePHP para criar pagina web simples, com uma tela de busca, uma tela de resultado e uma tela de detalhe do resultado.
       
      Pode trabalhar de casa e deve poder fazer reunioes via Skype.
       
      Obrigado
      Oswaldo
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.