Jump to content


Photo

Dúvida No Session


  • Faça o login para participar
12 replies to this topic

#1 anschau

anschau

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 11/06/2004, 00:49

Estou fazendo uma area de login, onde o usuario logado (conforme cadastro já efetuado), com niveis de usuario e administrador, mais num funfa, se alguém puder dar uma luz, agradeço.
segue abaixo o script.
index.htm
<html>
	<head>
  <title></title>
	</head>
	<body>
<link href="estilo.css" rel="stylesheet" type="text/css">
<p align="center">&nbsp;</p>
<form method=POST action="entrar.php">
  <div align="center"> 
    <table width="29%" border="0">
      <tr bordercolor="#666666" bgcolor="#D8D8D8"> 
        <td width="17%" nowrap><font face="Geneva, Arial, Helvetica, sans-serif"><strong><font color="#666666" size="2">Login.:</font></strong></font></td>
        <td width="83%" nowrap><font face="Geneva, Arial, Helvetica, sans-serif"><strong><font color="#666666" size="2"> 
          <input name="login" type="text" id="login" size=8 maxlength="8">
          </font></strong></font></td>
      </tr>
      <tr bordercolor="#666666" bgcolor="#D8D8D8"> 
        <td nowrap><font face="Geneva, Arial, Helvetica, sans-serif"><strong><font color="#666666" size="2">Senha.:</font></strong></font></td>
        <td nowrap><font face="Geneva, Arial, Helvetica, sans-serif"><strong><font color="#666666" size="2"> 
          <input name="senha"  type="password" v size=8 maxlength="8">
     </font></strong></font></td>
      </tr>
      <tr bordercolor="#666666" bgcolor="#D8D8D8"> 
        <td colspan="2" nowrap> <div align="center"><font face="Geneva, Arial, Helvetica, sans-serif"><strong><font color="#666666" size="2"> 
            <input name="submit" type="submit" value="Login">
            &nbsp; 
            <input name="limpar" type="reset" id="limpar3" value="Limpar">
            </font></strong></font></div></td>
      </tr>
    </table>
  </div>
  </form>
	</body>
</html>

entrar.php deveria fazer o login e abrir o menu de acordo com nivel de usuario.
<?
include ("connect.php");
$user = mysql_query("select * from usuarios where login = '$login', senha = '$senha' end nivel = '$nivel',",$cn);
$user = mysql_fetch_array($user);
session_start("user");
session_register("login", "senha", "nivel");
?>
<html>
	<head>
  <title></title>
	</head>
	<body>
<? if($user["login"] != "" && $user["senha"] != "" && $nivel["nivel"]!= ""){ ?>
<?
if($nivel == administrador)
 include ("menu_admin.htm");
if($nivel == usuario)
 include ("menu_user.htm");
?>
<p>&nbsp;</p>
	<? } else { ?>
  	Nome e senha não cadastrado
  <? } ?>
</body>
</html>

Edição feita por: anschau, 11/06/2004, 00:52.


#2 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 11/06/2004, 01:01

No entrar.php não vi você definindo o $nivel ??? :wacko:

PHP
<?php

