Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

DevilRocks92

Sistema Login

Mensagens Recomendadas

DevilRocks92

Boas, P@P

Eu estou a tentar fazer um sistema login, mas estou com dificuldades em perceber o que faze este pedaço de codigo:

if ($num  >0 AND $row['username']==$username and $row['pass']==$pass) {
    $_SESSION['username']=$username;
    $_SESSION['pass']=$pass;
    $_SESSION['AdminValido'] = TRUE;
    header("Location: index.php");
} else {
    header("Location: login_form.php");
}

mysql_close($con);
?>

Alguem me pode explicar, por favor?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

O código que ai está é básico no PHP, se não entendes isso dificilmente dás continuidade ao que te espera a seguir. Acho mais proveitoso aprenderes primeiro por ti (aprender, como quem diz ler sobre o assunto) do que tentar logo fazer as coisas sem bases.

Aqui está quase tudo o que precisas saber sobre as funções, com bastantes exemplos : http://www.php.net/manual/en/book.session.php

O google também está cheio de tutoriais passo-a-passo que explicam o que cada linha faz, se ler o manual não ajudar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
DevilRocks92

Boas, esse site ajudou-me muito, obrigado.

Agora quero melhorar o meu sistema de log in. É o seguinte, eu quero que o site verifique se o username esta logado ou nao.

Se estiver aparece no index "Login com sucesso, nome_user!" se nao estiver aparece o index para visitantes. Nao penso que seja necessario 2 index, pois o que muda de um para o outro é só a frase a dizer que o login foi bem sucedido.

<?PHP

include 'topo.php';

//se nao
//index normal

//se o user estiver logado
//linha 19 - "Login com sucesso, nome_user" VISIVEL
?>

<!--content-->
<table width = 100%>
<tr>

<h2>Bem Vindo à Escola de Música de V.N.Gaia</h2>

<tr>
<font color = "green" size="3"> Welcome, <?php echo $_SESSION['username']; ?> </font>
</tr>

<td class = "table_title">
<h3> A Nossa Escola </h3>
<p align = "justify"> 
A Escola de Música de V.N.Gaia existe desde 1979. O nosso principal objectivo é incentivar o gosto musical de todas as pessoas seja qual for a idade.
<br/>
Os nossos Cursos estão divididos por graus (1º ao 5º) e no final de cada ano lectivo serão inseridas as notas dos alunos.
Essas notas resultam do trabalho, não só individual mas também a integração em grupo. 
</p>
</td>

<td width = 3%></td>

<td width = 20% class = "table_title"> 
<h3> Cursos </h3>
<table>
<tr>

<tr>
<td>Guitarra Elétrica</td>
</tr>

<tr>
<td> Piano</td>
</tr>

<tr>
<td> Violoncelo</td>
</tr>

<tr>
<td> Saxofone</td>
</tr>

<tr>
<td> <a href = "cursos.php"> <img src = "images/button.jpg"></img> </a> </td>
</tr>

</tr>
</table>
</td>


<td width = 3%></td>


<!----------JAVASCRIPT VALIDAR LOGIN---------------->
<script>
function validar() {
if (document.getElementById("username").value.length==0) { 
	alert("Introduza o seu Login");
	document.getElementById("username").focus();
	return false;		
}
if (document.getElementById("pass").value.length==0) { 
	alert("Introduza a sua Password");
	document.getElementById("pass").focus();
	return false;		
}
}
</script>

<?PHP
//user 'logado' ou nao
function is_logged()
{
  if(isset($_SESSION['username'])) { 
    return true;
  }else{
    return false;
  }
} 
?>
<!-------------------FORM LOGIN--------------------->
<td class = "table_title">
<h3> Log In </h3>
<form name="loginform" METHOD="POST" action="validapass.php" onsubmit="return validar()">
<table class=textologin align="center" cellspacing="0" cellpadding="0" width="25%">
        <tr><td height="50"></td></tr>
		<tr>
               <td width="50">Username: </td>
               <td width="150" align="left"><input name="username" size="15"></td>
            </tr>
            
		<tr>
            <td>  </td>
            </tr>

		<tr>
               <td width="50">Password: </td>
               <td width="150" align="left"><input type="password" name="pass" size="15"></td>
            </tr>

	<tr><td height="20"></td></tr>
            <tr>
               <td align="center"><input type="Submit" value="Log In"></td>
            </tr>
   </table>
