Jump to content


Photo

As Aventuras De Um Iniciante Em Php


  • Faça o login para participar
13 replies to this topic

#1 fabianowest

fabianowest

    Novato no fórum

  • Usuários
  • 21 posts
  • Sexo:Não informado

Posted 30/07/2008, 17:44

Salve pessoas !!

tenho me virado bem em php, porém estou pesquisando um assunto agora que tá mais dificil, por isso espero poder contar com o auxílio dos amigos!

tenho uma pagina em php, onde quero adicionar algumas notícias, porem quero fazer isso atravéz de um "/admin" onde vou acessar por um login e senha, e quando adicionado o texto dentro do "admin" esse texto irá aparecer no site.

tem como resumidamente alguém postar os passos de devo fazer pra conseguir isso, sei que é complexo, mas apenas uma explicação resumida do que será preciso, porque aí posso ir atráz e fazer ! (assim espero)

agradeço desde já

#2 Diego Viana

Diego Viana

    Normal

  • Usuários
  • 84 posts
  • Sexo:Masculino
  • Localidade:Ourinhos-SP

Posted 30/07/2008, 20:27

Kra aconselho vc a estudar sobre sessões em php, para criar áreas restritas, depois procure na net um script de login e adapte para o seu caso.

depois vc cria um esquema de cadastro de notícia, com título, resumo, autor, categoria, sei lá, da forma que for melhor pra vc.

Cadastrando as notícias já era, vc pode exibi-las onde vc quizer, na maneira como quizer.

Tem muita coisa na net já, mais se o seu interesse é aprender mais sobre o php aconselho vc mesmo fazer, pois não é complexo.

Espero ter ajudado, sei que isso é o básico do básico, mais são algumas dicas de como começar...rsrs

Boa Sorte...

#3 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 31/07/2008, 07:54

Olá Fabiano, seja bem vindo ao Fórum!

Então, irei passar resumidamente como funciona um sistema de login.

Sistema de login serve para restringir acessos em determinadas páginas.

1 passo:

Em um sistema de login, precisamos de algum lugar que guarde as informações de acesso, basicamente login e senha.
Já que está trabalhando com PHP, aconselho usar o MySQL, um banco rasoalvemente bom, e fácil de lidar.


2 passo:

Quando falamos de login, temos que pensar que, quando o usuário logar na página, o sistema precisará identificar que ele está logado, e mostrar as informações. Para isso, temos as sessions() e os cookies().
É bem fácil lidar com eles.
Na sua ocasião, aconselho o uso de sessions.

3 passo:

Para guardar a informação de que o usuário está logado, primeiramente, precisamos identificar seus dados cadastrais.
Para isso, temos que criar uma página onde recerão os dados digitados (login e senha), que irá verificá-los, e "decidir" se está de acordo com o banco de dados ou não.
Exemplo:


O que fizemos no código acima?

Primeiro, recebemos os dados vindo do formulário, no método POST.
Logo após, criamos uma consulta, que selecionará o usuário e senha digitados.
Depois, com a função mysql_num_rows(), contaremos a quantidade de registros retornados.

Fizemos uma condição logo após, onde caso mysql_num_rows() > (maior) que 0, ele constataria que existe dados no banco de dados de acordo com os que foram digitados.
Caso isso aconteça, ele salva a sessão, e identifica o usuário.
Caso não aconteça, ele retorna uma mensagem de erro, no caso: Usuário ou senha incorretos.

Bom, sistema de login é basicamente isso.
Um texto grande, mas com intuito de ajudar ^_^

Depois de ler esse livro chato ^_^, tente fazer o seu.
Qualquer dúvida, poste ;)

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#4 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 31/07/2008, 09:05

Como diria o Jack Estripador, vamos por partes... como o Dudu mostrou acima, montamos o login, e autenticamos as páginas restritas... claro que ele mostrou mastigadinho, mas faltando coisas, como redirecionar a página após login, ou bloquear páginas caso não esteja logado, aí vem da sua necessidade, conforme você vai estudando, vai tirando suas dúvidas (ok2)

Após isso, provavelmente você se familiarizou com o banco que usa (mysql)... crie uma nova tabela Noticias... os campos você define, mas 1 é obrigatório (id)!
id // usaremos como identificação de cada notícia, ou seja, é interessante que o tipo seja INT, como chave primária e autopreenchimento
data // pra gravar a data da noticia, eu uso no meu sistema CURDATE(), ele pega a data na hora que foi inserido, e gravo em tipo VARCHAR
titulo // tipo VARCHAR para gravar título... o maximo que ele suporta é 255 caracteres, caso queira mais, terá que apelar para LONGTEXT acho...
noticia // aqui tu grava sua notícia, em LONGTEXT <img src='http://forum.wmonline.com.br/public/style_emoticons/<#EMO_DIR#>/thumbs_up.gif' class='bbc_emoticon' alt='(y)' />
status // ¹

Feito o banco, monte suas páginas, e em cada ação você vai construindo consultas de acordo com a ação da página... se a página que você fez insere a noticia, usará o parâmetro INSERT no banco (y), se editar, use UPDATE, e se remover, use DELETE

