Jump to content

Duvida em PHP


Ruilopes1995

Recommended Posts

<span onclick="window.history.back();">Voltar</span>

Tentei usar o codigo e não funcionou...

session_start();

$idreceita = $_GET['idseleccionado'];

echo "<center> <br> <br>";

echo "<br> <img src='data:image/png;base64," .base64_encode($_SESSION["a" . $idreceita]['imagem']). "'width='1000' height='230'> <br> <br> <br> ";

echo "<b>Nome da Sobremesa:</b> <br>";

echo $_SESSION["a" . $idreceita]['nome_sobremesa'] . "<br> <br> ";

echo "<b>Tempo:</b> <br>";

echo $_SESSION["a" . $idreceita]['tempo'] . "<br> <br> ";

echo "<b>Ingredientes:</b> <br>";

echo $_SESSION["a" . $idreceita]['ingredientes'] . "<br> <br> ";

echo "<b>Preparacao:</b><br>";

echo $_SESSION["a" . $idreceita]['preparacao'] . "<br> <br> ";

echo "</center>";

echo "<span onclick="window.history.back();">Voltar</span>";

?>

MROverclock, eu estava a usar um codigo muito similar ao que usei agora

Link to comment
Share on other sites

Tentei usar o codigo e não funcionou...

não .. o código funciona, se não funciona para ti, não te posso dizer qual a razão porque fizeste o favor de não fornecer mais informação nenhuma, somente uma mensagem a dizer "não funciona" ...

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

não .. o código funciona, se não funciona para ti, não te posso dizer qual a razão porque fizeste o favor de não fornecer mais informação nenhuma, somente uma mensagem a dizer "não funciona" ...

Peço desculpa, o erro foi

Parse error: syntax error, unexpected 'window' (T_STRING), expecting ',' or ';' in C:\xampp\htdocs\Doce_Sabor\backup_ninja\Receitas\Sobremesas\mostrarreceita.php on line 61
Link to comment
Share on other sites

echo "<span onclick="window.history.back();">Voltar</span>";

Vês esse excerto aí em cima da linha de código que te está a dar problemas?!

A cor azul significa que é texto...

echo imprime na página o que estiver a frente dele

a página interpreta o que é codigo e o que é texto para o utilizador ver...

" ou ' inicia e termina o que vai ser imprimido

ao iniciares e terminares e escreveres um codigo Javascript e começares de novo a string e terminares again o PHP da uma mensagem de erro igual à que colaste a cima.

isso porque?

porque queres imprimir isto:

<span onclick="window.history.back();">Voltar</span>

mas não tás a imprimir nada do que era o teu objetivo

Muda essa linha por algo do tipo:

echo "<span onclick=\"window.history.back();\">Voltar</span>";

Vai rolar magia aí...

PS:

Usa um IDE que diferencie as ações que estás a programar por cores e/ou faça um mínimo debug da situation xd

developer @ filipealves.net

filipealvesbcl [a] gmail.com

github.com/filipealvesbcl

Link to comment
Share on other sites

O problema é estares a usar aspas dentro de aspas!

Vou tentar dar um exemplo:

<?php
echo "Esta frase não é para aparecer dentro de aspas "mas esta é" "
//OUTPUT -> ERRO identico ao que tens porquea string termina na palavra aspa e depois tem caracteres fora de sintaxe!
?>

A forma de contornar este problema é: ou usas \" que vai dizer ao PHP que estas aspas não são para interpretar como sendo o fim da string, ou usas as aspas dentro de plicas ou ao contrário

Exemplos:

<?
echo "Esta frase não é para aparecer dentro de aspas \"mas esta é\" "

//OUTPUT: Esta frase não é para aparecer dentro de aspas "mas esta é"


echo 'Esta frase não é para aparecer dentro de aspas "mas esta é" '

//OUTPUT: Esta frase não é para aparecer dentro de aspas "mas esta é"

?>

no entanto como esse pedaço de código é 100% HTML e é independente do resto do que se vai passar no PHP, podes escrever isso fora do código PHP

(...)
echo $_SESSION["a" . $idreceita]['preparacao'] . "<br> <br> ";
echo "</center>";
?>

<span onclick="window.history.back();">Voltar</span>
Edited by apocsantos
geshi
Link to comment
Share on other sites

  • 2 weeks later...

Num botão de voltar para à página anterior, eu faria algo assim:

<p id="back-link">
<a id="back" href="<?php if(!empty($_SERVER["HTTP_REFERER"])) echo filter_var($_SERVER["HTTP_REFERER"], FILTER_SANITIZE_STRING); else echo "http://default-url.com/"; ?>">Voltar</a> <!-- Usando o PHP aqui porque o utilizador pode ter o Javascript desativado... -->
</p>
<script>
document.getElementById('back').onclick = function() {
	if (history.length > 1) {
		history.back();
		return false;
	}
};
</script>
Acho que é o melhor metodo...

Só explicando algo para garantir...

eu escrevi: filter_var($_SERVER["HTTP_REFERER"], FILTER_SANITIZE_STRING);

Porquê usar filter_var em vez de filter_input(INPUT_SERVER, "HTTP_REFERER"); ?

Acontece que existe um erro no PHP atual que faz com que isto falhe para agora... o filter_var com o FILTER_SANITIZE_STRING pode até nem garantir a mesma segurança, porém enquanto a equipa do PHP não corregir este erro, acho que esta é a melhor alternativa 🙂 .

Link to comment
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
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.