</form>
</td>

</tr>
</table>
<!---------------------------------------------------------------------------->
<table width = 100%>
<tr>

<h2>Curiosidades</h2>

<td class = "table_title">
<h3> Destaques </h3>
10/01/2012
<br/>
Inauguração da Escola de Música de V.N.Gaia.
</td>

</tr>
</table>

<?PHP

include 'rodape.php';

?>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
DevilRocks92

Ja estive mais perto, mas ainda nao entra.

index.php

<?PHP
ob_start();
session_start();

include 'topo.php';
//user 'logado' ou nao
function is_logged()
{
if(isset($_SESSION['username'])) {
return true;
}else{
return false;
}
}
?>

<!--content-->
<table width = 100%>
<tr>

<h2>Bem Vindo à Escola de Música de V.N.Gaia</h2>

<tr>
<font color = "green" size="3">
Welcome,

<?php
if(is_logged())
{
echo $_SESSION['username'];
}else{
echo "Guest!";
}
?>

(...)


<!----------JAVASCRIPT VALIDAR LOGIN---------------->
    <script>
    function validar() {
    if (document.getElementById("username").value.length==0) {
    alert("Introduza o seu Login");
    document.getElementById("username").focus();
    return false;
    }
    if (document.getElementById("pass").value.length==0) {
    alert("Introduza a sua Password");
    document.getElementById("pass").focus();
    return false;
    }
    }
    </script>
     
    <!-------------------FORM LOGIN--------------------->
    <td class = "table_title">
    <h3> Log In </h3>
    <form name="loginform" METHOD="POST" action="validapass.php" onsubmit="return validar()">
    <table class=textologin align="center" cellspacing="0" cellpadding="0" width="25%">
    <tr><td height="50"></td></tr>
    <tr>
    <td width="50">Username: </td>
    <td width="150" align="left"><input name="username" size="15"></td>
    </tr>
     
    <tr>
    <td>  </td>
    </tr>
     
    <tr>
    <td width="50">Password: </td>
    <td width="150" align="left"><input type="password" name="pass" size="15"></td>
    </tr>
     
    <tr><td height="20"></td></tr>
    <tr>
    <td align="center"><input type="Submit" value="Log In"></td>
    </tr>
    </table>
    </form>
    </td>

validapass.php

    <?php
    session_start();
     
    include "db_connect.php";
    mysql_select_db($dbname, $connect);
     
    $username = $_POST['username'];
    $pass = $_POST['pass'];
     
    $sql="SELECT username, password FROM alunos WHERE username='$username' AND '$pass'";
    $resultado = mysql_query($sql, $connect) or die(mysql_error());
    if(mysql_affected_rows() == 1)
    {
    $_SESSION['username'] = $username;
    $_SESSION['loggedin'] = 1;
     
    header("Location: index.php");
    }else{
    header("Location: login_form.php");
    }
    mysql_close($con);
     
    ?>

logout.php

<?php
    session_start();
    Session_destroy();
    header("Location: index.php");
?>

Alguem me pode ajudar?

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fil79

experimenta fazer um output do teu sql (variável $sql) para saber se devolve algum registo.

Outra coisa muito importante, não me parece de todo correcto estares a colocar o nome do site onde estás a implementar este sistema, pois estás a expor o teu código server-side, alguém mal intencionado fica a saber as vulnerabilidades que o teu sistema eventualmente possa ter ( e no teu caso existem mesmo).

https://www.google.com/search?q=sql+injection+&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:pt-PT:official&client=firefox-a


MCITP-MCTS-MCP

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.