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();


Anúncios

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

Pegando dados dos usuários

<ul>
<?php 
   // PEGA DADOS DA TABELA WP_USERS
	$usuarios = $wpdb->get_results("
		SELECT * 
		FROM $wpdb->users 
		ORDER BY ID 
		ASC LIMIT 5"
	);

	// Loop
	foreach ($usuarios as $mostra_usuarios) {
		echo '<li>'.$mostra_usuarios->ID.' - '.$mostra_usuarios->user_nicename.'</li>';
	}
?>
</ul>

Calculo em porcentagem utilizando PHP

Um pequeno script muito útil para ser utilizado em uma barra de progresso, estou utilizando este script juntamente com Bootstrap  em um de meus projetos.


<?php
$meta = 2000; // valor final da arrecadação
$doacao = $_POST['valor']; // valor do deposito

echo 'Nossa meta é de R$ '.$meta.' reais<br />';

if ($doacao > 0){
echo "Total: " . (($doacao / $meta) * 100) . "%" . " ";
}else{
echo '<div style="color:red;">Insira um valor</div>';
}

?>
<form action="" method="post">
<label>Valor deposito</label>
<input type="text" name="valor">
<input type="submit" name="enviar">
</form>

<?php
echo '<br />';
echo '<pre>';
//print_r($_POST);
echo '</pre>';
?>

#php