Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

andersonseifert

Login PHP

Recommended Posts

Bom dia, galera estou com um problema quando vou logar em minha area de login no site

nao esta fazendo o redirecionamento so fica o login e a senha onde fica a URL : text-align:center;

 

http://localhost/teste/index.php?email=admin&password=1234567

 

 <a href="#" id="loginButton">
<span>Entrar</span><em></em></a>
   <div style="clear:both"></div>
           <div id="loginBox">                
             <form id="loginForm">
               <fieldset id="body">
               <fieldset>
              <label for="email">Login :</label>
              <input type="text" name="email" id="email" />
              </fieldset>
              <fieldset>
              <label for="password">Senha : </label>
              <input type="password" name="password" id="password" />
              </fieldset>
              <input type="submit" id="login" value="Logar" />
<label for="checkbox"><input type="checkbox" id="checkbox" />Relembrar me</label>
             </fieldset>
             <span><a href="#">Esqueceu sua senha ?</a></span>
             </form> 
             <?php include 'controlepage/login/logar.php'; ?>  
             <?php include 'dao/conexao.php'; ?>  
              </div> 

logar.php

      
<?php

// VARRER 
if (isset($_REQUEST['pizza'])) {
    $usuario = $_REQUEST['usuario'];
    $senha = $_REQUEST['senha'];

    $sql = "SELECT * FROM login WHERE usuario ='$usuario' AND senha = '$senha' ";
    $query = mysql_query($sql) or die(mysql_error());
    $qtda = mysql_num_rows($query);
    if ($qtda == 0) {
        echo '<script>alert("Usuario Nao Cadastrado!!")</script>'; //Quando nao tem nada no Banco
    } else {
        $_SESSION['usuario'] = $usuario;
        $_SESSION['senha'] = $senha; // AQUI REDIRECIONA A PAGINA	
        header("Location:http://localhost/pizzaria/home.php?p=1");
    }
}
?>


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o problema é porque você não definiu o method para envio, assim, deve estar usando GET. Altere a abertura do form:

 

<form id="loginForm" method="post" action="">

 

E altere isso:

 