if($user["login"] != "" && $user["senha"] != "" && $nivel["nivel"]!= ""){

?>


A condição deste if não está errada ??

PHP
<?php

if($user["login"] != "" && $user["senha"] != "" && $user["nivel"]!= ""){

?>



Outra coisa quando você usa session o session register caiu em desuso agora se usa assim

PHP
<?php

session_start
("user");
$_SESSION['login']=$login;

?>


Ai você define a var da session e o valor dela para pegar

PHP
<?php

$login
=$_SESSION['login'];

?>


Quando você está registrando a session você está pegando o de onde ??? você teria que registrar assim

PHP
<?php

$_SESSION
['login']=$user['login'];//isso apos fazer o fetch array na consulta

?>


POr enquando é só

FUI B)

#3 Veneziani

Veneziani

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 11/06/2004, 12:41

Aproveitando o mesmo topico, o que tem de errado nesse codigo? :wacko:

<?
session_start();
session_name("administrador");
session_register("usuario","senha");
?>

ai me joga pra outra pagina com o seguinte codigo:

<?
session_start("administrador");
if((!session_is_registered("usuario")) && (!session_is_registered("senha"))){
header("location:http://www.xxxxx/xxxx/index.php");
}
?>

Edição feita por: Veneziani, 11/06/2004, 12:44.


#4 Marcão

Marcão

    Marcãaaaaaaaao

  • Usuários
  • 1754 posts
  • Sexo:Não informado
  • Interesses:Faixa preta de Muay-Thay<br>Faixa Roxa de Jiu-Jitsu<br>:D<br>Um dia eu chego lá

Posted 11/06/2004, 12:56

que erro que esta dando??
Marcão -=- PHP é coisa de MESTRE e falo mais nada -=-
Minha Foto
"Não temas,segue adiante,não olhes para trás!!
Segura na mão de
Deus e vai.."

#5 Troyan

Troyan

    12 Horas

  • Usuários
  • 285 posts
  • Sexo:Não informado
  • Localidade:Mesquita, Rio de Janeiro - Brasil
  • Interesses:Sou programador ASP, PHP, Javascript e ActionScript, além de ser curioso em JSP, ColdFusion e XSL. Trabalho com XML, XHTML, adoro webstandards e a W3C. Também trabalho com tableless e RIA's.<br><br> Formas de contato:<br> Email: dnunes[at]gmail[dot]com<br> ICQ: 68102402<br> MSN: troyandev@hotmail.com<br><br> -------------------------------------<br> - Rio de Janeiro, Brazil<br> - Troyan

Posted 11/06/2004, 14:02

$user = mysql_query("select * from usuarios where login = '$login', senha = '$senha' end nivel = '$nivel',",$cn);

É o fim do erro! Huahauhauahuauh.. putz, que piada idiota ;D

Tente corrigir aquilo, o certo é "and".

[]s
~~ ~
diego nunes
web engineer

~ ~~

#6 Veneziani

Veneziani

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 11/06/2004, 14:04

No meu simplesmente ele retorna para a pagina de login. :(

#7 anschau

anschau

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 11/06/2004, 17:54

$user = mysql_query("select * from usuarios where login = '$login', senha = '$senha' end nivel = '$nivel',",$cn);

É o fim do erro! Huahauhauahuauh.. putz, que piada idiota ;D

Tente corrigir aquilo, o certo é "and".

Desculpa amigo, mas onde vc viu and no lugar de end no meu script?
Bastante irônica sua resposta.

#8 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 11/06/2004, 18:07

Sem querer intrometer, mas anschau.. da uma olhada na query sql onde ta o SELECT blabla... ta "end" mas o correto é "and" como o Troyan falou.
Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#9 anschau

anschau

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 11/06/2004, 18:53

Pow valeu Danilo, Desculpa ai Troyan, foi muita ignorancia de minha parte.

Fix algumas alterações ma ta dando um erro ainda, olhem como ficou o script agora, e puderem me dizer o que estou fazendo de errado, agradeço.

<?
include ("connect.php");
?>
<?
$login = "login"; //variavel login que vem do campo login, no form
$senha = "senha"; //variavel senha que vem do compo senha, no form
$nivel = array( array("usuarios"), 
       array("administrador") );	//declarando a variavel nivel
?>
<?
$user = mysql_query("select * from usuarios where login = '$login', senha = '$senha' and nivel = '$nivel',",$cn);
$user = mysql_fetch_array($user);
$login=$_SESSION['login'];
$_SESSION['login']=$user['login'];
?>
<html>
<head>
 <title></title>
</head>
<body>
<? if($user["login"] != "" && $user["senha"] != "" && $nivel["nivel"]!= ""){ ?>
<?
if($nivel == administrador)
include ("menu_admin.htm");
if($nivel == usuario)
include ("menu_user.htm");
?>
<p>&nbsp;</p>
<? } else { ?>
  Nome e senha não cadastrado
 <? } ?>
</body>
</html>

da o erro abaixo;


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\www\admin\entrar.php on line 12

Notice: Undefined variable: _SESSION in d:\www\admin\entrar.php on line 13
Nome e senha não cadastrado

[]'s

#10 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 11/06/2004, 19:01

O erro que esta na linha 12, pode ser por causa dessa " , " que esta entre login e senha, tipo assim...

$user = mysql_query("select * from usuarios where login = '$login', senha = '$senha' and nivel = '$nivel',",$cn);


Tenta:

$user = mysql_query("select * from usuarios where login = '$login' and senha = '$senha' and nivel = '$nivel',",$cn);


ai vamo ve se o erro 13 continua aparecendo!
Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#11 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 11/06/2004, 19:08

Vamos lá os erros ^^

PHP
<?php

$user
= mysql_query("select * from usuarios where login = '$login', senha = '$senha' and nivel = '$nivel',",$cn);

?>


Veja que colocou , entre login e senha não seria AND

PHP
<?php

$user
= mysql_query("select * from usuarios where login = '$login' and senha='$senha' and nivel = '$nivel',",$cn);

?>


No $nivel não seria $nivel[1] que é o indice do administrador ?? pois é um array ^^
PHP
<?php

$login
=$_SESSION['login'];
$_SESSION['login']=$user['login'];

?>


Não seria isso ???

PHP
<?php


$login
=$user['login'];//pois a session não foi definida será em baixo
$_SESSION['login']=$user['login'];

?>


Pórem seu código tem alguns erros de lógicas eu vou concerta-lo e explicar ;)

PHP
<?
include ("connect.php");
?>
<?
$login
= "login"; //variavel login que vem do campo login, no form
$senha = "senha"; //variavel senha que vem do compo senha, no form
// naõ é necessario declarar o nivel neste array já que ele está no banco
?>
<?
$user
= mysql_query("select * from usuarios where login = '$login', senha = '$senha',",$cn);// aqui tinha colocado o nivel mais se você não sabe o nivel para que definilo na query
$user = mysql_fetch_array($user);
$_SESSION['login']=$user['login'];
//queira colocar mais session de senah e etc coloque aqui ^^
?>
<html>
<head>
<title></title>
</head>
<body>
<? if($user["login"] != "" && $user["senha"] != "" && $user["nivel"]!= ""){ ?>
<?
if($user[nivel] == administrador){//usando a var que veio do banco
include ("menu_admin.htm");
}
}elseif(
$user[nivel] == usuario){
include (
"menu_user.htm");
}
?>
<p>&nbsp;</p>
<? } else { ?>
Nome e senha não cadastrado
<? } ?>
</body>
</html>



Pronto eu comentei no código veja ai se dá certo ;)

FUI B)

#12 anschau

anschau

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 11/06/2004, 23:18

Obrigado Thiago por sua ajuda mais num funfa, já tentei de tudo, quando não um erro é outro, vou falar um pouco mais sobre o que script precisa fazer.
O script precisa logar e pegar no bd o nivel de usuario, de acordo com nivel abre uma paginá diferente.

flw.

#13 anschau

anschau

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 12/06/2004, 19:21

:D Colé pessoal, ajudem o velho aki, do me escabelando neste script. :wacko:




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq