antiblock
Elveron
  • Chatbox

    You don't have permission to chat.
    Load More
MaxiWill

[AJUDA] _GET PHP

8 posts in this topic

Estou tentando praticar umas coisas em PHP mas tem uma coisa me dando dor de cabeça, estou tentando fazer um link que leva para uma página de redirecionamento para uma imagem, mas como resultado estou tendo o erro 403.. porque eu não sei.

Erro no Apache Log:

[Sun Jun 17 13:25:33.859261 2018] [core:error] [pid 5620:tid 1228] (20024)The given path is misformatted or contained invalid characters: [client ::1:54655] AH00127: Cannot map GET /aulaphpi/unidade_10/%3C?%20echo%20$salada[$fruta];%20?%3E HTTP/1.1 to file, referer: http://localhost/aulaphpi/unidade_10/destino.php?index=0

 

segue o código:

File inicial.php:

<!doctype html>
<html lang="pt-br">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>
        
        <ul>
            <li><a href="destino.php?index=0">Laranja</a></li>
            <li><a href="destino.php?index=1">Maçã</a></li>
            <li><a href="destino.php?index=2">Abacate</a></li>
        </ul> 
        
    </body>
</html>

File destino.php:

<!doctype html>
<html lang="pt-br">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>
        <?php
        $teste = "imagens/laranja.jpg";

        $salada = array("imagens/laranja.jpg","imagens/maca.jpg","imagens/abacate.jpg");
        $fruta = $_GET["index"];
        echo $salada[$fruta];
        ?>

        <img src="<? echo $salada[$fruta]; ?>">
        <img src="<? $teste ?>">
        <!-- <img src="imagens/laranja.jpg"> -->
    </body>
</html>

os arquivos inicial.php e destino.php se encontram na root, e as imagens se encontram nesta pasta "imagens" dentro da root.

fazendo o teste só para retornar o parâmetro da URL funcionou normalmente, mas quando tento buscar a imagem tenho esse erro 403. alguém sabe me dizer oque há de errado? :13_upside_down:

Share this post


Link to post
Share on other sites
antiblock
Cyphriun

tens primeiro de verificar se a variável está submetida na url

fazendo

if(isset($_GET["index"]){

 

        $salada = array("imagens/laranja.jpg","imagens/maca.jpg","imagens/abacate.jpg");
        $fruta = $_GET["index"];

 

 

}

Share this post


Link to post
Share on other sites

como sugerido fiz a verificação da variável como abaixo:

 

if (isset($_GET["index"])) {
	$salada = array("imagens/laranja.jpg","imagens/maca.jpg","imagens/abacate.jpg");
	$fruta = $_GET["index"];
} else {
    echo "Não há nada aqui.";
} 

porém o erro persiste:

KJl.png

 

Share this post


Link to post
Share on other sites

Será das permissões nas pastas? Orá dá permissões aos ficheiros e as pastas

Share this post


Link to post
Share on other sites
50 minutos atrás, Rafael Sena disse:

Será das permissões nas pastas? Orá dá permissões aos ficheiros e as pastas

 

Se estiver com em windows não precisa de dar permissões nenhumas...

 

Encontra as diferenças:

<!doctype html>
<html lang="pt-br">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>
        <?php
		if (isset($_GET["index"])) {
			$salada = array("imagens/laranja.jpg","imagens/maca.jpg","imagens/abacate.jpg");
			$fruta = $_GET["index"];
		} else {
			echo "Não há nada aqui.";
		} 
        ?>

        <img src="<?php echo $salada[$fruta]; ?>">
        <img src="<?php $teste ?>">
        <!-- <img src="imagens/laranja.jpg"> -->
    </body>
</html>

 

O PHP às vezes é estúpido, precisas de dizer que língua é que vais usar, tu só metes <? em vez de <?php...

 

Mas isso tem uma explicação: https://stackoverflow.com/questions/15847072/php-vs-php-echo-whats-the-difference-which-one-is-better-to-use

Share this post


Link to post
Share on other sites

Então, mas eu verifiquei no php.ini e o short_tag está habilitado como default, quando eu utilizo o <?php ?> o path para a imagem me aparece "unknown" e não aparece imagem nenhuma nem nada. Já quando utilizo a short tag <? ?>, aparece o caminho da imagem, porém me vem o erro 403 e ela não abre no navegador, como se fosse um link quebrado.:wtf:

Share this post


Link to post
Share on other sites
4 horas atrás, MaxiWill disse:

Então, mas eu verifiquei no php.ini e o short_tag está habilitado como default, quando eu utilizo o <?php ?> o path para a imagem me aparece "unknown" e não aparece imagem nenhuma nem nada. Já quando utilizo a short tag <? ?>, aparece o caminho da imagem, porém me vem o erro 403 e ela não abre no navegador, como se fosse um link quebrado.:wtf:

 

Comigo com a short tag <? ?> não aparecia nada, já com o <?php ?> ficou tudo direitinho...

 

EDIT: Ativei a short tag <? ?> e aparece tudo...

php.ini:

short_open_tag=On

 

Share this post


Link to post
Share on other sites

Reinstalei o Wamp pela terceira vez, e o código funcionou como mágica! :lol:

Não sei oque possa ter sido isso mas funcionou e é oque importa não é mesmo? xD

 

RESOLVIDO!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now