Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TheNight

Logout com php!

Recommended Posts

Galera é o seguinte sou novo aqui beleza?!

 

Meu problema é o seguinte, estou usando este código pra fazer os includes das páginas do conteúdo do site.

 <?php 
	foreach ($_REQUEST as $___opt => $___val) {
	$$___opt = $___val;
	}
	
	if(empty($pagina)) {
		include_once("includes/home.php");
	}elseif(substr($pagina, 0, 4)=='http' or substr($pagina, 0, 1)=="/" or substr($pagina, 0, 1)=="."){
		echo 'Não existe'; 
	}else {
		include("includes/$pagina.php");
	}
?>
Só que pra mim fazer logout esse comando não deixa por conta da url amigável ele reconhece que meu:

$_REQUEST['logout']
é uma url sendo que no meu link está assim:

<a href="?logout">Deslogar</a>
E o meu comando pra deslogar a conta está assim:

<?php
if(isset($_REQUEST['logout'])){
session_destroy();
unset($_SESSION['userdks']);
unset($_SESSION['passdks']);
header("Location: ?pagina=logar")
}
?>

 

Alguém me ajudaria a resolver isso? já pesquisei como que restringe certa url mas nada me ajudou! :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Url amigável passa longe com essas strings!!

 

E qual a necessidade de ativar a Register Globals?

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que eu estou tentando fazer de tudo pra tentar fazer ele pegar de tudo quanto é jeito, eu vi no youtube o cara fazendo e simplesmente copiei o jeito que ele fez mas alterando algumas coisas e como sou "iniciante" em php, estou usando tutoriais da internet, amigo você teria como me ajudar? Como posso fazer isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos a alguns pontos importantes:

 

1. Qual é a URL exata do logout? URL Amigável não deve usar valores da Query String (depois do "?"). Aliás, mesmo que usasse, sua URL está errada. A URL "site.com/?logout" vai gerar a variável $logout sem valor. Para seu script funcionar, a URL deveria ser "site.com/?pagina=logou", que criaria a variável $pagina com o valor "logout"

 

2. Existe um grande risco em usar $_REQUEST. Essa variável mistura dados de GET, POST e COOKIE. Ou seja, pode haver sobreposição de valores ou processamento de dados que não deveriam ocorrer.

 

3. Evite usar esse foreach, que simula a funcionalidade de register_globals. Você deve ter o controle sobre a criação das variáveis. Caso contrário, grande parte das falhas de segurança de register_globals voltarão a estar em seu script. Veja: http://php.net/manual/pt_BR/security.globals.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom o Beraldo já disse tudo!!!

Segue umas vídeos aula em Inglês, mas da para se ter a noção de como montar suas camadas em MVC e as Friendly Urls nos primeiros vídeos.

https://www.youtube.com/watch?v=Aw28-krO7ZM

Add:
http://blog.thiagobelem.net/aprendendo-urls-amigaveis/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado aos dois, vou dar uma olhada no vídeo, inglês é o bichoo :D kkk

Beraldo, se eu usar um switch seria melhor exemplo:
switch($pagina){
case 'home';
case 'contato';
case 'link3';
case 'link4';
break;
default:
 include("404.php");
break;
}


Eu estou dando uma olhada no site do http://php.net/ sobre foreach mas não estou compreendendo nada. Alias eu até entendi mais não muito, mas obrigado a vocês dois, mais tarde eu posto os resultados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não precisa mais do que isso para começara a brincar ;)

 

.htaccess

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

code

<?php 

$url = isset($_GET['url']) ? strip_tags($_GET['url']) : null;

if ( file_exists($url[0].'.php') ) {
    include_once $url[0].'.php';
} else {
    include_once 'default.php';
}

Não esqueça de habilitar mod_rewrite do apache

Leia também

http://php.net/manual/pt_BR/function.strip-tags.php
http://php.net/manual/pt_BR/function.filter-input.php
http://php.net/manual/pt_BR/function.addslashes.php

http://php.net/manual/pt_BR/book.pdo.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, salvou porem a home não fica fixa mais isso é o de menos, quem puder fechar o tópico :D

 

Só pra update o código que vc me passou me deu problema aqui, concertei usando:

$dir = 'includes/';
$url = isset($_GET['url']) ? strip_tags($_GET['url']) : 'home';
	
if(file_exists($dir.$url.'.php')) {
include_once $dir.$url.'.php';
} else {
include_once $dir.'404.php';
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.