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.

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

Exibindo data por extenso

<?php 
/*
*	Exibindo data por extenso 
*/

$nome_mes = array( 
	1=>"1Janeiro",
	2=>"Fevereiro",
	3=>"Marco",
	4=>"Abril",
	5=>"Maio",
	6=>"Junho",
	7=>"Julho",
	8=>"Agosto",
	9=>"Setembro",
	10=>"Outubro",
	11=>"Novembro",
	12=>"Dezembro"
);

$nome_dia = array(
	1=>"Segunda Feira",
	2=>"Terca Feira",
	3=>"Quarta Feira",
	4=>"Quinta Feira",
	5=>"Sexta Feira",
	6=>"Sabado",
	7=>"Domingo"
);

$data = getdate();
$dia = $data['mday'];
$dia_semana = $data['wday'];
$mes = $data['mon'];
$ano = $data['year'];
$mesnome = $nome_mes[$mes];
$dianome = $nome_dia[$dia_semana];
$hora_minuto = date('H:i');

echo"Hoje $dianome, $dia de $mesnome de $ano, As $hora_minuto ";

?>

#exibindo