Ir para conteúdo

POWERED BY:

Arquivado

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

WBS DIGITAL

script não faz a conexão

Recommended Posts

Boa tarde pessoal, seguinte, estou desenvolvendo um sistema, onde estou aprendendo pela web, porém a mesma não funciona em minha maquina, ja procurei o erro, mas simplesmente não completa a conexão, espero que possam me ajudar:

 

O que acontece, o sistema identifica o email inserido pelo usuário e se o email ja existir no banco de dados ele deveria encaminhar e liberar o acesso à pagina plataforma.php para o usuário logado, porém, ao tentar logar, simplesmente continua na mesma pagina (index.php) e some todos os inputs.

 


Segue o codigo

 

index.php

<?php
session_start();
include_once "defines.php";
require_once('classes/BD.class.php');
BD::conn();

    define('url', 'http://localhost/proig.com.br');
    $paginas = array ('plataforma','','','');
    $url = explode ('/', $_GET['url']);
    $arquivo = $url[0];
    $identificador = $url[1];


    ?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Teste de login diferente</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="<?php echo url?>/css/estilo.css"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body>


<div id="wrapper">
  <div id="acesso">
    <div id="login">
    <div id="logoInicial"></div>
	<h1 class="tituloTxt">Acessar Plataforma</h1>
   
   <?php
        if(isset($_POST['acao']) && $_POST['acao'] == 'logar'){
            $email = strip_tags(trim(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_STRING)));
                if($email == ''){
                    echo'informe seu email';
                }else{
                    $pegaUser = BD::conn()->prepare("SELECT * FROM 'usuarios' WHERE 'email' = ?");
                    $pegaUSer->execute(array($email));
                    
                    if($pegaUser->rowCount() == 0){
                        echo'Não encontramos este login';
                    }else{
                        while($row = $pegaUser->fetchObject()){
                        $_SESSION['email_logado'] = $email;
                        $_SESSION['id_user'] = $row->id;
                        header("Location: plataforma.php");
                        
                    }
                }
        }    
        }
    ?>
    <form action="" method="post" enctype="multipart/form-data">
    <input type="text" name="email" class="inputInicial2" placeholder="Digite seu email"/>
    <input type="submit" value="Entrar" class="btnInicial"/>
    <input type="hidden" name="acao"  value="logar" />
    </form>
    </div>
    
    <div id="formulario">
    <div id="logoInicial"></div>
        <form action="" method="post">
    <input type="text" name="nome" class="inputFormulario" placeholder="nome"/>
    <input type="text" name="sobrenome" class="inputFormulario2" placeholder="sobrenome"/>
    <input type="text" name="email" class="inputFormulario3" placeholder="email"/>
    <input type="text" name="login" class="inputFormulario3" placeholder="login"/>
    <input type="password" name="senha" class="inputFormulario3" placeholder="Senha"/>    
<input type="submit" value="Cadastrar" class="btnFormulario"/>
    </form>
    <div id="termo">
        Ao clicar em cadastrar você está ciente de todos os <a href="#">termos</a> do site.
    </div>
    </div>
  </div>
</div>

<div id="rodape">
    Pro IG - Sistema de cadastro da raça Índio Gigante © 2016 
</div>

 </body>
 </html>

plataforma.php

<?php
session_start();
include_once "defines.php";
require_once('classes/BD.class.php');
BD::conn();
if(!isset($_SESSION['email_logado'], $_SESSION['id_user'])){
    header("Location: index.php");
}
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Pro IG - Sistema de gerenciamento e controle de Indio Gigante</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="<?php echo url?>/css/estilo.css"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body>

<header>
    <div id="logo"><img src="<?php echo url?>/img/logo.png"/></div>
<input type="checkbox" id="btn_menu">
<label for="btn_menu"><img src="img/ico-menu.png"></label>
<nav class="menu">
    <ul>
    <li><a href="<?php echo url?>/">INICIO</a></li>
    <li><a href="<?php echo url?>/cadastro">CADASTRO</a></li>
    <li><a href="<?php echo url?>/">FORMULARIO</a></li>
    <li><a href="<?php echo url?>/">CONTATO</a></li>
    </ul>
</nav>

</header>


