MaxiWill 1 Posted June 17, 2018 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? Share this post Link to post Share on other sites
Witness 87 Posted June 17, 2018 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"]; } 1 MaxiWill reacted to this Share this post Link to post Share on other sites
MaxiWill 1 Posted June 17, 2018 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: Share this post Link to post Share on other sites
Rafael Sena 2 Posted June 17, 2018 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
Karbust 1,143 Posted June 17, 2018 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
MaxiWill 1 Posted June 18, 2018 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. Share this post Link to post Share on other sites
Karbust 1,143 Posted June 18, 2018 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. 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 1 MaxiWill reacted to this Share this post Link to post Share on other sites
MaxiWill 1 Posted June 18, 2018 Reinstalei o Wamp pela terceira vez, e o código funcionou como mágica! 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