Jump to content


jotafrank

Member Since 02/05/2008
Offline Last Active 02/04/2009, 01:42
-----

Posts I've Made

In Topic: Sistema De Login Usando Sessions E Mysql

30/03/2009, 11:55

E ae Chinello blz kra ta de parabéns com esse tuto file demais kra, eu segui os passos ta tudo funfando 99%, só te uma coisa q nao ta legal ou melhor nao exibe, qndo acesso a pagina ele nao mostra o nome do user na pagina <? print $_SESSION["nome"]; ?> gostaria de saber se vc tem uma solução pra esse caso vlw

Opa, cara, seguinte, esse código tá beeeem defasado, mas se ele tá te ajudando, então blz =)

Pra resolver o teu problema, substitua o comando:
session_register("nome");
por:
$_SESSION['nome'] = $_POST['nome'];

Se continuar a não funcionar, verifique o conteúdo da variável $_POST['nome'] ok?



Olá Chinello rapá se está defasado nao sei kra se tiver ou outro tuto file manda ae pra nois então. Mas aqui funciou agora o eskema ta funfando filé d+ tudo 110% vlw vc é o kra, podia colocar um eskema que upload de arquivo tb seria bacana de fotos, arquivos psd, ai, indd, cdr, pdf etc

In Topic: Sistema De Login Usando Sessions E Mysql

28/03/2009, 14:22

Bom pessoal..

Estava precisando de um sistema de login, e como naum haviam sistemas bons e confiáveis de login usando MySQL na Net, eu resolví estudar um pouco e fazer o meu próprio..

Ficou bom, e de acordo com os meus conhecimentos, sem falhas de segurança..

Bom vamos lá, execute isso no seu banco de dados MySQL:

