Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá
Eu tenho um botão em minha página html com o código:
<script>
//Obter ID do link
var url = window.location.href
var captured = /%=([^&]+)/.exec(url)[1];
var l = captured ? captured : 'myDefaultValue';
var i = '/download.php?%='
</script>
<input type="submit" name="Submit1" id="dow" value="Download" class="styled-button-9" onclick="clearRecord();window.location.href= i+l;edit();" disabled>
<script>
function edit() wb_Text5.style.visibility = 'visible';
dow.style.visibility = 'hidden';
timer.style.visibility = 'hidden';
}
function clearRecord()location.href = '/login.php';
}
</script>
Quando clico no botão, será chamado o "download.php" onde retornara o link do arquivo para baixar. No entanto esse arquivo só será baixado se "$_SESSION['logado'] " for igual a "true". Então, antes de chamar o "download.php", terá que chamar "login.php" contendo:
<?php
session_start();
$_SESSION['logado'] = 'true';
?>
O código php está correto pois já testei. O caso é que parece que "login.php" não é chamado, que é chamado depois do "download.php", ou sei lá oque esta acontecendo.
Alguém me ajuda. Desde já agradeço.
Olá E.Martins
Obrigado pelo interesse em me ajudar, mas não funcionou.
Na verdade já estou dentro de uma página php "downloading.php" quando executo esta função. Então talvez não aceite chamar outra php (sobreposição). Só que não consigo encontrar solução.
Será que é possível executar o código php direto na funcao script sem precisar da página php (login.php)?
Ex.:
<script>
function clearRecord()
{
<?php
session_start();
$_SESSION['logado'] = 'true';
?>
}
</script>Na realidade, o que você está tentando fazer não funciona. Você primeiro deve chamar uma página e, a partir desta, chamar a página seguinte.
Não há como chamar duas ao mesmo tempo.
Já, quanto utilizar javascript para chamar PHP, somente através de uma nova requisição.
Provavelmente você terá que recuperar a SESSION, algo assim:
if (!isset($_SESSION)) session_start();