Login for admistradores and customers

Asked

Viewed 100 times

0

I have a login system only for customers, I wanted to make sure that when making a special login the user would be directed to another page. I know we have to use the IF but I don’t know how to

My code:

indexlogin.php:

//LOGIN
$connect = mysql_connect("localhost", "a23144", "7a27ab") or die("Erro");                           // faz a conecxão a base de dados
$db = mysql_select_db("a23144",$connect) or die("Erro");                                            // selecionar a base de dados
if(isset($_POST["login"])) {        // vai verificar se existe
$nome =($_POST ["nome"]);  
$email =($_POST ["email"]);                                                                     // md5 é a segurança basica. o email fica encrpitado ou se ja eu n vou  saber o email  dele
$password = md5($_POST["password"]);                                                                // o email e a pass são as variaveis
$verificar = mysql_query("SELECT * FROM users WHERE email='$email' AND password='$password'");      // verifica a coluna da base de dados
if (mysql_num_rows($verificar)<=0){                                                             // faz a contagem dos dados que recebeu.                                    
    echo "
                <h3><META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://www.aepaa.pt/~a23144/Pap/index.php'>           
                <script type=\"text/javascript\">
                    alert(\"Dados de login incorretos!Tente novamente.\");
                </script></h3>
            ";                                                      // se não  econtrar os dados da erro
}else{

    setcookie("login",$email);


    header("Location: entrou.php");                                                                     // se econtrar os daods vai para o arquivo entrou.php
}
}

REGISTER

if(isset($_POST["registar"])) {                                                                     // vai verificar se existe
$nome = $_POST["nome"]; 
$email = md5($_POST ["email_registar"]);                                                                    // md5 é a segurança basica. o email fica encrpitado ou se ja eu n vou  saber o email  dele
$password = md5($_POST["password_registar"]);                                                               // o email e a pass são as variaveis
$password_rep = md5($_POST["password_rep"]);    
$verificar = mysql_query("SELECT * FROM users WHERE email='$email'");                                   // verifica a coluna da base de dados

if (mysql_num_rows($verificar)>0){                                                                          // faz a contagem dos dados que recebeu.                                    
    echo
            "
                <h3><META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://www.aepaa.pt/~a23144/Pap/index.php'>           
                <script type=\"text/javascript\">
                    alert(\"Conta já registada!Tente novamente.\");
                </script></h3>
            ";                                                                                              // Se ja tiver registada 

}elseif ($_POST["email_registar"]==""){                                                             // se não o  email  n tiver inserido na texto box diz "tem q inserir email"
    echo "<h3>Tem que inserir um email!</h3>";                                                                      


}elseif ($_POST["password_registar"]==""){
    echo "<h3>Tem que inserir uma Palavra-passe!</h3>";                                                                     


}elseif ($_POST["password_registar"]=!$_POST["password_rep"]){
    echo "<h3>As palavra-passe não coincidem!</h3>";                                                                        


}elseif ($nome==""){
    echo "<h3>Escreva o seu nome!</h3>";                                                                        

}else{                                                      
    // apos ter inserido os daddos todos corretamente ira receber a mensagem conta resgistada com  .....
    $insert = mysql_query("INSERT INTO users (nome,email,password) VALUES('$nome','$email','$password')");

    echo"<h3><META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://www.aepaa.pt/~a23144/Pap/index.php'>
                <script type=\"text/javascript\">
                    alert(\"Conta registada com sucesso!\");
                </script></h3>";
}

        }

And entered.php:

<?php
    if(isset($_COOKIE["login"])) {      // apos confirmar os dados ao fazer o login corretramente ira dizer entra na conta.
    echo "<h3><META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://www.aepaa.pt/~a23144/Pap/index.php'>         
                <script type=\"text/javascript\">
                    alert(\"Bem Vindo! \");
                </script></h3>";
    echo $_COOKIE["login"];
    }else{

    header("Location: ./");   //faz com  q vai para logo ao index.
    }      
?>
  • but according to your code redirects already happen. I suggest replacing the functions mysql for mysqli since the one you’re using is obsolete

  • n, what happens in mine is that anyone logging in goes to index.php and what I wanted to do was that when I created an Administer account went to the index.php did you notice? That’s what I want to do.

  • Lucas, you can create a column named "level" in your table, for example. Clients that are not administrators would have number 1, those that are number 2, (example) and then just program in indexlogin.php according to the level column number, which page the user will be redirected. Understood?

  • As Wees said, you better switch from mysql to mysqli or you also have PDO as an option, and it’s also good to filter the data, so you don’t have a problem with sql Injection. Search by var filter.

  • I noticed Louie. but then when registering the account will have that level? will always be higher than 1?

  • and there will only be one Adm?

  • Boy, you still haven’t got the right name instead of the email, is it so hard to understand that the only change in your indexlogin.php is changing setcookie("login",$email);for setcookie("login",$nome;. If you don’t understand this simple modification of your code (which was asked in the previous question) I think it will be difficult to understand an answer to this new question.

  • Leo I already did but I while switching to this will not work my code. ent I decided to leave as had

  • @Lucassintra, take a look there I added another alternative.

Show 4 more comments

1 answer

1


indexlogin.php

$connect = mysql_connect("localhost", "a23144", "7a27ab") or die("Erro");                           // faz a conecxão a base de dados
$db = mysql_select_db("a23144",$connect) or die("Erro");                                            // selecionar a base de dados
if(isset($_POST["registar"])) {        // vai verificar se existe
    $nome =($_POST ["nome"]);  
    /*******corrigido aqui colocado md5 **********/
    $email =md5($_POST ["email"]);                                                                     // md5 é a segurança basica. o email fica encrpitado ou se ja eu n vou  saber o email  dele
    $password = md5($_POST["password"]); 

    // o email e a pass são as variaveis
    $verificar = mysql_query("SELECT * FROM users WHERE email='$email' AND password='$password'");      // verifica a coluna da base de dados

    $row = mysql_fetch_array($verificar);
    if (mysql_num_rows($verificar)<=0){
                                                                 // faz a contagem dos dados que recebeu.                                    
        echo "
                    <h3><META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://www.aepaa.pt/~a23144/Pap/index.php'>           
                    <script type=\"text/javascript\">
                        alert(\"Dados de login incorretos!Tente novamente.\");
                    </script></h3>
                ";                                                      // se não  econtrar os dados da erro
    }else{

        /********** Para o administrador *************/
        $nomeBanco = $row['nome'];
        $emailBanco = $row['email'];
        $senhaBanco = $row['password'];

        // verifica se os dados retornados do banco são seu email e sua senha de registro
       /***** substitua SeuEmail pelo seu email de registro
       e SuaSenha pela sua senha de registro **************/
        if( ($emailBanco==md5("SeuEmail")) && ($senhaBanco==md5("SuaSenha"))){

            // cria o cookie do administradoe com o nome dele
            setcookie("admin",$nomeBanco);
            header("Location: indexadm.php");
            exit();

        }else{  
            /*********  para usuarios comuns *************/
            $nome = $row['nome'];
            setcookie("nome",$nome); 

            header("Location: entrou.php");  
        }                                                                   // se econtrar os daods vai para o arquivo entrou.php
    }
}

entered php.

if(isset($_COOKIE["nome"])) {      // apos confirmar os dados ao fazer o login corretarmente ira dizer entra na conta.
echo "BEM VINDO!";
/***********************************
 pega o cookie com o nome do usuario
***********************************/
echo $_COOKIE["nome"];

}else{

header("Location: ./");   // ./faz com  q vai para logo ao index.
}

php indexed.

if(isset($_COOKIE["admin"]) && $_COOKIE["admin"]=="Lucas Sintra") {      // apos confirmar os dados ao fazer o login corretarmente ira dizer entra na conta.
    echo "BEM VINDO ADMINISTRADOR ";
    /***********************************
    pega o cookie com o nome do administrador
    ***********************************/
    echo $_COOKIE["admin"];

   //código da sua pagina admin

}else{
   header("Location: ./");   // ./faz com  q vai para logo ao index.
}


OBS:

1 - DO NOT use mysql_* functions as they are considered obsolete

Why should we not use mysql type functions_*?

2 - Use Prepared statements, this will reduce the sql Injection vulnerability

not to repeat the same code on all pages use a Connection.php

Connection.php

    $hostname="localhost";  
    $username="a23144";  
    $password="7a27ab";  
    $db = "a23144";  
    $pdo = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);

REGISTER

if(isset($_POST["registar"])) { 

    /***********conexão***********/

    require_once('connection.php');

    /*****************************/


    $nome = $_POST["nome"]; 
    $email = md5($_POST ["email_registar"]);   
    $password = md5($_POST["password_registar"]);  
    $password_rep = md5($_POST["password_rep"]); 


    //********** consulta para verificar se conta já existe *********
    $verificar = $pdo->prepare("SELECT * FROM users WHERE email = ? AND password= ?");
    $verificar->bindValue(1, $email);
    $verificar->bindValue(2, $password);
    $verificar->execute();
    $row = $verificar->fetch(PDO::FETCH_ASSOC);
    $num = $verificar->rowCount();  // faz a contagem dos dados que recebeu.


    if ($num == 1) {

        echo
        "
            <h3><META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://www.aepaa.pt/~a23144/Pap/index.php'>           
            <script type=\"text/javascript\">
                alert(\"Conta já registada!Tente novamente.\");
            </script></h3>
        ";                                                    

    }elseif ($_POST["email_registar"]==""){                                                          
        echo "<h3>Tem que inserir um email!</h3>";                                                                      


    }elseif ($_POST["password_registar"]==""){
        echo "<h3>Tem que inserir uma Palavra-passe!</h3>";                                                                     


    }elseif ($_POST["password_registar"]=!$_POST["password_rep"]){
        echo "<h3>As palavra-passe não coincidem!</h3>";                                                                        


    }elseif ($nome==""){
        echo "<h3>Escreva o seu nome!</h3>";                                                                        

    }else{                                                      

        /************************** insere dados no banco *********************************/

        $insert = $pdo->prepare("INSERT INTO users (nome, email, password) 
        VALUES (:nome, :email, :password)");
        $insert->bindParam(':nome', $nome);
        $insert->bindParam(':email', $email);
        $insert->bindParam(':password', $password);
        $insert->execute();

            echo"<h3><META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://www.aepaa.pt/~a23144/Pap/index.php'>
            <script type=\"text/javascript\">
                alert(\"Conta registada com sucesso!\");
            </script></h3>";

    }

$pdo = null;

}

****indexlogin.php****

if(isset($_POST["login"])) {        // vai verificar se existe
    $nome =($_POST ["nome"]);  
    //corrigido aqui colocado md5
    $email =md5($_POST ["email"]);     // md5 é a segurança basica. o email fica encrpitado ou se ja eu n vou  saber o email  dele
    $password = md5($_POST["password"]); 

    // o email e a pass são as variaveis

    /***********conexão***********/

    require_once('connection.php');

    /*****************************/

    //********** consulta para verificar se conta já existe *********
    $verificar = $pdo->prepare("SELECT * FROM users WHERE email = ? AND password= ?");
    $verificar->bindValue(1, $email);
    $verificar->bindValue(2, $password);
    $verificar->execute();
    $row = $verificar->fetch(PDO::FETCH_ASSOC);
    $num = $verificar->rowCount();  // faz a contagem dos dados que recebeu.

    if ($num == 0) {

        echo "
              <h3><META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://www.aepaa.pt/~a23144/Pap/index.php'>           
               <script type=\"text/javascript\">
                  alert(\"Dados de login incorretos!Tente novamente.\");
                </script></h3>
        ";  // se não  econtrar os dados da erro

    }else{

        $nomeBanco = $row['nome'];
        $emailBanco = $row['email'];
        $senhaBanco = $row['password'];

       ***** substitua SeuEmail pelo seu email de registro
       e SuaSenha pela sua senha de registro **************/
        if( ($emailBanco==md5("SeuEmail")) && ($senhaBanco==md5("SuaSenha"))){

            // cria o cookie do administrador com o nome do usuario e envia para indexlogin.php
            setcookie("admin",$nomeBanco);
            header("Location: indexadm.php");
            exit();

        }else{  
            $nome = $row['nome'];
            setcookie("nome",$nome); 

            header("Location: entrou.php");  
        }  // se econtrar os daods vai para o arquivo entrou.php
    }

$pdo = null;

}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.