Fabyo 66 Denunciar post Postado Março 21, 2005 Curso de PHP online Modulo 4 Introdução o require o include o require_once o include_once o Autenticação HTTP com PHP o Arrays o Header require() A instrução require() inclui a avalia um arquivo específico. require() e include() são idênticos em todas as formas exceto pela manipulação de erros. include() produz um Warning enquanto require() produzirá um Fatal Error. Em outras palavras, não hesite em utilizar require() se na falta de um arquivo quiser parar o processamento da página. include() não se comporta da mesma maneira, e o script poderá continuar nessa situação. Em todo caso, vale a pena confirmar a configuração da diretiva include_path. PHP <?php require 'prepend.php'; require $somefile; require ('somefile.txt'); ?> include() A instrução include() inclui e avalia o arquivo informado. A documentação a seguir se aplica também a require(). Esses dois construtores são idênticos a exceção de como eles manipulam erros. include() produz um Warning enquanto require() produzirá um Fatal Error. Em outras palavras, utilize require() se você deseja que um arquivo faltando interrompa o processamento da página. include() não se comporta da mesma maneira, permitindo que o script continue nessas situações. Em todo caso, vale a pena confirmar a configuração da diretiva include_path. Esteja avisado que um erro de interpretação no arquivo incluído não causa o cancelamento do processamento. Arquivos a incluir são procurados primeiramente no include_path relativo ao diretório atual de trabalho e depois no include_path relativo ao diretório atual do script. Por exemplo, se seu incluide_path é ., o diretório atual é /www/, se você incluiu include/a.php e há um b.php nesse arquivo, b.php será procurado primeiro em /www/ e somente depois em /www/include/. Quando um arquivo é incluído, seu código entra no escopo de variável da linha onde a inclusão ocorre. Qualquer variável disponível da linha onde a chamada da inclusão ocorre estará disponível para o arquivo incluído, daquele ponto em diante. vars.php Citar $cor = 'verde';$fruta = 'maçã'; frutas.php Citar <?php echo "Uma $fruta $cor"; // ira mostrar "Uma" e um notice que nao existe as variaveis $fruta e $cor include 'vars.php';//inclue a pagina echo "Uma $fruta $cor"; // ira mostrar "Uma maçã verde" ?> require_once() A instrução require_once() incluí e avalia o arquivo especificado durante a execução do script. Seu comportamento é similar ao da instrução require(), a não ser que o arquivo informado já tenha sido incluído, não refazendo a operação novamente. Veja a documentação de require() para maiores informações sobre como essa instrução funciona. require_once() pode ser utilizado nos casos em que o mesmo arquivo pode acabar sendo incluído mais de uma vez durante a execução de um script em particular, quando na verdade ele só pode ser incluído apenas uma, para evitar problemas com redefinições de funções, alterações nos valores de variáveis, etc. PHP <?php<br />require_once("a.php"); // isto irá incluir a.phprequire_once("A.php"); // isto irá incluir a.php de novo no Windows!?> include_once() A instrução include_once() inclui e avalia o arquivo especificado durante a execução de um script. Seu comportamento é similar a instrução include(), a não ser que o arquivo informado já tenha sido incluído, não refazendo a operação novamente. Como o nome sugere, ele será incluído apenas uma vez. include_once() pode ser utilizado nos casos em que o mesmo arquivo pode acabar sendo incluído mais de uma vez durante a execução de um script em particular, quando na verdade ele só pode ser incluído apenas uma para evitar problemas com redefinições de funções, alterações nos valores de variáveis, etc. Para maiores informações utilizando require_once() e include_once(), veja o código do PEAR incluído nas últimas distribuições do código fonte do PHP. PHP <?php<br />include_once("a.php");<br /> // isto irá incluir a.phpinclude_once("A.php"); // isto irá incluir a.php de novo no Windows!?> Autenticação HTTP com PHP Autenticação via HTTP no PHP só é disponível quando o mesmo for executador como módulo do Apache e, portanto, não é disponível na versão CGI. Em um script PHP no módulo Apache, é possível usar a função header() para enviar uma janela de entrada "Authentication Required". Uma vez que o usuário preencheu seu nome de usuário e senha, a URL contendo o script PHP será chamada de novo com as variáveis predefinidas PHP_AUTH_USER, PHP_AUTH_PW, e AUTH_TYPE contendo o nome de usuário, senha e tipo de autenticação, respectivamente. Essas variáveis predefinidas são achadas nos arrays $_SERVER e $HTTP_SERVER_VARS. Somente autenticação "Basic" (Básica) é suportada. um exemplo simples : Citar <? session_start(); function Autenticar() { header('WWW-Authenticate: Basic realm = "Area Restrita"'); header('HTTP/1.0 401 Unauthorized'); echo "<center><h1>Acesso Restrito</h1></center>"; exit; } function Confere_Login($nome, $senha) { mysql_connect("localhost", "usuario", "senha"); mysql_select_db("online"); $re = mysql_query("select count(*) as total from usuarios where nome = '$nome' and senha = md5('$senha')"); mysql_close(); return mysql_result($re, 0, "total"); } if ( !isset($_SERVER["PHP_AUTH_USER"]) and !isset($_SERVER["PHP_AUTH_PW"]) ) { Autenticar(); } else { $total = Confere_Login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"]); if ( $total == 0 ) { Autenticar(); } } ?> Arrays Um array no PHP é atualmente um mapa ordenado. Um mapa é um tipo que relaciona valores para chaves. Este tipo é otimizado de várias maneiras, então você pode usá-lo como um array real, ou uma lista (vetor), hashtable (que é uma implementação de mapa), dicionário, coleção, pilha, fila e provavelmente mais. Como você pode ter outro array PHP como um valor, você pode facilmente simular árvores. A explicação dessas estruturas estão além do escopo desse manual, mas você pode encontrar exemplos para cada uma dessas estruturas a seguir. Para mais informações sobre estruturas, refira-se a literatura externa sobre esses tópicos. Sintaxe Especificando com array() Um array pode ser criado com o construtor de linguagem array(). Ele pega um certo número de pares separados por vírgula chave => valor . Citar array( [chave =>] valor , ... ) // chave pode ser tanto string ou um integer // valor pode ser qualquer coisa PHP <?php $arr = array("foo" => "bar", 12 => true); echo $arr["foo"]; echo $arr[12]; ?> A chave pode ser tanto um integer ou uma string. Se a chave é uma representação padrão de um integer, ele será interpretado assim (por exemplo, "8" será interpretado como 8, enquanto "08" será interpretado como "08"). Não há diferença entre arrais indexados e associativos em PHP, apenas um tipo de array, que pode ter índices inteiros ou string. O valor pode ser qualquer tipo PHP: PHP <?php $arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42)); echo $arr["somearray"][6]; echo $arr["somearray"][13]; echo $arr["somearray"]["a"]; ?> Se omitir a chave quando fornece um novo item, o maior índice inteiro é obtido, e a nova chave será esse máximo + 1. Se você especificar uma chave que já possui um valor assimilada a ela, então o valor é sobrescrito. PHP <?php array(5 => 43, 32, 56, "b" => 12); array(5 => 43, 6 => 32, 7 => 56, "b" => 12); ?> Indice de algumas funções do array: array_change_key_case -- Retorna um array com todas as chaves string em maiúsculo ou minúsculo array_chunk -- Divide um array em pedaços array_count_values -- Conta as frequências de cada valor de um array array_diff -- Analisa as diferenças entre arrays array_fill -- Preenche um array com valores array_filter -- Filtra os elementos de um array utilizando uma função array_flip -- Inverte as relações entre chaves e valores array_intersect -- Calcula a interseção entre arrays array_key_exists -- Checa se uma chave ou índice existe em um array array_keys -- Retorna todas as chaves de um array array_map -- Aplica uma função em todos os elementos dos arrays dados array_merge_recursive -- Funde dois ou mais arrays recursivamente array_merge -- Funde dois ou mais arrays array_multisort -- Ordena múltiplos arrays ou arrays multi-dimensionais array_pad -- Expande um array para um certo comprimento utilizando um determinado valor array_pop -- Retira um elemento do final do array array_push -- Adiciona um ou mais elementos no final de um array array_rand -- Retorna um ou mais elementos aleatórios de um array array_reduce -- Reduz um array para um único valor através de um processo iterativo utilizando uma função. array_reverse -- Retorna um array com os elementos na ordem inversa array_search -- Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado array_shift -- Retira o primeiro elemento de um array array_slice -- Extrai uma parcela de um array array_splice -- Remove uma parcela do array e substitui com outros elementos array_sum -- Calcula a soma dos elementos de um array array_unique -- Remove o valores duplicados de um array array_unshift -- Adiciona um ou mais elementos no início de um array array_values -- Retorna todos os valores de um array array_walk -- Aplica uma determinada funcão em cada elemento de um array array -- Cria um array arsort -- Ordena um array em ordem descrescente mantendo a associação entre índices e valores asort -- Ordena um array mantendo a associação entre índices e valores compact -- Cria um array contendo variáveis e seus valores count -- Conta o número de elementos de uma variável current -- Retorna o elemento corrente em um array each -- Retorna o par chave/valor corrente de um array e avança o seu cursor end -- Faz o ponteiro interno de um array apontar para o seu último elemento extract -- Importa variáveis para a tabela de símbolos a partir de um array in_array -- Checa se um valor existe em um array key -- Retorna uma chave de um array associativo krsort -- Ordena um array pelas chaves em ordem descrescente ksort -- Ordena um array pelas chaves list -- Cria variáveis como se fossem arrays natcasesort -- Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas natsort -- Ordena um array utilizando o algoritmo da "ordem natural" next -- Avança o ponteiro interno de um array pos -- Retorna o elemento atual do array prev -- Retrocede o ponteiro interno de um array range -- Cria um array contendo uma faixa de elementos reset -- Faz o ponteiro interno de um array apontar para o seu primeiro elemento rsort -- Ordena um array em ordem descrescente shuffle -- Mistura os elementos de um array sizeof -- Apelido de count() sort -- Ordena um array uasort -- Ordena um array utilizando uma função de comparação definida pelo usuário e mantendo as associações entre chaves e valores uksort -- Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário. usort -- Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário Header header -- Envia um cabeçalho HTTP diretamente header() é usado para enviar diretamete cabeçalhos HTTP headers. O parâmetro opcional replace indica quando um cabeçalho deverá substituir um cabeçalho similar anterior, ou adicionar um segundo cabeçalho do mesmo tipo. Por padrão irá substituir, mas se você passar FALSE como segundo argumento você poderá forçar multiplos cabeçalhos do mesmo tipo. Por exemplo: PHP <?php header('WWW-AuthenticateNegotiate'); header('WWW-AuthenticateNTLM', false); ?> O segundo caso especial é o cabeçalho "Location:". Não somente envia o seu cabeçalho para o browser, mas também retorna código de situação REDIRECT (302) para o browser a menos que algum código de situação 3xx já tenha sido definido. PHP <?php header("Location//www.imasters.com.br"); ?> Scripts PHP normalmente geram conteúdo dinamico que não deva ser guardado em cache pelo browser do cliente ou qualquer cache de proxy entre o servidor e o browser do cliente. Muitos proxies e clientes são forçados a desabilitar o cache usando: PHP <?php header("ExpiresMon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified" . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Controlno-store, no-cache, must-revalidate"); header("Cache-Controlpost-check=0, pre-check=0", false); header("Pragmano-cache"); ?> Você pode pensar que suas páginas não são colocadas em cache mesmo que você não envie todos os cabeçalhos acima. Existem várias opções que os usuários podem definir em seus browser que mudam o funcionamento do cache. Enviando os cabeçalhos acima, você irá sobrescrever qualquer definição que faça seu script ser colocado em cache. Adicionalmente as configurações, session_cache_limiter() e session.cache_limiter podem ser usadas para gerar automaticamente os cabeçalhos corretos quando estão sendo usadas sessões. Lembre-se que header() deve ser utilizada antes que qualquer saida seja enviada, seja pelo HTML, linhas ou espaços em branco em um arquivo, ou a partit do PHP. É um erro muito comum ler código com a função include(), ou require(), ou outra função que acesse arquivos, e ter espaços ou linhas em branco antes da função header(). O mesmo problema existe quando usar um arquivo PHP/HTML. PHP <html> <?php header('Location//www.example.com/'); ?> Nota: A partir do PHP 4, você pode usar o buffer de saída para contornar este problema, com a sobrecarga que toda a saída do browser será guardada em buffer no servidor até que voc^envie ele. Você poderá fazer isso usando ob_start() e ob_end_flush() no seu script ou definido a diretiva de configuração output_buffering no seu php.ini ou nos arquivos de configuração do servidor. Se você queira que seja perguntado ao usuário para salvar os dados que você esta enviando, como um arquivo PDF gerado, você pode usar o cabeçalho Content-Disposition para recomendar um nome de arquivo e forçar o browser a mostrar uma caixa salvar arquivo. PHP <?php // Nós estaremos enviando um PDF header('Content-typeapplication/pdf'); // Será chamado downloaded.pdf header('Content-Dispositionattachment; filename="downloaded.pdf"'); // A fonte do PDF é original. readfile('original.pdf'); ?> Compartilhar este post Link para o post Compartilhar em outros sites
tr374 0 Denunciar post Postado Março 21, 2005 Não entendi no exemplo:<?phpecho "Uma $fruta $cor"; // Uma maçãinclude 'vars.php';echo "Uma $fruta $cor"; // Uma maçã verde?> as respostas não deveria ser:// Uma // Uma maçã verdeno lugar de:// Uma maçã // Uma maçã verde Compartilhar este post Link para o post Compartilhar em outros sites
tr374 0 Denunciar post Postado Março 21, 2005 Mais uma dúvida:em array_diff$arr1 = array(5,32,56,); //defini um array$arr2 = array(3,32,56,); //defini outro array$arr3 = array_diff($arr1,$arr2) //diff arrayo que retornaria echo $arr3 ? (2)? (1)? (2,0,0)? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 21, 2005 tinha uns erros la que ja arrumei Citar $arr1 = array(5,32,56,); //defini um array$arr2 = array(3,32,56,); //defini outro array $arr3 = array_diff($arr1,$arr2);//Analisa as diferenças entre arrays print_r($arr3);//Array ( [0] => 5 ) Compartilhar este post Link para o post Compartilhar em outros sites
tr374 0 Denunciar post Postado Março 21, 2005 Grato. + uma vez. Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Vieira Pinho 0 Denunciar post Postado Março 22, 2005 Por favor, como fazer o meu php, trabalhar como módulo do apache, já tentei de tudo já tentei aqui, mas nada http://www.imasters.com.br/forum/index.php...=0entry321300 Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 22, 2005 http://www.imasters.com.br/forum/index.php...ndpost&p=325096 Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Vieira Pinho 0 Denunciar post Postado Março 23, 2005 Fabyoé possível fazer uma autenticação HTTP, sendo que o login e a senha ficam em um db mysql?se tem, poderia me indicar um tuto se conhecer?valeu Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 23, 2005 Esse exemplo que eu fiz é só pra você entender como funciona ele ta bem simples e eu nao gosto de abrir uma conexao com o banco e nao fechar ,mas depois você melhora ele e proteja todas as paginas fazendo uma pagina para ser incluida nas suas paginas eu montei uma classe de autenticacao muito segura mas usei o php 5 se precisar de mais alguma coisa posta ai PHP <?php $nome = ""; $senha = ""; $cn = mysql_connect("localhost"); mysql_select_db("banco"); if (!isset($_SERVER["PHP_AUTH_USER"]) || !isset($_SERVER["PHP_AUTH_PW"])){ header('WWW-Authenticate: Basic realm = "Acesso Restrito"'); header('HTTP/1.0 401 Unauthorized'); echo '<center><h1>Acesso Restrito</h1></center>'; exit; } else{ $nome = $_SERVER["PHP_AUTH_USER"]; $senha = $_SERVER["PHP_AUTH_PW"]; $re = mysql_query("SELECT count(*) as total FROM usuarios WHERE nome = '$nome' and senha = md5('$senha')"); $total = mysql_result($re, 0, "total"); if ($total == 0) { header('WWW-Authenticate: Basic realm = "Acesso Restrito"'); header('HTTP/1.0 401 Unauthorized'); echo '<center><h1>Acesso Restrito</h1></center>'; exit; } else{ header("Location: principal.php"); } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Vieira Pinho 0 Denunciar post Postado Março 24, 2005 funciono legalmas uma dúvidacomo bloquear as outras páginas, e redircionar para a página do login, caso não esteje logado?com autenticação HTTP não faço a mínima idéiavaleu Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 24, 2005 você pode usar session e depois que o cara passou pelo login e você redireciona para pagina principal você cria uma sessao e só testar em cada pagina se a sessao existe e se existe você verifica de novo o nome e senha do banco se tiver errado ou nao tiver a sessao você redirecionda pra pagina de login Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Vieira Pinho 0 Denunciar post Postado Março 24, 2005 Fabyo disse: você pode usar session e depois que o cara passou pelo login e você redireciona para pagina principal você cria uma sessao e só testar em cada pagina se a sessao existe e se existe você verifica de novo o nome e senha do banco se tiver errado ou nao tiver a sessao você redirecionda pra pagina de login <{POST_SNAPBACK}> eu fiz da seguinte maneira: acrescentei isto ao seu código: PHP ... if ($total == 0) { header('WWW-Authenticate: Basic realm="PlugNews - Gerenciador de Newsletter"'); header('HTTP/1.0 401 Unauthorized'); echo '<center><h1>Acesso Restrito</h1></center>'; exit; } else { // aqui alterai session_start(); $GLOBALS['Leandro'] = $nome; session_register("Leandro"); header("Location:inicio.php"); ... então nas páginas eu verifico se existe a sessão se não, redireciona para a página que está o código acima, eu chamei de a página a cima de "index.php" verifica se existe a sessão: PHP <?php session_start(); if (!(isset($_SESSION["Leandro"]))) { header ("Location: index.php"); exit(); } ?> ta funcionando, mas o problema está no logout. Estou fazendo assim, para fazer o logout: PHP <?php session_start(); session_unregister('Leandro'); echo "<script type=\"text/javascript\">"; echo "alert(\"A sessão foi encerrada com êxito.\");"; echo "window.location.href=\"index.php\""; echo "</script>"; ?> Ou seja mostra a mensagem "A sessão foi encerrada com êxito". mas ao invés de aparecer novamente a tela de login (pois matou a sessão) e ele está redirecionando para a página "inicio.php", ou seja a página que vai quando você faz o login. o que estou fazendo de errado? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 24, 2005 nao use session_register só use $_SESSION essas variaveis estao obsoletas e fora de uso ,por segurança o register_globals esta desativado por padrao entao nao ira funcionar essas variaveis use a $_SESSION Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Vieira Pinho 0 Denunciar post Postado Março 24, 2005 Fabyo disse: nao use session_register só use $_SESSION essas variaveis estao obsoletas e fora de uso ,por segurança o register_globals esta desativado por padrao entao nao ira funcionar essas variaveis use a $_SESSION <{POST_SNAPBACK}> alterei ficando assim: PHP ... } else { session_start(); $_SESSION["Leandro"] = $nome; header("Location: inicio.php"); ... mas ao o que tenho de alterar no logou abaixo: PHP <?php session_start(); session_unregister('Leandro'); echo "<script type=\"text/javascript\">"; echo "alert(\"A sessão foi encerrada com êxito.\");"; echo "window.location.href=\"index.php\""; echo "</script>"; ?> pois quando clico no link, para chamar a página logou.php que tem o código acima, a msg aparece, mas mas volta para a página inicio.php e terei que ser index.php valeu Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 25, 2005 faz assim: Citar session_start();$_SESSION = array(); session_destroy(); header("Location: index.php"); Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Vieira Pinho 0 Denunciar post Postado Março 25, 2005 não estou entendo,não está funcionando.acho que vou deixar seu o logout.valeu Fabyo. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 25, 2005 Cara nao desiste nao posta seu script no forum de php que a gente vai arrumando pra você ate ficar perfeito Compartilhar este post Link para o post Compartilhar em outros sites
nuboza 0 Denunciar post Postado Março 30, 2005 Lendro tenta assim: logout.php PHP [*]<? [*]//INICIALIZA A SESSÃO [*]session_start(); [*] [*]//DESTRÓI AS VARIÁVEIS [*]unset($_SESSION["id"]); [*]unset($_SESSION["nome"]); [*] [*]//REDIRECIONA PARA A TELA DE LOGIN [*]Header("Location: index.php"); [*]?> agora pra verifica se o cara é registrado... poe isso no inicio de cada pagina protegida: verifica.php PHP [*]<? [*]//INICIALIZA A SESSÃO [*]session_start(); [*] [*]//SE NÃO TIVER VARIÁVEIS REGISTRADAS [*]//RETORNA PARA A TELA DE LOGIN [*]if( (!isset($_SESSION["id"])) AND (!isset($_SESSION["nome"])) ) [*] Header("Location: index.php"); [*]?> [*] Bem é isso, espero que essa seja sua duvida! aqui esta funcionando legal! Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Vieira Pinho 0 Denunciar post Postado Março 30, 2005 Bom vou esplicar direitinho para ser entendido melhor. Bom, para o arquivo index.php é onde se faz o login com Autenticação HTTP e o script é esse: PHP [*] [*]<?php require_once('Connections/Conn.php'); ?> [*]<?php [*]$nome = ""; [*]$senha = ""; [*]if (!isset($_SERVER["PHP_AUTH_USER"]) || !isset($_SERVER["PHP_AUTH_PW"])){ [*]header('WWW-Authenticate: Basic realm="Restrito"'); [*]header('HTTP/1.0 401 Unauthorized'); [*]echo '<center><h1>Acesso Restrito</h1></center>'; [*]exit; [*]} else { [*]$nome = $_SERVER["PHP_AUTH_USER"]; [*]$senha = $_SERVER["PHP_AUTH_PW"]; [*]mysql_select_db($database_Conn, $Conn); [*]$consulta = mysql_query("SELECT count(*) as total FROM config WHERE config_login = '$nome' AND config_senha = md5('$senha')"); [*]$total = mysql_result($consulta,0,"total"); [*]if ($total == 0) { [*]header('WWW-Authenticate: Basic realm="Restrito"'); [*]header('HTTP/1.0 401 Unauthorized'); [*]echo '<center><h1>Acesso Restrito</h1></center>'; [*]exit; [*]} else { [*]session_start(); [*]$_SESSION["Leandro"] = $nome; [*]header("Location: inicio.php"); [*]} [*]} [*]?> [*] Ou seja este script está criando uma sessão e enviado após a sessão ser criada para a página inicio.php até aqui beleza. Então para verificar se estar logado ou não estou fazendo assim; PHP [*] [*]<?php [*]session_start(); [*]if (!(isset($_SESSION["Leandro"]))) { [*]header ("Location: index.php"); [*]exit(); [*]} [*]?> [*] Ou seja, se não estiver logado, volta para a págian index.php onde se faz o login. Bom, assim funfa beleza, verifica legal, mas no logout.... para fazer o logou estou fazendo assim, como passou o nuboza: PHP [*] [*]<? [*] //INICIALIZA A SESSÃO [*] session_start(); [*] //DESTRÓI AS VARIÁVEIS [*] unset($_SESSION["Leandro"]); [*] //REDIRECIONA PARA A TELA DE LOGIN [*] Header("Location: index.php"); [*] ?> [*] Ou seja, está destruindo a sessão chamada Leandro, que foi criada na página index.php. e redirecionando para a ela. Então, isto não ocorre, ao invés de ir para a página index.php, está indo para a página inicio.php, como se a sessão estivesse sendo criada de novo. ??? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 30, 2005 faz assim: PHP unset($_SERVER["PHP_AUTH_USER"]); unset($_SERVER["PHP_AUTH_PW"]); session_start(); $_SESSION = array(); session_destroy(); Compartilhar este post Link para o post Compartilhar em outros sites