<div id="conteudo">
<?php
    if($arquivo != '' && in_array($arquivo, $paginas)){
        include"$arquivo.php";
    }elseif($arquivo == ''){
        include 'home.php';
    }
    else{
        include '404.php';
    }
?>
</div>
<div id="rodape">
    Pro IG - lSistema de cadastro da raça Índio Gigante © 2016 
</div>

 </body>
 </html>

.htacess

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1

defines.php

<?php
define('HOST', 'localhost');
define('DB', 'proig');
define('USER', 'root');
define('PASS', '');
?>

classes/BD.class.php

<?php
class BD{
    private static $conn;
    public function __construct(){}
    public static function conn(){
        if(is_null(self::$conn)){
            self::$conn = new PDO('mysql:host='.HOST.';dbname='.DB.'', ''.USER.'', ''.PASS.'');
        }
        return self::$conn;
    }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca isso dentro da index.php:

error_reporting(E_ALL);

ini_set('display_errors', 1);

e tenta logar novamente, ele vai apresentar os erros/warnings.. posta aqui novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

: Undefined variable: pegaUSer in E:\sites\proig.com.br\index.php on line 43

Fatal error: Call to a member function execute() on null inE:\sites\proig.com.br\index.php on line 43

Compartilhar este post


Link para o post
Compartilhar em outros sites

Notice: Undefined variable: pegaUSer in E:\sites\proig.com.br\index.php on line 43

Fatal error: Call to a member function execute() on null inE:\sites\proig.com.br\index.php on line 43

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah sim, os nomes estão errados tmb... pegarUser e pegarUSer...

Muito obrigado, varrir todo o script e não me atentei a esse S maiusculo!

 

Agora não aparece mais o erro, porem ele para na frase "Não encontramos este login"

 

Creio que deva ter algum erro aqui:

else{
while($row = $pegaUser->fetchObject()){
$_SESSION['email_logado'] = $email;
$_SESSION['id_user'] = $row->id;
header("Location: plataforma.php");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
session_start();
include_once "defines.php";
require_once('classes/BD.class.php');
BD::conn();

    define('url', 'http://localhost/proig.com.br');
    $paginas = array ('plataforma','','','');
    $url = explode ('/', $_GET['url']);
    $arquivo = $url[0];
    $identificador = $url[1];

error_reporting(E_ALL);

ini_set('display_errors', 1);
    ?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Pro IG - Sistema de gerenciamento e controle de Indio Gigante</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="<?php echo url?>/css/estilo.css"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body>


<div id="wrapper">
  <div id="acesso">
    <div id="login">
    <div id="logoInicial"></div>
	<h1 class="tituloTxt">Acessar Plataforma</h1>
   
   <?php
        if(isset($_POST['acao']) && $_POST['acao'] == 'logar'){
            $senha = strip_tags(trim(filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_STRING)));
                if($senha == ''){
                    echo'informe sua senha';
                }else{
                    $pegaUser = BD::conn()->prepare("SELECT * FROM 'usuarios' WHERE 'senha' = ?");
                    $pegaUser->execute(array($senha));
                    
                    if($pegaUser->rowCount() == 0){
                        echo'Não encontramos este login';
                        print_r($pegarUser);
                    }else{
                        while($row = $pegaUser->fetch()){
                        $_SESSION['email_logado'] = $senha;
                        $_SESSION['id_user'] = $row->id;
                        header("Location: plataforma.php");
                        
                    }
                }
        }    
        }

    ?>
    <form action="" method="post" enctype="multipart/form-data">
    <input type="password" name="senha" class="inputInicial2"/>
    <input type="submit" value="Entrar" class="btnInicial"/>
    <input type="hidden" name="acao"  value="logar" />
    </form>
    </div>
    
    <div id="formulario">
    <div id="logoInicial"></div>
        <form action="" method="post">
    <input type="text" name="nome" class="inputFormulario" placeholder="nome"/>
    <input type="text" name="sobrenome" class="inputFormulario2" placeholder="sobrenome"/>
    <input type="text" name="email" class="inputFormulario3" placeholder="email"/>
    <input type="text" name="login" class="inputFormulario3" placeholder="login"/>
    <input type="password" name="senha" class="inputFormulario3" placeholder="Senha"/>    
<input type="submit" value="Cadastrar" class="btnFormulario"/>
    </form>
    <div id="termo">
        Ao clicar em cadastrar você está ciente de todos os <a href="#">termos</a> do site.
    </div>
    </div>
  </div>
</div>

<div id="rodape">
    Pro IG - Sistema de cadastro da raça Índio Gigante © 2016 
</div>

 </body>
 </html>

Neste caso, minha linha 47 é justamente a que vc mandou colocar, o print_r

Compartilhar este post


Link para o post
Compartilhar em outros sites

não e $pegarUser e $pegaUser. altera lá e tenta novamente.

Desculpe minha falta de atenção

 

Apareceu isso:

 

loginPDOStatement Object ( [queryString] => SELECT * FROM 'usuarios' WHERE 'senha' = ? )

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe amigo, leia se email, senha
Troquei todo o codigo por senha ao inves de email, vou mandar o codigo corrigido

PDOStatement Object ( [queryString] => SELECT * FROM 'usuarios' WHERE 'senha' = ? )

<?php
session_start();
include_once "defines.php";
require_once('classes/BD.class.php');
BD::conn();

    define('url', 'http://localhost/proig.com.br');
    $paginas = array ('plataforma','','','');
    $url = explode ('/', $_GET['url']);
    $arquivo = $url[0];
    $identificador = $url[1];

error_reporting(E_ALL);

ini_set('display_errors', 1);
    ?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Pro IG - Sistema de gerenciamento e controle de Indio Gigante</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="<?php echo url?>/css/estilo.css"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body>


<div id="wrapper">
  <div id="acesso">
    <div id="login">
    <div id="logoInicial"></div>
	<h1 class="tituloTxt">Acessar Plataforma</h1>
   
   <?php
        if(isset($_POST['acao']) && $_POST['acao'] == 'logar'){
            $senha = strip_tags(trim(filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_STRING)));
                if($senha == ''){
                    echo'informe sua senha';
                }else{
                    $pegaUser = BD::conn()->prepare("SELECT * FROM 'usuarios' WHERE 'senha' = ?");
                    $pegaUser->execute(array($senha));
                    
                    if($pegaUser->rowCount() == 0){
                        echo'Não encontramos sua senha';
                        print_r($pegaUser);
                    }else{
                        while($row = $pegaUser->fetch()){
                        $_SESSION['senha_logada'] = $senha;
                        $_SESSION['id_user'] = $row->id;
                        header("Location: plataforma.php");
                        
                    }
                }
        }    
        }

