Ir para conteúdo
Fórum Script Brasil
  • 0

Login restrito


wgc

Pergunta

Olá, pessoal.

Bem, estou com um problema que pra muitos pode ser simples mas pra mim não.

Então... Tenho um website que contem duas áreas, uma normal e outra para usuários cadastrados. Pois bem, quando usuário acessa o site não tem problema nenhum, mas quando ele vai acessar a área restrita não consegue. Por que, disso? bem... quando eu coloco o código PHP para verificar o usuário dentro de um HTML ex.:

<?php

session_start(); // Inicia a session

?>

<html>

<body>

<div align="center">

<?php

include "config.php";

$usuario = $_POST['usuario'];

$senha = $_POST['senha'];

if((!$usuario) || (!$senha)){

echo "Por favor, todos campos devem ser preenchidos!

";

echo "<a href=\"index.php\">Voltar";

}

else{

$senha = md5($senha);

$sql = mysql_query("SELECT * FROM usuarios WHERE usuario={$usuario}' AND senha='{$senha}' AND ativado='1'");

$login_check = mysql_num_rows($sql);

if($login_check > 0){

while($row = mysql_fetch_array($sql)){

foreach( $row AS $key => $val ){

$$key = stripslashes( $val );

}

$_SESSION['usuario_id] = $usuario_id;

$_SESSION['nome'] = $nome;

$_SESSION['sobrenome'] = $sobrenome;

$_SESSION['email'] = $email;

$_SESSION['nivel_usuario'] = $nivel_usuario;

mysql_query("UPDATE usuarios SET data_ultimo_login = now() WHERE usuario_id ='{$usuario_id}'");

header("Location: /restrito/index.php");

}

}

else{

echo "Você não pode logar-se!

Este usuário e/ou senha não são válidos!

Por favor tente novamente!

";

echo "<a href=\index.php>Clique aqui para voltar para a página inicial.

";

echo "Ainda não é usuário? <a href=\"form_cadastro.php\">Clique aqui e Cadastre-se.";

}

}

?>

</div>

</body>

</html>

ele diz que há um erro na linha 46 que no caso seria este comando header("Location: /restrito/index.php"); .

Mas quando eu retiro o código HTML e deixo só o PHP, o usuário consegue acessar a área restrita.

O que fazer... ou o que estou fazendo de errado?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Você deveria ter postado a mensagem de erro. Se o problema persistir após as sugestões aqui postadas, nos mostre qual é a msg de erro! Então, parece que só há erro de sintaxe no código, e.g.:

$$key = stripslashes( $val );
Na linha acima você inseriu dois cifrões, por quê? Na linha abaixo tente fazer algumas mudanças:
$sql = mysql_query("SELECT * FROM usuarios WHERE usuario='{$usuario}' AND senha='{$senha}' AND ativado='1'");
Faça assim:
$sql = mysql_query("SELECT * FROM usuarios WHERE usuario='$usuario' AND senha='$senha' AND ativado='1'");
Ou assim:
$sql = mysql_query("SELECT * FROM usuarios WHERE usuario='".$usuario."' AND senha='."$senha."' AND ativado='1'");
Repita o procedimento acima para as outras linhas que contém instruções MySQL. Outra coisa, faça assim para usar a função NOW():
mysql_query("UPDATE usuarios SET data_ultimo_login ='".now()."' WHERE usuario_id ='".$usuario_id."'");

Link para o comentário
Compartilhar em outros sites

  • 0

o seu código ta quase certo wgc

só que o PHP não permite o uso da função header(), depois que você já tenha enviado algo ao cliente

e você logo depois de iniciar a sessão já envia tags html, por isso a função header não funciona

<?php
session_start(); // Inicia a session
?>
<html>
<body>
<div align="center">

<?php
E 3l3tr1c as linhas que você disse que talvez estivessem erradas estão corretas no trecho
foreach( $row AS $key => $val ){
     $$key = stripslashes( $val );
}
os dois cifrões querem dizer que o valor que está dentro de $key se tornará uma variável e receberá o valor de stripslashes( $val ) isso poderia ser substituto por:
extract($row);

e nos outros trechos o uso de chaves auxilia para que o PHP saiba que ali dentro existem variáveis a serem acessadas e aonde começam e onde terminam

Espero ter ajudado

Abrass

Link para o comentário
Compartilhar em outros sites

  • 0

Verdade e fica mais simples fazer do jeito que jissa disse.

porque pra manter a linha do comando header, além de tirar as tags html la do começo você teria que ir armazenando as mensagens em variáveis pra só depois de todo o processo pronto ir escrevendo todas elas, vai te economizar ai pelo menos uma hora de trabalho rsrs

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...