As Aventuras De Um Iniciante Em Php
#1
Posted 30/07/2008, 17:44
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
Posted 30/07/2008, 20:27
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
Posted 31/07/2008, 07:54
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:
$login = addslashes(htmlentities($_POST['login']));$senha = addslashes(htmlentities($_POST['senha']));$sql = "SELECT * FROM usuarios WHERE login = '" . $login . "' AND senha = '" . $senha . "';$sql_exe = mysql_query( $sql ) or die(mysql_error());$verifica_registro = mysql_num_rows( $sql_exe );if($verifica_registro > 0) { //Caso os dados digitados coincidirem com os do banco, quer dizer que login aceito. Portanto, savará a sesssion. $_SESSION['login'] = $login; $_SESSION['senha'] = $senha; }else{ echo "Usuário ou senha incorretos.";}
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
Posted 31/07/2008, 09:05
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 , 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
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#5
Posted 31/07/2008, 12:49
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 !!!
#6
Posted 31/07/2008, 13:14
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#8
Posted 31/07/2008, 20:45
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"...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*/
Edição feita por: lwirkk, 31/07/2008, 20:46.
"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
Posted 31/07/2008, 22:55
$_SESSION['login'] = $login; $_SESSION['senha'] = $senha;Quando a gente usa SESSION, automaticamente salva o cookie ou tem que colocar um setcookie embaixo?
E como proteger as páginas?
Muller Dias
ex-administrador Fórum WMO
#10
Posted 01/08/2008, 08:10
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
Posted 01/08/2008, 09:14
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!
#12
Posted 01/08/2008, 14:07
Muito obrigado pelas explicações!
Muller Dias
ex-administrador Fórum WMO
#13
Posted 01/08/2008, 15:22
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
Posted 01/08/2008, 15:51
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!
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)