¹: (Apesar que eu não apago mais nada, uso UPDATE, mudo o status para 'excluido' e na hora de listar, mando listar todos que tiverem status diferente de excluido, para caso eu queira recuperar algo mais tarde, der algum pepino e tal)

Aí você pode implantar algumas perfumarias no seu sistema, como log de entrada, editor de texto Richtext (recomendo FCKEditor), entre outras coisas, vem da sua imaginação, pense a partir do que tudo é possível, só exige estudo e determinação (y)

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#5 fabianowest

fabianowest

    Novato no fórum

  • Usuários
  • 21 posts
  • Sexo:Não informado

Posted 31/07/2008, 12:49

antes de mais nada agradeço muito a voceis! maykel, Dudu e Diego Viana

suas explicações foram valiosas, como estou iniciando em php algumas coisas estão mais complicadas, mas tô me esforçando, valeu mesmo galera, depois que estiver algo pronto vou postar o link, pra voceis observarem, e claro dar opiniões !! até amanhã coloco o link pra voceis olharem !!

abração !!! (y)

#6 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 31/07/2008, 13:14

qualquer dúvida não hesite em postar cara, todos partem de um principio! (ok2)

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#7 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 31/07/2008, 15:16

Isso aqui é realmente necessário?

addslashes(htmlentities($_POST['login']));

Eu não utilizo isso nos meus códigos. Estou com problemas de segurança então?

/*DarkSign*/
Não sabe por onde começar? Que tal pelas Regras ?

#8 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 31/07/2008, 20:45

Isso aqui é realmente necessário?

addslashes(htmlentities($_POST['login']));

Eu não utilizo isso nos meus códigos. Estou com problemas de segurança então?

/*DarkSign*/

addslashes() é o mais básico para ter em todo sistema de login, sem ele, é bom usar então outras boas maneiras para evitar ao menos uns 60% de "ataques"...

Edição feita por: lwirkk, 31/07/2008, 20:46.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#9 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 31/07/2008, 22:55

Eu tenho algumas dúvidas... ^_^

$_SESSION['login'] = $login;
  $_SESSION['senha'] = $senha;
Quando a gente usa SESSION, automaticamente salva o cookie ou tem que colocar um setcookie embaixo? :ponder:

E como proteger as páginas? :ponder:
att,
Muller Dias
ex-administrador Fórum WMO

#10 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 01/08/2008, 08:10

Quando se usa esse código, ele salva somente a session.
Para criar um cookie, use setcookie().

Para proteger, existem várias maneiras, porém, eu faço da seguinte:

$login = $_SESSION['login'];
$senha = $_SESSION['senha'];

$sql = mysql_query("SELECT * FROM cadastro WHERE login = '".$login."' AND senha = '".$senha."'") or die(mysql_error());
$contagem = mysql_num_rows($sql);

Aí na página que eu quero proteger, eu coloco:

if($contagem == 1) {
  //mostra contudo da pagina
  }else{
  //mostra login para o usuario logar.
}

Bem simples ;)

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#11 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 01/08/2008, 09:14

Se está gravando em sessions, não vejo necessidade de gravar cookies também! é menos coisa pra se preocupar (ok2)

addslashes(htmlentities($_POST['login']));

O addslashes insere barras antes das aspas, impede os ataques via SQL Inject, que precisa de aspas pra invadir.

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#12 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 01/08/2008, 14:07

Nossa, é mais simples do que eu pensava. :D

Muito obrigado pelas explicações! ^_^
att,
Muller Dias
ex-administrador Fórum WMO

#13 fabianowest

fabianowest

    Novato no fórum

  • Usuários
  • 21 posts
  • Sexo:Não informado

Posted 01/08/2008, 15:22

até aqui consegui avançar bastante por ser meu começo em php !! criado o banco de dados com as tabelas e campos que vou usar! já criei a tela de acessocom login e senha.

até o que entendi, o próximo passo seria eu adicionar o login e senha no meu bd (que no caso estou usando o phpmyadmin), para aí sim conseguir a validação !!

tentei então importar esses dados pro phpmyadmin, mas tenho dúvidas de como seria esse arquivo .sql pra ser importado !! resumindo minha dificuldade é essa senha e login inicial a primeira, para então acessar o admin !!!

Edição feita por: fabianowest, 01/08/2008, 15:29.


#14 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 01/08/2008, 15:51

nao precisa ser sql diretamente... seria legal você criar uma página pra cadastrar dados, quer ver um exemplo básico?

Supondo que o banco possui:

ID / Nome / Login / Senha / Status

faz um formzinho, com o action para... cadastrar.php...

cadastrar.php
$sql = "INSERT INTO usuarios(nome, login, senha, email, status) VALUES(
'".$_POST["txNome"]."',  
'".$_POST["txLogin"]."', 
".$_POST["txSenha"].", 
'".$_POST["txEmail"]."', 
'ativo'
)";

			if(mysql_query($sql)){
				echo "Cadastrou!";
			}else{
				echo mysql_errno().": ". mysql_error()."\n".$sql;
			}

Isso aí significa: Cadastre tudo o que digitou no form... se cadastrar, mostra o echo "Cadastrou!"... se não, mostra o erro e imprime a SQL para ver se o erro foi no MYSQL, pra já ir consertando!

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq