Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal, fiz a seguinte concatenação, mais não esta a funcionar, o que esta errado?
<?PHP
//capitura os dados do formulario
$usuario=$_POST['usuario'];
$senha=$_POST['senha'];
if($row > 0) {
session_start();
$_SESSION['email']=$_POST['usuario'];
$_SESSION['senha']=$_POST['senha'];
echo "<script type='text/javascript'>";
//concatenação desta linha
echo "alert('Login efectuado com sucesso!', chr(13), 'Seja bem vindo').$usuario";
echo "</script>";
echo "<script>loginsucesso()</script>"; echo "<script type='text/javascript'>";
echo "alert('Usuário ou senha Inválido, por favor verifique!')";
echo "</script>";
echo "<script>loginfalhou()</script>";
}
?>
também já tentei:
echo "alert('Login efectuado com sucesso!' <br> 'Seja bem vindo').$usuario";
e
echo "alert('Login efectuado com sucesso!' \n 'Seja bem vindo').$usuario";
ok, obrigado e funcionou realmente, mas falta colocar seja bem vinda numa segunda linha, ai que não esta a funcionar.
Basta um \n:
echo "alert('Login efectuado com sucesso!\nSeja bem vindo {$usuario}')";
coloquei conforme indicou e dá o seguinte erro:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /htdocs/public/www/autenticacao.php:5) in /htdocs/public/www/autenticacao.php on line 37
Não pode haver saídas ao navegador antes de session_start
Veja http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/#header
Desculpe Beraldo mais infelizmente não consigo chegar lá.
Coloquei a linha conforme me indicou, conferi tudo conforme na videoaula que vi, mais não funciona.
Se eu coloco da seguinte forma:
Login.php
<!DOCTYPE HTML>
<html lang="pt-br" debug="true" style="height: 100%;">
<head>
<title>Reborn Imaginações de Bebés - Bebés Reborn Portugal</title>
<!-- Leitura do Javascript -->
<script type="text/javascript" src=".ficheiros_login/js/jquery.js"></script>
<script type="text/javascript" src=".ficheiros_login/js/jquery.query-2.1.7.js"></script>
<script type="text/javascript" src=".ficheiros_login/js/rainbows.js"></script>
<script>
$(document).ready(function(){
$("#submit1").hover(
function() {
$(this).animate({"opacity": "0"}, "slow");
},
function() {
$(this).animate({"opacity": "1"}, "slow");
});
});
</script>
</head>
<body>
<form name="loginform" method="post" action="autenticacao.php">
<input type="text" name="usuario" id="url" value="Usuário" onclick="this.value = ''">
<input type="password" name="senha" id="url" value="Senha" onclick="this.value = ''"> <input type="image" src="ficheiros_login/images/submit_hover.png" id="submit1" value="Entrar">
<input type="image" src="ficheiros_login/images/submit.png" id="submit2" value="Entrar">
</form>
<footer id="rodapepg">
<h3>Caso encontre algum erro em nosso site, por favor queira reportar para suporte@rebornimaginacoesdebebes.com.pt</h3></footer>
</body>
Autenticacao.php
<?php
//Conecta ao servidor com o usuário e senha
$conexao = mysql_connect("local","usuario","senha") or die (mysql_error());
//Nome do banco de dados
$bd = mysql_select_db("nome do_banco", $conexao) or die (mysql_error());
?>
<html>
<head>
<script type='text/javascript'>
function loginsucesso(){
setTimeout("window.location='galeria.php'",1500);
}
function loginfalhou(){
setTimeout("window.location='login.php'",1500);
}
</script>
</head>
<body>
<?php$usuario=$_POST['usuario'];
$senha=$_POST['senha'];$sql = mysql_query("SELECT * FROM tb_usuario WHERE usuario = '$usuario' and senha = '$senha' ORDER BY registo") or die(mysql_error());
$row = mysql_num_rows($sql);
if($row > 0){
$_SESSION['usuario']=$_POST['usuario'];
$_SESSION['senha']=$_POST['senha'];
echo "<script type='text/javascript'>";
//***QUANDO COLOCO DESTA FORMA NÃO DÁ ERRO, NÃO DA NADA, SEMPRE REDIRECIONA PARA A PAGINA DE LOGIN, ESTANDO A SENHA CERTA OU ERRADA ***//
echo "alert('Login efectuado com sucesso!\nSeja bem vindo {$usuario}')";
//***QUANDO COLOCO DESTA FORMA, QUANDO A SENHA E USUÁRIO ESTÃO INCORRECTOS NÃO ME DA ERRO NENHUM, NEM MENSAGEM, APENAS REDIRECIONA PARA A PAGINA DE LOGIN, MAS SE USUÁRIO E SENHA ESTIVER CORRECTOS, APARECE A MENSAGEM, MAS NÃO REDIRECIONA PARA A PAGINA GALERIA.PHP***//
echo "alert('Login efectuado com sucesso! Seja bem vindo {$usuario}')";
//***QUANDO COLOCO DESTA FORMA, FUNCIONA AS MENSAGENS, DIZENDO SE O LOGIN FOI EFECTUADO COM SUCESSO OU SE ESTÃO INCORRECTAS, MAS NÃO REDICIONA PARA A PÁGINA GALERIA.PHP, VOLTA SEMPRE PARA LOGIN.PHP***//
echo "alert('Login efectuado com sucesso! Seja bem vindo')";
echo "</script>";
echo "<script>loginsucesso()</script>"; echo "<script type='text/javascript'>";
echo "alert('Usuário ou senha Inválido, por favor verifique!')0";
echo "</script>";
echo "<script>loginfalhou()</script>";
}
?>
</body>
</html>
Espero ter sido claro, por favor ajudem-me
Se acrescento "session_start();" ele redireciona, mas não dá nenhuma mensagem do alert.
if($row > 0){
session_start();
$_SESSION['usuario']=$_POST['usuario'];
$_SESSION['senha']=$_POST['senha'];
echo "<script type='text/javascript'>";
e da o seguinte erro:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /htdocs/public/www/autenticacao.php:13) in /htdocs/public/www/autenticacao.php on line 32
>
[...]
Em suma, antes de funções como session_start, setcookie e header não pode existir NENHUMA saída ao navegador. Isso inclui qualquer código HTML, echo, print ou um simples espaço em branco antes da tag de abertura do PHP (<?php). Se o script que está gerando o erro faz inlude/require de outro script, verifique esse outro também.
No seu código, tem um monte de html antes do session_start...
O problema começa aí...
Com relação a querer dividir o alert em duas linhas a forma correcta que funcionou foi:
echo "alert('Login efectuado com sucesso!\\nSeja bem vindo {$usuario}')";
tive que adicionar \\n e não \n como haviam me dito, sei que apenas com \n em alguns casos funciona, mais no meu infelizmente não resultou.
Seu erro está no no alert, colei aqui e alterei para
echo "alert('Login efectuado com sucesso! Seja bem vindo {$usuario}')";
Funcionou de boa.