    ?>
    <form action="" method="post" enctype="multipart/form-data">
    <input type="password" name="senha" class="inputInicial2"/>
    <input type="submit" value="Entrar" class="btnInicial"/>
    <input type="hidden" name="acao"  value="logar" />
    </form>
    </div>

    <div id="formulario">
    <div id="logoInicial"></div>
        <form action="" method="post" enctype="multipart/form-data">
    <input type="text" name="nome" class="inputFormulario" placeholder="nome"/>
    <input type="text" name="sobrenome" class="inputFormulario2" placeholder="sobrenome"/>
    <input type="text" name="email" class="inputFormulario3" placeholder="email"/>
    <input type="text" name="login" class="inputFormulario3" placeholder="login"/>
    <input type="password" name="senha" class="inputFormulario3" placeholder="Senha"/>    
<input type="submit" value="Cadastrar" class="btnFormulario"/>
    </form>
    <div id="termo">
        Ao clicar em cadastrar você está ciente de todos os <a href="#">termos</a> do site.
    </div>
    </div>
  </div>
</div>

<div id="rodape">
    Pro IG - Sistema de cadastro da raça Índio Gigante © 2016 
</div>

 </body>
 </html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

abaixo dessa linha

$pegaUser = BD::conn()->prepare("SELECT * FROM 'usuarios' WHERE 'senha' = ?");

Coloca isso:

$pegaUser->bindParam(1, '$senha');

Fatal error: Cannot pass parameter 2 by reference inE:\sites\proig.com.br\index.php on line 43

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta fazer assim amigo... desculpe estou no trabalho e nem to testando so falando pra tu fazer kkk

$pegaUser = BD::conn()->prepare("SELECT * FROM 'usuarios' WHERE 'senha' = :senha");
$pegaUser->bindValue(':senha', $senha); //se não der assim, tenta com este outro
//$pegaUser->bindParam(':senha', $senha);

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.