Uma simples function para controle de tempo de session


// Inicia a session
session_start();

//imprime as sessions ativa no navegador
echo'<pre>';print_r($_SESSION);echo'</pre>';

/** Função de tempo das sessoes
********************************/
function session($timeout){
	// Verifique se o campo de tempo limite existe.
	if(isset($_SESSION['timeout'])) {
		// Verifica se o número de segundos desde a última visita é maior que o período de tempo limite.
		$duration = time() - (int)$_SESSION['timeout'];
		if($duration &gt; $timeout) {
			// Destri a session e reinicia
			session_destroy();
			session_start();
		}
	}
	 
	// Atualize o campo de tempo limite com a hora atual.
	return $_SESSION['timeout'] = time();	
	
}
// inicia a function com o número de segundos até o tempo limite.
session($timeout = 10); 


Anúncios

Trabalhando com sessão de usuário

Pequeno snippet feito em PHP para facilitar o trabalho com sessão de usuário, este script gera uma session com índices contendo tempo e informações do usuário ao logar no site.


//PREVENÇÂO DE CACHE
ob_start();
 
// INICIA A SESSAO
session_start();

// PREVINE ERRO DE ACENTUAÇÂO
echo'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';

// VERIFICA SE OS DADOS DO FORMULARIO EXISTE
if(isset($_POST['sendform'])){
	
	// DEFINE OS INDICE DA SESSÂO 'user'
	$ses['id']		= session_id(); // id da sessão
	$ses['on']		= time(); // pega a hora exata
	$ses['end']		= time() + 30; // adiciona tempo a sessão
	$ses['ip']		= $_SERVER["REMOTE_ADDR"]; // pega ip do usuario
	$ses['nome']	= $_POST['nome'];// nome do usuario
	
	// CRIA A SESSION['user'] E REDIRECIONA
	$_SESSION['user'] = $ses;
	header('Location:'.$_SERVER['PHP_SELF']);
}

// MATA A SESSÂO ATRAVEZ DO LINK
if(!empty($_GET['acao']) && $_GET['acao'] == 'sair'){
	unset($_SESSION['user']); // mata a sessão
	header('Location:'.$_SERVER['PHP_SELF']);
}

// CASO A SESSÂO NÂO EXISTA MOSTRA O FORMULARIO
if(empty($_SESSION['user'])){
	echo'
	<form name="form" action="" method="post">
		Nome:
		<input type="text" name="nome">
		<input type="submit" value="iniciar sessão" name="sendform">
	</form>	
	';
}else{
	
	$tempoLog = $_SESSION['user']['on']; // pega a hora em queo usuario logou
	$tempoAgg = time();// pega o tempo real
	$tempoOnn = $tempoAgg - $tempoLog;// tempo em que o usuario esta logado
	$tempoFim = $_SESSION['user']['end'] - $tempoAgg;// tempo para expirar a sessão
	
	// CONTA SEGUNDOS
	echo'Olá '.$_SESSION['user']['nome'].' você esta logado à '.$tempoOnn.' segundos e seu ip é: '.$_SESSION['user']['ip'].'<br />';
	
	// CONTA MINUTOS USANDO 'round();'
	//echo'Olá '.$_SESSION['user']['nome'].' você esta logado à '.round($tempoOnn/60).' minutos';
	
	
	if($tempoFim <= 0){
		unset($_SESSION['user']);
		header('Refresh: 5;url='.$_SERVER['PHP_SELF']);
		echo'Sua sessao expirou, você sera redirecionado em 5 segundos!';
	}else{
		$_SESSION['user']['end'] = time() + 30;
		//echo'sua sessão expira em '.round($tempoFim/60).' minutos';
		echo'sua sessão expira em '.$tempoFim.' segundos';
		echo'<br /><hr />';
		echo'<a href="?acao=sair">Sair</a>';
	}
	
}

// DEBUG
echo '<hr /><pre>'; print_r($_SESSION); echo'</pre>';
ob_end_flush();


Extensões PDO

Extensão para trabalhar com manipulação de dados no MySQL:


	/*
	*	Conexão com servidor
	*/
	try{
		$con = new PDO("mysql:host=localhost;dbname=exercicio", "root", "");
		$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	}catch(PDOException $e){
		// Caso ocorra uma exceção, exibe na tela
		echo utf8_encode ($e->getMessage());
		$con = null;// fecho a conexão
	}



	/*
	*	Insert 
	*/
	$stmt = $con->prepare("INSERT INTO tabela(nome, email) VALUES(?, ?)");
	$stmt->bindParam(1,$user_nome);
	$stmt->bindParam(2,$user_email);
	$stmt->execute();



	/*
	*	Delete 
	*/
	$stmt = $con->prepare("DELETE FROM tabela WHERE idpessoa = ?");
	$stmt->bindParam(1, $idpessoa);
	$stmt->execute();


	/*
	*	Select 
	*/
	$tabela= $con->prepare("SELECT * FROM tabela");
	$tabela->execute();
	$linha = $tabela->fetchall(PDO::FETCH_OBJ);
	foreach($linha as $listar){
		echo $listar->nome .' - '. $listar->email .' - '. $listar->id.'<br />';
		
	}


	/*
	*	Update
	*/
	$stmt =$PDO->prepare("UPDATE tabela SET nome=:nome, email=:email WHERE id=:id");
	$stmt ->bindValue(":id", $id);
	$stmt ->bindValue(":nome", $nome);
	$stmt ->bindValue(":email", $email);
	$stmt ->execute();



Como utilizar a biblioteca JQuery do Wordpress

Definitivamente usar aplicações internamente ou externamente na página functions.php juntamente com a ativação da biblioteca JQuery do WordPress :

<php 
/* Carrega as páginas customizadas de CSS e JS */ 
function registra_scripts() { 
/* CSS */ 
wp_enqueue_style( 'bootstrapstyle', get_template_directory_uri() . '/css/bootstrap.min.css' ); 
wp_enqueue_style( 'bootstrapthemestyle', get_template_directory_uri() . '/css/bootstrap-theme.min.css' ); 
/* JS */ 
wp_enqueue_script( 'bootstrap-script', get_template_directory_uri() . '/js/bootstrap.min.js', array(), true ); 
wp_enqueue_script( 'main-script', get_stylesheet_directory_uri() . '/js/main.js', array(), true ); 
} 
add_action('wp_enqueue_scripts', 'registra_scripts'); 
?> 

E na página heard.php insira dentro da tag <head> o seguinte código!

<?php wp_enqueue_script("jquery"); // ?>
<?php wp_head();// ?> 

Para que tudo funcione corretamente ao utilizar a biblioteca JQuery do WordPress o correto é linka-las somente através da página functions.php até mesmo com os custom scripts caso utilize.

Usando a classe wpdb para ordenar valoes na tabela wp_userdata

Ordenar usuário e valor em uma consulta feita na tabela Wp_usermeta utilizando uma query e um LEFT JOIN.

<?php
   $sql_query =<<<SQL
   SELECT
     {$wpdb->users}.user_email,
     {$wpdb->users}.user_nicename,
     {$wpdb->usermeta}.meta_value
   FROM
     {$wpdb->users}
     LEFT JOIN {$wpdb->usermeta} ON {$wpdb->users}.ID = {$wpdb->usermeta}.user_id
   WHERE 1=1
     AND {$wpdb->users}.user_status = '0'
     AND {$wpdb->usermeta}.meta_key = 'ma_deposito'
    /* AND {$wpdb->usermeta}.meta_value = '50'// busca meta_value pelo valor*/ 
   SQL;
     $users = $wpdb->get_results($sql_query);
   	//header('Content-type:text/plain');
   	// print_r($usersemails);
   	foreach ( $users as $indce => $valor ) :
   		echo 'Apelido: '. $valor->user_nicename . ' - E-mail: '. $valor->user_email. ' - Valor: '. $valor->meta_value.'<br />';
   	endforeach;
   ?>

#wp_usermeta

Adicionando uma Coluna em uma tabela no wordpress

Pequeno script no qual adiciona uma coluna em quaisquer tabela usada no WordPress.

// Pega a tabela wp_users
$minha_query= $wpdb->get_row("SELECT * FROM wp_users");

//Adicionar coluna se não estiver presente.
if(!isset($minha_query->user_fone)){ 
	
 // Sera adicionado a tabela wp_users a coluna user_fone
$wpdb->query("ALTER TABLE wp_users ADD user_fone INT(20) NOT NULL DEFAULT 0");
}

#wordpress

Consulta tabela wp-users e wp-usermeta

Código muito útil para consulta entre as tabelas wp-users e wp-usermeta sendo possível coletar dados de um campo personalizado.

<?php
$sql = "
	SELECT wusers.ID,
		wmeta.user_id, 
		wmeta.meta_key, 
		wmeta.meta_value
	FROM 
		$wpdb->users wusers
	INNER JOIN 
		$wpdb->usermeta wmeta
	ON 
		wusers.ID = wmeta.user_id
	WHERE 
		wmeta.meta_key = 'sua_meta_key'
	ORDER BY 
		wmeta.meta_value ASC
";

global $wpdb;
$users = $wpdb->get_results($sql);

foreach($users as $user){
  $mostrar_dados= get_userdata($user->ID);  
  echo $mostrar_dados->nickname . " : " $mostrar_dados->sua_meta_key."<br />";//
}
?>

#wordpress