if (isset($_POST['pizza'])) {
    $usuario = $_POST['usuario'];
    $senha = $_POST['senha'];

SE não iniciou a session, inicie no inicio do arquivo que faz o login.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
session_start();
if(!session_is_registered(myusername)){
header("location:controlepage/login/logar.php");
}
?>

 

o Start uso no index.php ou dentro da pagina redirecionada pelo

header ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo so que nao esta executando a ação quando eu clico em logar e sim quando eu ja coloco localhost/pizzaria, ja entra direto na minha pagina redirecionada pelo header

 

<?php
session_start();
if(!session_is_registered(myusername)){
header("location:loginteste.php");
}
?>

	  <?php

// VARRER 
if (isset($_POST['pizza'])) {
    $usuario = $_POST['usuario'];
    $senha = $_POST['senha'];

    $sql = "SELECT * FROM login WHERE usuario ='$usuario' AND senha = '$senha' ";
    $query = mysql_query($sql) or die(mysql_error());
    $qtda = mysql_num_rows($query);
    if ($qtda == 0) {
        echo '<script>alert("Usuario Nao Cadastrado!!")</script>'; //Quando nao tem nada no Banco
    } else {
        $_SESSION['usuario'] = $usuario;
        $_SESSION['senha'] = $senha; // AQUI REDIRECIONA A PAGINA	
        header("Location:http://localhost/pizzaria/loginteste.php");
    }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O action está vazio, defina o caminho do arquivo que faz login. E a validação aqui não está correta, porque você não tem nenhum campo pizza.

 

Coloque algum name no submit e valide por ele.

 

<input type="submit" id="logar" name="logar" value="Logar" />

E na validação:

 

if (isset($_POST['logar'])) {

Compartilhar este post


Link para o post
Compartilhar em outros sites

@andersonseifert

 

todo o processo de validação precisa de um formulário, ou seja, precisa de um método para que os dados sejam tratados

no PHP existem o método GET (trata os dados via URL) e o POST (trata os dados direto no servidor), resumindo, você teria que mudar o seu HTML por completo, e também o seu SCRIPT PHP, para que você possa ter êxito no resultado.

 

1º - Você teria que colocar seus inputs dentro de um form com especificação de um método:

<form id="loginForm" method="POST" action="" enctype="multipart/form-data"> //enctype="multipart/form-data" faz com que a validação seja feita na propria página.

cada input deverá ter a propriedade "name" para que você através desta propriedade consiga resgatar o valor de cada campo:

<input type="password" name="password" id="password" /> //id="password" só é necessário caso você vá tratar esta input individualmente no CSS.

O valor inserido no input PASSWORD estará no $_POST['password'], se estiver setado o method POST, ou $_GET['password'], se estiver setado o method GET. assim você poderá tratá o valores e validar no seu banco e redirecioná-lo para onde quiser depois da validação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Allex e bruno consegui entender o que quiseram me passar, ajustei meu código e entendi, o Problema acho que estou errando no start , porque quando eu digito localhost/pizzaria para abrir a pagina esta entrando direto na session

<?php
session_start();
if(!session_is_registered(myusername)){
header("location:loginteste.php");
}
?>


Nao chego nem digitar login e senha, so lembrando estou usando BD .

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK, estou errando nos redirecionamentos : no Else se a session não der Start então eu redireciono para o Index é isso ?

<?php
unset($_COOKIE); 
if(!$_SESSION){
  session_start();
} else {
  header("Location:loginteste.php");
}

?>

	  <?php

// VARRER 
if (isset($_GET['logar'])) {
    $usuario = $_GET['usuario'];
    $senha = $_GET['senha'];

    $sql = "SELECT * FROM login WHERE usuario ='$usuario' AND senha = '$senha' ";
    $query = mysql_query($sql) or die(mysql_error());
    $qtda = mysql_num_rows($query);
    if ($qtda == 0) {
        echo '<script>alert("Usuario Nao Cadastrado!!")</script>'; //Quando nao tem nada no Banco
    } else {
        $_SESSION['usuario'] = $usuario;
        $_SESSION['senha'] = $senha; // AQUI REDIRECIONA A PAGINA	
        header("Location:http://localhost/pizzaria/loginteste.php");
    }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, por motivos de segurança, seria bom você não usar o método GET para tratar os dados do usuário, aconselho não fazer isso em nenhum tratamento que tenha que ter acesso ao banco, evitar o SQL INJECT, o script que te passei faz o seguinte, irá limpar qualquer sessão salva em COOKIE, e depois irá verificar se teve alguma sessão iniciada, se não ele irá iniciar a sessão, caso contrário ele irá deslocar o usuário para a página de login. no caso ficaria assim:

<?php

header("Location: /"); //Ele irá te deixar na raiz do arquivo acessado, se caso queira subir um nível é só por "../"; 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai ter que verificar se as sessions criadas no login estão iniciadas:

 

<?php
session_start();
if(isset($_SESSION['usuario'])){
  header("Location:./");
} else {
  header("Location:loginteste.php");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera apareceu um erro na pagina que indica o que esta em RED logo abaixo :

 

     <fieldset id="body">
               <fieldset>
                        <label for="email">Login :</label>
                        <input type="text" name="email" id="email" />
               </fieldset>
										
               <fieldset>
                     <label for="password">Senha : </label>
                     <input type="password" name="senha"  />
               </fieldset>
										
										
               <input type="submit" id="login" name="logar" value="Logar" />
              <label for="checkbox"><input type="checkbox" id="checkbox" />Relembrar me</label>
              </fieldset>
              <span><a href="#">Esqueceu sua senha ?</a></span>
               </form> 

               <?php include 'ControlePage/login/logar.php'; ?>  
                                
                            </div>   

 

logar.php

 

<?php
unset($_COOKIE); 
if(!$_SESSION){
  session_start();
} else {
 header("Location: /");
}

?>

	  <?php

// VARRER 
if (isset($_POST['login'])) {
    $usuario = $_POST['usuario'];
    $senha = $_POST['senha'];

    $sql = "SELECT * FROM login WHERE usuario ='$usuario' AND senha = '$senha' ";
    $query = mysql_query($sql) or die(mysql_error());
    $qtda = mysql_num_rows($query);
    if ($qtda == 0) {
        echo '<script>alert("Usuario Nao Cadastrado!!")</script>'; //Quando nao tem nada no Banco
    } else {
        $_SESSION['usuario'] = $usuario;
        $_SESSION['senha'] = $senha; // AQUI REDIRECIONA A PAGINA	
        header("Location:http://localhost/pizzaria/loginteste.php");
    }
}
?>


if(!$_SESSION){

 

 

 

header("Location:http://localhost/pizzaria/loginteste.php");

Compartilhar este post


Link para o post
Compartilhar em outros sites

anderson me mostre o cabeçalho do seu form por favor! quero ver se está usando o method POST

seu HMTL deveria ficar mais ou menos assim:

<?php
 require_once("ControlePage/login/logar.php");
?>


<!DOCTYPE HTML>
<html lang="pt-BR"> ....
<body>
...
<form method="POST" action="" enctype="multipart/form-data">
...
 <fieldset id="body">
               <fieldset>
                        <label for="email">Login :</label>
                        <input type="text" name="email" id="email" />
               </fieldset>
										
               <fieldset>
                     <label for="password">Senha : </label>
                     <input type="password" name="senha"  />
               </fieldset>
										
										
               <input type="submit" id="login" name="logar" value="Logar" />
              <label for="checkbox"><input type="checkbox" id="checkbox" />Relembrar me</label>
              </fieldset>
              <span><a href="#">Esqueceu sua senha ?</a></span>
               </form> 




<

Note que requisitei o arquivo logar.php antes da TAG HMTL, pq você estará trabalhando com (session_start() e header) sendo assim, você deve por estas funções antes de qualquer outro HEADER, no caso o do HTML, a pagina de login deve ficar assim:

<?php
unset($_COOKIE); 
if(!$_SESSION){
  session_start();
} else {
 header("Location: /");
}

?>


<?php

   if(($_SERVER['RESQUEST_METHOD']) == 'POST') {
   if (isset($_POST['logar'])) {
    $usuario = $_POST['email'];
    $senha = $_POST['senha'];

    $sql = "SELECT * FROM login WHERE usuario ='$usuario' AND senha = '$senha' ";
    $query = mysql_query($sql) or die(mysql_error());
    $qtda = mysql_num_rows($query);
    if ($qtda == 0) {
        echo '<script>alert("Usuario Nao Cadastrado!!")</script>'; //Quando nao tem nada no Banco
    } else {
        $_SESSION['usuario'] = $usuario;
        $_SESSION['senha'] = $senha; // AQUI REDIRECIONA A PAGINA  
        header("Location: http://localhost/pizzaria/loginteste.php");
    }
}
}
?>

Note uma coisa, para pegar os valores dos input você deverá prestar atenção no que está nos atributos do tipo NAME, ou seja se no "input type=text" estiver "name=valor" então, você resgatará o valor dessa input assim $_POST['valor'] e não no atributo ID como vc estava fazendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim estou :



       <a href="#" id="loginButton"><span>Entrar</span><em></em></a>
        <div style="clear:both"></div>
        <div id="loginBox">                
         <form id="loginForm" method="post" action="" enctype="multipart/form-data">
                                    <fieldset id="body">
                                        <fieldset>
                                            <label for="email">Login :</label>
                                            <input type="text" name="email" id="email" />
                                        </fieldset>
										
                                        <fieldset>
                                            <label for="password">Senha : </label>
                                            <input type="password" name="senha"  />
                                        </fieldset>
										
										
                                        <input type="submit" id="login" name="logar" value="Logar" />
                                        <label for="checkbox"><input type="checkbox" id="checkbox" />Relembrar me</label>
                                    </fieldset>
                                    <span><a href="#">Esqueceu sua senha ?</a></span>
                                </form> 

                                <?php include 'ControlePage/login/logar.php'; ?>  

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.