CREATE TABLE `Sis_login` (
  `id` int(3) NOT NULL auto_increment,
  `login` varchar(8) default NULL,
  `senha` varchar(8) default NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
Depois faça a página: login.php
<!--php1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>PHP </td></tr><tr><td id='CODE'><!--ephp1--><font color="#000000"><font color="#0000BB"><?
session_name</font><font color="#007700">(</font><font color="#DD0000">"MeuLogin"</font><font color="#007700">);
</font><font color="#0000BB">session_start</font><font color="#007700">();
</font><font color="#0000BB">session_destroy</font><font color="#007700">();

if(</font><font color="#0000BB">$_GET</font><font color="#007700">[</font><font color="#DD0000">'login'</font><font color="#007700">] == </font><font color="#DD0000">"falhou"</font><font color="#007700">) {
</font><font color="#0000BB">    </font><font color="#007700">print </font><font color="#0000BB">$_GET</font><font color="#007700">[</font><font color="#DD0000">'causa'</font><font color="#007700">];
}
</font><font color="#0000BB">?>
</font><form name="form1" method="post" action="loga.php?acao=logar">
Login: <input type="text" name="nome"><BR>
Senha: <input type="password" name="pwd"><BR>
<input type="submit">
</form></font><!--php2--></td></tr></table><div class='postcolor'><!--ephp2-->
Depois a página: loga.php
<!--php1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>PHP </td></tr><tr><td id='CODE'><!--ephp1--><font color="#000000"><font color="#0000BB"><?
session_name</font><font color="#007700">(</font><font color="#DD0000">"MeuLogin"</font><font color="#007700">);
</font><font color="#0000BB">session_start</font><font color="#007700">();

if(</font><font color="#0000BB">$_GET</font><font color="#007700">[</font><font color="#DD0000">'acao'</font><font color="#007700">] == </font><font color="#DD0000">"logar"</font><font color="#007700">) {
</font><font color="#0000BB">    $conn </font><font color="#007700">= </font><font color="#0000BB">mysql_connect</font><font color="#007700">(</font><font color="#DD0000">"localhost"</font><font color="#007700">,</font><font color="#DD0000">"user"</font><font color="#007700">,</font><font color="#DD0000">"senha"</font><font color="#007700">); </font><font color="#FF8000">//configure os dados do seu MySQL
</font><font color="#0000BB">    $banco </font><font color="#007700">= </font><font color="#0000BB">mysql_select_db</font><font color="#007700">(</font><font color="#DD0000">"SEU_BANCO"</font><font color="#007700">); </font><font color="#FF8000">//coloque o nome do seu banco de dados
</font><font color="#0000BB">   
    $nome </font><font color="#007700">= </font><font color="#0000BB">$_POST</font><font color="#007700">[</font><font color="#DD0000">'nome'</font><font color="#007700">];
</font><font color="#0000BB">    $q_user </font><font color="#007700">= </font><font color="#0000BB">mysql_query</font><font color="#007700">(</font><font color="#DD0000">"SELECT * FROM Sis_login WHERE login='$nome'"</font><font color="#007700">);

</font><font color="#0000BB">    </font><font color="#007700">if(</font><font color="#0000BB">mysql_num_rows</font><font color="#007700">(</font><font color="#0000BB">$q_user</font><font color="#007700">) == </font><font color="#0000BB">1</font><font color="#007700">) {
</font><font color="#0000BB">   
        $query </font><font color="#007700">= </font><font color="#0000BB">mysql_query</font><font color="#007700">(</font><font color="#DD0000">"SELECT * FROM Sis_login WHERE login='$nome'"</font><font color="#007700">);
</font><font color="#0000BB">        $dados </font><font color="#007700">= </font><font color="#0000BB">mysql_fetch_array</font><font color="#007700">(</font><font color="#0000BB">$query</font><font color="#007700">);
</font><font color="#0000BB">        </font><font color="#007700">if(</font><font color="#0000BB">$_POST</font><font color="#007700">[</font><font color="#DD0000">'pwd'</font><font color="#007700">] == </font><font color="#0000BB">$dados</font><font color="#007700">[</font><font color="#DD0000">'senha'</font><font color="#007700">]) {
</font><font color="#0000BB">            session_register</font><font color="#007700">(</font><font color="#DD0000">"nome"</font><font color="#007700">);
</font><font color="#0000BB">            header</font><font color="#007700">(</font><font color="#DD0000">"Location: page.php"</font><font color="#007700">);
</font><font color="#0000BB">            </font><font color="#007700">exit;
</font><font color="#0000BB">        </font><font color="#007700">} else {
</font><font color="#0000BB">            header</font><font color="#007700">(</font><font color="#DD0000">"Location: login.php?login=falhou&causa="</font><font color="#007700">.</font><font color="#0000BB">urlencode</font><font color="#007700">(</font><font color="#DD0000">'Senha Errada'</font><font color="#007700">));
</font><font color="#0000BB">            </font><font color="#007700">exit;
</font><font color="#0000BB">        </font><font color="#007700">}
</font><font color="#0000BB">    </font><font color="#007700">} else {
</font><font color="#0000BB">        header</font><font color="#007700">(</font><font color="#DD0000">"Location: login.php?login=falhou&causa="</font><font color="#007700">.</font><font color="#0000BB">urlencode</font><font color="#007700">(</font><font color="#DD0000">'User Inválido'</font><font color="#007700">));
</font><font color="#0000BB">        </font><font color="#007700">exit;
</font><font color="#0000BB">    </font><font color="#007700">}
}

</font><font color="#FF8000">//agora a parte que verifica se o login já foi feito
</font><font color="#007700">if(</font><font color="#0000BB">session_is_registered</font><font color="#007700">(</font><font color="#DD0000">"nome"</font><font color="#007700">) == </font><font color="#0000BB">false</font><font color="#007700">) {
</font><font color="#0000BB">    header</font><font color="#007700">(</font><font color="#DD0000">"Location: login.php"</font><font color="#007700">);
}
</font><font color="#0000BB">?></font></font><!--php2--></td></tr></table><div class='postcolor'><!--ephp2-->
Pronto, o principal já tá feito..

Bom pessoal, como pedido, eu to acrescentando no script, uma página para acrescentar usuários, creio q isso facilita aos q ainda não tem intimidade com a interface do MySQL..

Vamos lá, crie uma página com um nome qualquer, exemplo: new_users.php, e coloque esse código nela:
<!--php1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>PHP </td></tr><tr><td id='CODE'><!--ephp1--><font color="#000000">
<font color="#0000BB"><?
</font><font color="#007700">if(</font><font color="#0000BB">$_GET</font><font color="#007700">[</font><font color="#DD0000">'act'</font><font color="#007700">]==</font><font color="#DD0000">"gravar"</font><font color="#007700">) {
</font><font color="#0000BB">  $conn </font><font color="#007700">= </font><font color="#0000BB">mysql_connect</font><font color="#007700">(</font><font color="#DD0000">"localhost"</font><font color="#007700">,</font><font color="#DD0000">"user"</font><font color="#007700">,</font><font color="#DD0000">"senha"</font><font color="#007700">);
</font><font color="#0000BB">  $banco </font><font color="#007700">= </font><font color="#0000BB">mysql_select_db</font><font color="#007700">(</font><font color="#DD0000">"SEU_BANCO"</font><font color="#007700">);

</font><font color="#0000BB">  mysql_query</font><font color="#007700">(</font><font color="#DD0000">"INSERT INTO Sis_login (id, login, senha)
  VALUES (NULL, '</font><font color="#007700">{</font><font color="#DD0000">$_POST</font><font color="#007700">[</font><font color="#DD0000">'nuser'</font><font color="#007700">]}</font><font color="#DD0000">', '</font><font color="#007700">{</font><font color="#DD0000">$_POST</font><font color="#007700">[</font><font color="#DD0000">'senha'</font><font color="#007700">]}</font><font color="#DD0000">')"</font><font color="#007700">);

</font><font color="#0000BB">  </font><font color="#007700">print </font><font color="#DD0000">"<center>Usuário criado com sucesso!</center>"</font><font color="#007700">;
} else {
</font><font color="#0000BB">?>
</font><form name="newuser" method="post" action="?act=gravar">
User: <input type="text" name="nuser" maxlength=8><BR>
Senha: <input type="password" name="senha" maxlength=8><BR><BR>
<input type="submit" value="Enviar!">
</form>
<font color="#0000BB"><?
</font><font color="#007700">}
</font><font color="#0000BB">?></font></font><!--php2--></td></tr></table><div class='postcolor'><!--ephp2-->
As páginas seguintes são só um complemento para mostrar o funcionamento do script:

page.php
<!--php1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>PHP </td></tr><tr><td id='CODE'><!--ephp1--><font color="#000000"><font color="#0000BB"><?
</font><font color="#007700">require(</font><font color="#DD0000">"loga.php"</font><font color="#007700">);
</font><font color="#0000BB">?>
</font>Olá <B><font color="#0000BB"><? </font><font color="#007700">print </font><font color="#0000BB">$_SESSION</font><font color="#007700">[</font><font color="#DD0000">"nome"</font><font color="#007700">]; </font><font color="#0000BB">?></font></B>,<BR>
Aqui vem qualquer coisa, inclusive um link para outras páginas.<BR><BR>
<a href="page2.php">Link</a></font><!--php2--></td></tr></table><div class='postcolor'><!--ephp2-->
page2.php
<!--php1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>PHP </td></tr><tr><td id='CODE'><!--ephp1--><font color="#000000"><font color="#0000BB"><?
</font><font color="#007700">require(</font><font color="#DD0000">"loga.php"</font><font color="#007700">);
</font><font color="#0000BB">?>
</font>Olá <B><font color="#0000BB"><? </font><font color="#007700">print </font><font color="#0000BB">$_SESSION</font><font color="#007700">[</font><font color="#DD0000">"nome"</font><font color="#007700">]; </font><font color="#0000BB">?></font></B>,<BR>
Aqui tb diz que está logado direitinho</font><!--php2--></td></tr></table><div class='postcolor'><!--ephp2-->
Como visto acima, para restringir o acesso às páginas, é só vc acrescentar isso nas primeiras linhas da page:
<!--php1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>PHP </td></tr><tr><td id='CODE'><!--ephp1--><font color="#000000"><font color="#0000BB"><?
</font><font color="#007700">require(</font><font color="#DD0000">"loga.php"</font><font color="#007700">);
</font><font color="#0000BB">?></font></font><!--php2--></td></tr></table><div class='postcolor'><!--ephp2-->
E já era, todas as páginas que estiverem isso estarão protegidas.. Caso o login naum tenha sido feito, elas redirecionarão para a página que se faz o login..

Bom espero que tenham gostado, e que seja de bom proveito a todos.. ;)

Ps.: Testem esse script de preferência num servidor Linux, pois aqui mesmo no meu PC rodando Win, ele naum funfa.. ;)

Fui.. :P


E ae Chinello blz kra ta de parabéns com esse tuto file demais kra, eu segui os passos ta tudo funfando 99%, só te uma coisa q nao ta legal ou melhor nao exibe, qndo acesso a pagina ele nao mostra o nome do user na pagina <? print $_SESSION["nome"]; ?> gostaria de saber se vc tem uma solução pra esse caso vlw

IPB Skin By Virteq