Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

DevilRocks92

Sistema Login

Recommended Posts

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?

Share this post


Link to post
Share on other sites
DevilRocks92

Não percebi ainda porque é que tentam saltar etapas ..

Desculpa nao percebi a tua resposta...

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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';

?>

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.