1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

php algumas duvidas

Discussão em 'Web Development' iniciada por Angelizer, 14 de Maio de 2008. (Respostas: 7; Visualizações: 623)

  1. Angelizer

    Angelizer Power Member

    boas, tou a realizar um projecto em php/mysql e estou com algumas duvidas

    na pag login faço a leitura do teclado td bem, dps faço um teste para verificar o tipo de user da seguinte forma:

    ...codigo...
    $_SESSION['nome']=$registo['nome'];
    $_SESSION['nivel']=$registo['nivel'];

    if($_SESSION['nivel']=="gestor")
    {
    header ("location:administrador/gestor.php");
    }

    aki a minha duvida está.... fazer "header ("blah blah");" sera a melhor opçao para redireccionar para a pagina que quero??

    outra coisa que nao consigo solucionar, é quando acedo a pagina gestor dps de fazer o login correcto, perco a info relativa a session...ou seja,

    session_start();
    $nome=$_SESSION['nome']; echo"$nome";

    faço isto logo no inicio da pagina e nao faz print do nome do gestor na pagina.

    any help?:wvsore::smilliex:
     
  2. MPalhas

    MPalhas Power Member

    usaste session_destroy() em alguma parte do código?
    antes de verificar se o $nome existe no ficheiro gestor.php, verifica também se ele está correcto na página anterior, o $registo['nome']. podes estar a escrever mal algum nome.


    sobre o redireccionamento, acho que não há problema, desde que no ficheiro gestor.php esteja a devida validação, para que não possa ser acedido por alguém sem permissão
     
  3. Angelizer

    Angelizer Power Member

    nop na usei nenhum session destroy
     
  4. Angelizer

    Angelizer Power Member

    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\projecto\index.php:16) in C:\xampp\htdocs\projecto\index.php on line 200



    alguem sabe o porque deste erro??? lol isto ta bonito!=P estoura por td o lado :003:
     
  5. MPalhas

    MPalhas Power Member

    isso acontece porque já escreveste alguma coisa antes de usares o header.
    o header tem que ser usado antes de qualquer output, a partir do momento que fazes algum echo, ou que escreves html, deixas de o poder usar

    já agora posta ai o código da parte em que usas essa variavel que está a dar problemas, a ver se se resolve
     
    Última edição: 14 de Maio de 2008
  6. Angelizer

    Angelizer Power Member

    a tua ajuda ajudoume a corrigir o tal erro do header. :)

    agora la vou eu voltar a martelar com as sessoes :D

    codigo que verifica o login e o redirecciona para outra pagina:
    Código:
    <?php
    session_start();
    $dbuser='matos';
    $dbpass='matos';
    $dbhost='localhost';
    $dbname='engsof';
    
    $conn = mysql_connect($dbhost,$dbuser,$dbpass) or die("erro ao ligar a BD");
    mysql_select_db($dbname);
    ?>
    <?php
    $user=$_POST['username'];
    $pass=$_POST['password'];
    
    $sql= "select * from login where username='$user' and password='$pass'";
    $resultado = mysql_query ($sql);
    $numreg = mysql_num_rows ($resultado);
    if ($numreg==1)
    {
        
        while($registo=mysql_fetch_array($resultado))
        {
            $_SESSION['nome']=$registo['nome'];
            $_SESSION['nivel']=$registo['tipo'];
            $_SESSION['numero']=$registo['numero'];        
    
        }
    
        
        if($_SESSION['nivel']=="admin")
        {
            header ("location:administrador/RH.php");
        }
    }
    ?>
    
    aqui na pagina RH quero que escreva "Bem Vindo Admin" e nao escreve nada :X

    Código:
    <?php
    session_start();
    echo 'Bem Vindo';
    echo $_SESSION['nome'];
    ?>
    
     
    Última edição pelo moderador: 17 de Maio de 2008
  7. MPalhas

    MPalhas Power Member

    vai ao phpMyAdmin, executa essa mesma query do login, substituindo as variaveis, e ve se te dá o resultado pretendido

    tu verificas se o mysql_num_rows é igual a 1, mas não cobres a possibilidade de não o ser, ou seja, de não ter encontrado registo, ou mesmo de ter encontrado vários. executando a query directamente vês logo se o resultado está correcto.

    em alternativa também podes por, dentro do while, um var_dump($resultado) que te vai mostrar todo o conteudo da variavel.

    já agora, não faz sentido esse while, visto que só entra nele se houver um registo. apaga o ciclo, mantendo o conteudo e o $row=mysql_fetch_array, que vai dar ao mesmo
     
  8. Angelizer

    Angelizer Power Member

    MPALHAS es u rei!!!:beerchug:

    era akele while que me tava a estragar o esquema! brigadinho ;)
     

Partilhar esta Página