Sessions criação e macetes
Na página index.php
Seria a principal onde coloco o form para o usuário entrar com o login.
No topo da página, na primeira linha mesmo. Coloco o seguinte comando:
Na página vai ter um formzinho básico escrito em html mesmo que vai mandar para a página redirect.php com duas variáveis... uma usuário e a outra a senha.
Chegando na redirect.php vou mostrar o codigo e comentá-lo
Seria a principal onde coloco o form para o usuário entrar com o login.
No topo da página, na primeira linha mesmo. Coloco o seguinte comando:
<?php session_start(); session_destroy(); // isso é para destruir qualquer session que esteja criada. Ex: se o usuario logou entrou // no sistema e apertou o botao voltar do browser até chegar na index.php, o que vai // acontecer, a session vai está criada, e seus dados fixados, se outro logar vai // conseguir passar para dentro do sistema mas vai estar com os dados do outro, isso // acontece que para trocar valor de uma session você tem que desregistrar (comando // session_unregister()) e registrar novamente. ?>
Na página vai ter um formzinho básico escrito em html mesmo que vai mandar para a página redirect.php com duas variáveis... uma usuário e a outra a senha.
Chegando na redirect.php vou mostrar o codigo e comentá-lo
<?php // Toda página q trabalhe com session é preciso do session_start no topo session_start(); // Percebem que já uso as variáveis com as novas atribuições $_POST $usuario = $_POST['usuario']; $senha = $_POST['senha']; // Conectando $conn = mysql_connect("endereço", "usuario", "senha"); mysql_select_db("academico",$conn); // Executando a query $sql = "SELECT * FROM docentes WHERE CODI_PRO='$usuario' and SENHA_PRO='$senha'"; $valores = mysql_query("$sql"); $valor = mysql_fetch_row($valores); $existe = mysql_num_rows($valores); mysql_close(); // Testando a senha. Se estiver OK vai ser resultado 1... if ($existe == '1') { //dando valor para as session. $matricula = $valor[0]; $nome = $valor[1]; // registrando a session session_register("matricula"); session_register("nome"); // tenho que redirecioná-la para outra página para poder usar a session... header("Location: princ.php"); } else { //login ou senha errada? Retorna pra index header("Location: index.php?erro=1"); } ?>
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/webplux/public_html/home.php:6) in /home/webplux/public_html/home.php on line 367
Queria saber o motivo desse erro. O session_start(); está no incício do código.
este é o código:
<?
session_start();
$login = $_SESSION['login'];
echo "Seja bem vindo(a), " . $login . "<br />";
?>
Ele executo o echo e mostra o $login mas da esse erro.
Agradeço!
Queria saber o motivo desse erro. O session_start(); está no incício do código.
este é o código:
<?
session_start();
$login = $_SESSION['login'];
echo "Seja bem vindo(a), " . $login . "<br />";
?>
Ele executo o echo e mostra o $login mas da esse erro.
Agradeço!
06/03/2006 2:56pm
(~19 anos atrás)
Parabéns por ensinar como trabalhar com session, para mim foi de grande utilidade, mto obrigado!!!
10/10/2005 6:43pm
(~19 anos atrás)
e tambem criei com sucesso o formulario para registro do usário numa tabela mysql. O problema agora ocorre com os comandos session_start(); e com header ('paginadestino.php'); não funciona. Na sessão ocorre erro de cookie e na header ocorre não foi possivel fazer a mudança para a página.
Alguém pode me ajudar para concluir mue script de login???
Alguém pode me ajudar para concluir mue script de login???
12/04/2005 10:05pm
(~19 anos atrás)
Acabo de fazer minha introdução a sessões e foi rapido e indolor (ao contrario dos outros códigos). Parabens, não tá perfeito mas tá ótimo pra botar sessão workando de cara num site.
Se puder colocar algo mais refinado e tão simples quanto, no futuro, nós newbas agradecemos.
Se puder colocar algo mais refinado e tão simples quanto, no futuro, nós newbas agradecemos.
11/07/2004 10:31pm
(~20 anos atrás)
Olá, sou novo,
Queria dizer que leio variossssss Artigos daqui. Acho que são otimos, me ajudam MUITO...
E queria ajudar.. Então lendo esse Artigo vi que faltou apenas uma coisa:
Logoff ! É isso mesmo, falou logoff, eu na hora que li pensei numa logica.. Ae voces modificam como quiserem:
logoff.php
<?
session_start();
$logoff = session_destroy();
if($logoff){
/* poe uma mensagem, ou redireciona para pagina apos o login ! */
}else{
/* retorna uma mensagem de erro, ou redireciona para 'index.php' */
}
?>
A logica seria essa
Nao testei, porem deve dar certo
Se errei me corrigam e me desculpa *sou novato em php*...
Abracos..
Queria dizer que leio variossssss Artigos daqui. Acho que são otimos, me ajudam MUITO...
E queria ajudar.. Então lendo esse Artigo vi que faltou apenas uma coisa:
Logoff ! É isso mesmo, falou logoff, eu na hora que li pensei numa logica.. Ae voces modificam como quiserem:
logoff.php
<?
session_start();
$logoff = session_destroy();
if($logoff){
/* poe uma mensagem, ou redireciona para pagina apos o login ! */
}else{
/* retorna uma mensagem de erro, ou redireciona para 'index.php' */
}
?>
A logica seria essa
Nao testei, porem deve dar certo
Se errei me corrigam e me desculpa *sou novato em php*...
Abracos..
19/05/2004 4:09pm
(~20 anos atrás)
Eu quero um sisteminha simples de login, que tenha usuario e senha.
Olha só minha duvida é o seguinte, Eu consigo fazer uma conexão com o banco de dados e entro painel.php, com o painel consigo acrecentar mais usuario e senha, mas tem um porém, quero agora criar usuarios que entram na sua propria pasta.
E não consigo fazer isso, se for possivel gostaria que voces me auxiliasse, somente nesta questão de redirecionar cada usuario para sua pasta(pagina).
Mais uma vez, Obrigado.
Os meus Arquivos São:
O index.php segue abaixo:
<?php
include('config.php');
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$acao = !empty($HTTP_POST_VARS['acao'])? $HTTP_POST_VARS['acao'] : $HTTP_GET_VARS['acao'];
if ($acao=='erro')
{
$con=mysql_pconnect($host,$user,$pass);
mysql_select_db($banco);
$sql = "SELECT * FROM $tabela WHERE login='".addslashes($HTTP_POST_VARS['login'])."' AND senha='".addslashes($HTTP_POST_VARS['senha'])."' LIMIT 0,1";
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
if($num_rows ==1)
{
$user_info = mysql_fetch_array($result);
$usr_login = $user_info['login'];
$usr_senha = $user_info['senha'];
$usr_autorizado = 1;
@mysql_free_result($result);
session_start("dglogin"); //Inicializa a sessão
//session_name();
session_destroy();
session_register('usr_login'); //Registra as variáveis na sessão
session_register('usr_senha'); //Registra as variáveis na sessão
session_register('usr_autorizado'); //Registra as variáveis na sessão
header("Location: $pagina"); //Redireciono para a página principal
exit;
}else{
$acao='error';
}
}
if ($acao=='error')
{
print"<br><br><center>Login ou senha não conferem</center>";
exit;
}
?><title>http://www.buske.com.br</title>
<body bgcolor="#FFFFFF" text="#000000" link="#000000" vlink="#000000" alink="#000000">
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=326>
<TBODY>
<TR>
<TD colSpan=3>
<DIV align=center><IMG border=0 height=90
src="imagem/topo.gif" useMap=#Map width=326></DIV>
</TD></TR>
<TR>
<TD bgColor=#166aee height=159 width=3><IMG height=1
src="imagem/borda.gif" width=3> </TD>
<TD align=middle bgColor=#d4d0c8 height=159 width=320>
<DIV align=center>
<FORM action=<?echo $PHP_SELF;?>?acao=erro method=post>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width="85%">
<TBODY>
<TR>
<TD colSpan=2 height=12><font face="Tahoma, Verdana, Arial" size="1">dg
login Versão 3.0 - Sistema de contas</font></TD>
</TR>
<TR>
<TD colSpan=2> </TD></TR>
<TR>
<TD height=34 width="33%"><FONT face="Tahoma, Verdana, Arial"
size=1>Nome de usuário: </FONT></TD>
<TD height=34 width="67%">
<INPUT name=login size=25>
</TD></TR>
<TR>
<TD height=34 width="33%"><FONT face="Tahoma, Verdana, Arial"
size=1>Senha:</FONT></TD>
<TD height=29 width="67%">
<INPUT name=senha size=15
type=password>
</TD></TR>
<TR>
<TD colSpan=2>
<div align="center"></div>
</TD></TR>
<TR>
<TD colSpan=2>
<DIV align=right>
<INPUT border=0 height=23
src="imagem/ok.gif" type=image width=75>
</DIV></TD></TR></TBODY></TABLE></FORM></DIV></TD>
<TD bgColor=#166aee height=159 width=3><IMG height=1
src="imagem/borda2.gif" width=3></TD>
</TR>
<TR>
<TD bgColor=#d4d0c8 colSpan=3 height=2 vAlign=top><IMG height=5
src="imagem/baixo.gif" width=326></TD>
</TR></TBODY></TABLE>
O config.php é este:
<?php
$host = 'localhost'; //host do mysql
$user = ''; //usuário mysql
$pass = ''; //senha mysql
$banco = 'teste1'; //nome do banco de dados
$tabela = 'tbl_usuarios'; //tabela onde que conteu os dados do usuario
$pagina = 'admin/painel.php'; //página principal da área restrita... para a qual o usuário será redirecionado ao se logar
?>
Muito Obrigado se alguem poder me ajudar.
Meu E-mail :
outlait@ig.com.br
Olha só minha duvida é o seguinte, Eu consigo fazer uma conexão com o banco de dados e entro painel.php, com o painel consigo acrecentar mais usuario e senha, mas tem um porém, quero agora criar usuarios que entram na sua propria pasta.
E não consigo fazer isso, se for possivel gostaria que voces me auxiliasse, somente nesta questão de redirecionar cada usuario para sua pasta(pagina).
Mais uma vez, Obrigado.
Os meus Arquivos São:
O index.php segue abaixo:
<?php
include('config.php');
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$acao = !empty($HTTP_POST_VARS['acao'])? $HTTP_POST_VARS['acao'] : $HTTP_GET_VARS['acao'];
if ($acao=='erro')
{
$con=mysql_pconnect($host,$user,$pass);
mysql_select_db($banco);
$sql = "SELECT * FROM $tabela WHERE login='".addslashes($HTTP_POST_VARS['login'])."' AND senha='".addslashes($HTTP_POST_VARS['senha'])."' LIMIT 0,1";
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
if($num_rows ==1)
{
$user_info = mysql_fetch_array($result);
$usr_login = $user_info['login'];
$usr_senha = $user_info['senha'];
$usr_autorizado = 1;
@mysql_free_result($result);
session_start("dglogin"); //Inicializa a sessão
//session_name();
session_destroy();
session_register('usr_login'); //Registra as variáveis na sessão
session_register('usr_senha'); //Registra as variáveis na sessão
session_register('usr_autorizado'); //Registra as variáveis na sessão
header("Location: $pagina"); //Redireciono para a página principal
exit;
}else{
$acao='error';
}
}
if ($acao=='error')
{
print"<br><br><center>Login ou senha não conferem</center>";
exit;
}
?><title>http://www.buske.com.br</title>
<body bgcolor="#FFFFFF" text="#000000" link="#000000" vlink="#000000" alink="#000000">
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=326>
<TBODY>
<TR>
<TD colSpan=3>
<DIV align=center><IMG border=0 height=90
src="imagem/topo.gif" useMap=#Map width=326></DIV>
</TD></TR>
<TR>
<TD bgColor=#166aee height=159 width=3><IMG height=1
src="imagem/borda.gif" width=3> </TD>
<TD align=middle bgColor=#d4d0c8 height=159 width=320>
<DIV align=center>
<FORM action=<?echo $PHP_SELF;?>?acao=erro method=post>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width="85%">
<TBODY>
<TR>
<TD colSpan=2 height=12><font face="Tahoma, Verdana, Arial" size="1">dg
login Versão 3.0 - Sistema de contas</font></TD>
</TR>
<TR>
<TD colSpan=2> </TD></TR>
<TR>
<TD height=34 width="33%"><FONT face="Tahoma, Verdana, Arial"
size=1>Nome de usuário: </FONT></TD>
<TD height=34 width="67%">
<INPUT name=login size=25>
</TD></TR>
<TR>
<TD height=34 width="33%"><FONT face="Tahoma, Verdana, Arial"
size=1>Senha:</FONT></TD>
<TD height=29 width="67%">
<INPUT name=senha size=15
type=password>
</TD></TR>
<TR>
<TD colSpan=2>
<div align="center"></div>
</TD></TR>
<TR>
<TD colSpan=2>
<DIV align=right>
<INPUT border=0 height=23
src="imagem/ok.gif" type=image width=75>
</DIV></TD></TR></TBODY></TABLE></FORM></DIV></TD>
<TD bgColor=#166aee height=159 width=3><IMG height=1
src="imagem/borda2.gif" width=3></TD>
</TR>
<TR>
<TD bgColor=#d4d0c8 colSpan=3 height=2 vAlign=top><IMG height=5
src="imagem/baixo.gif" width=326></TD>
</TR></TBODY></TABLE>
O config.php é este:
<?php
$host = 'localhost'; //host do mysql
$user = ''; //usuário mysql
$pass = ''; //senha mysql
$banco = 'teste1'; //nome do banco de dados
$tabela = 'tbl_usuarios'; //tabela onde que conteu os dados do usuario
$pagina = 'admin/painel.php'; //página principal da área restrita... para a qual o usuário será redirecionado ao se logar
?>
Muito Obrigado se alguem poder me ajudar.
Meu E-mail :
outlait@ig.com.br
14/05/2004 10:42am
(~20 anos atrás)
Eu vejo que o pessoal se preocupa muito com o php.ini. Eu penso o seguinte. O que está no meu servidor tudo bem mas e o que vai estar la na internet??? Diante disso eu não me preocupo com o php.ini e procuro manter a programação de forma a usar as configurações padrão do php.ini pra não ter problemas na hora de publicar os sites. Eu também ja sofri paca com sessions, acostumado com a facilidade das sessions do asp eu quase desisti do php por várias vezes mas consegui resolver meio na porrada mas deu certo e a partir dai eu não mudo essa técnica mais que consiste em:
duas funcoes criadas num arquivo de include:
function mysession_init() {
session_start();
session_register('user_id');
session_register('bus_id');
session_register('secao');
session_register('secaonome');
}
function mysession_destroy() {
session_unregister('user_id');
session_unregister('bus_id');
session_unregister('secao');
session_unregister('secaonome');
$user_id = null;
$bus_id = null;
session_destroy();
}
qualquer página do site:
//inclui o arquivo com diversas funcoes uteis
mysession_init();
$_SESSION['secaonome'] = "/amigos";
e por ai vai.
duas funcoes criadas num arquivo de include:
function mysession_init() {
session_start();
session_register('user_id');
session_register('bus_id');
session_register('secao');
session_register('secaonome');
}
function mysession_destroy() {
session_unregister('user_id');
session_unregister('bus_id');
session_unregister('secao');
session_unregister('secaonome');
$user_id = null;
$bus_id = null;
session_destroy();
}
qualquer página do site:
//inclui o arquivo com diversas funcoes uteis
mysession_init();
$_SESSION['secaonome'] = "/amigos";
e por ai vai.
02/03/2004 10:50am
(~21 anos atrás)
olá Roberto gostei do artigo, me deu uma boa base sobre sessão, no entando, ainda não consigo imaginar como eu vou fazer um contador de cliques utilizando sessão. Eu não sei se é possivel gardão dados em vetor dentro de uma sessão e quero que seja somado 1 nas fotos onde o usuário clicou, mas um clique em cada uma das fotos só pode ser somado no MÁXIMO uma vez por sessão. Eu sei que isso é possível com sessão, mas não faço menor idéia de como... se alguém puder me dar alguma dica eu ficaria grato...
Obridago pela atenção.
Obridago pela atenção.
23/01/2004 1:51pm
(~21 anos atrás)
o meu post acima fala do erro
e ele acontece por causa do register_globals estar setado como off por este motivo é que o php tem problemas com session
depende da versao do PHP
as versoes atualmente 4.3.4 nao tem este problema
espero ter ajudado
e ele acontece por causa do register_globals estar setado como off por este motivo é que o php tem problemas com session
depende da versao do PHP
as versoes atualmente 4.3.4 nao tem este problema
espero ter ajudado
23/01/2004 1:34pm
(~21 anos atrás)
desculpe a demora, estava off da comunidade
[ ]'sss