Ir para conteúdo

POWERED BY:

Arquivado

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

First

erro BD::coon; & T_ENDIF;

Recommended Posts

Alguém me ajuda a resolver este erro por favor?

 

IMAGEM DO ERRO 1

OQIQ3II.png

IMAGEM DO ERRO 2

nqq1jpP.png

 

Vou deixar os códigos aqui

 

 

 

CÓDIGO: index.php

<?php
	session_start();
	include_once "config.php";
	require_once('classes/BD.class.php');
	BD::conn;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset="utf-8" />
<title>Entre no chat</title>
<style type="text/css">
	*{margin:0; padding:0;}
	body{background:#f4f4f4;}
	div#formulario{width:500px; padding:5px; height:100px; background:#fff; border: 1px solid #333;
	position:absolute; left:50%; top:50%; ; margin-top:-50px;}
	div#formulario span{font: 18px "Trebuchet MS", tahoma, arial; color:#036; float:left; width:100%; margin-bottom:10px;}
	div#formulario input[type=text]{padding:5px; width:485px; border: 1px solid #ccc; outline:none; font:16px tahoma, arial;
	color: #666;}
	div#formulario input[type=text]:focus{border-color:#036;}
	div#formulario input[type=submit]{padding:4px 6px; background:#069; font:15px tahoma, arial; color:#fff; border:1px solid #036;
	float:left; margin-top:5px; text-align:center; width:95px; text-shadow:#000 0 1px 0;}
	div#formulario input[type=submit]:hover{cursor:pointer; background:#09f;}
</style>
</head>

<body>
<?php
	if(isset($_POST['acao']) && $_POST['acao'] == 'logar');
		$email = strip_tags(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_STRING));
		
		if($email == ''){}else{
			$pegar_user = BD::conn()->prepare("SELECT id FROM `usuarios` WHERE email = ?");
			$pegar_user->execute(array($email));
			if($pegar_user->rowCount() == 0){
				echo '<script>alert("Usuário não encontrado")</script>';
			}else{
				$fetch = $pegar_user->fetchObject();
				$_SESSION['id_user'] = $fetch->id;
				echo '<script>alert("Login efetuado");location.href="chat.php"</script>';
			}
		}
		endif;
?>
<div id="formulario">
	<span>Digite o seu e-mail</span>
		<form action="" method="post" enctype="multipart/form-data">
			<label>
				<input type="text" name="email" />
			</label>
			<input type="hidden" name="acao" value="logar" />
			<input type="submit" value="Logar" />
		</form>
</div>

</body>
</html>

CÓDIGO: BD.class.php

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

Alguém me ajude a corrigir estes erros por favor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere

public function conn(){

para

public static function conn(){

Veja os exemplos do manual http://www.php.net/manual/pt_BR/control-structures.elseif.php#Hcom71982

 

 

Sobre o if com sintaxe alternativa, leia http://php.net/manual/pt_BR/language.oop5.paamayim-nekudotayim.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daniel Santos_171012 Sim, estou usando PDO na BD.class.php.

 

Evandro Oliveira Não resultou.

 

Marcos Xavier Também não resultou, continuo dando o mesmo erro.

 

 

PS: o erro da endif eu arrumei era só alterar para T_ENDIF;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifica se o seu método está como static

public static function conn(){

O formato do seu código ficará assim:

<?php
class BD{
    private static $conn="conn ok";
    public function __construct(){}
    
    public static function conn(){
        if(is_null(self::$conn)){
            self::$conn ="ok";
        }
        return self::$conn;
    }
}

echo BD::conn();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow valeu Marcos, erro sumiu mais quando eu digito um e-mail que esta cadastrado no banco de dados da erro usuário não encontrado tem como ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu arquivo de conexão você colocou bdname ao invés de dbname, verifique se é esse o motivo do erro.

self::$conn = new PDO('mysql:host='.HOST.';dbname='.BD.'', ''.USER.'', ''.PASS.'')

Compartilhar este post


Link para o post
Compartilhar em outros sites

BD.class.php - local: classes/BD.class.php

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

Config.php local: / - sua Raiz

 

<?php 


define('HOST','localhost');
define('USER','root');
define('PASS','');
define('DBSA','test');


?>

index.php local: / - sua Raiz

 

 

<?php
session_start();
include_once "config.php";
require_once('classes/BD.class.php');
BD::conn();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Entre no chat</title>
<style type="text/css">
*{margin:0; padding:0;}
body{background:#f4f4f4;}
div#formulario{width:500px; padding:5px; height:100px; background:#fff; border: 1px solid #333;
position:absolute; left:50%; top:50%; ; margin-top:-50px;}
div#formulario span{font: 18px "Trebuchet MS", tahoma, arial; color:#036; float:left; width:100%; margin-bottom:10px;}
div#formulario input[type=text]{padding:5px; width:485px; border: 1px solid #ccc; outline:none; font:16px tahoma, arial;
color: #666;}
div#formulario input[type=text]:focus{border-color:#036;}
div#formulario input[type=submit]{padding:4px 6px; background:#069; font:15px tahoma, arial; color:#fff; border:1px solid #036;
float:left; margin-top:5px; text-align:center; width:95px; text-shadow:#000 0 1px 0;}
div#formulario input[type=submit]:hover{cursor:pointer; background:#09f;}
</style>
</head>


<body>
<?php
if(isset($_POST['acao']) && $_POST['acao'] == 'logar'):
$email = strip_tags(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_STRING));


if($email == ''){ }
else{
$pegar_user = BD::conn()->prepare("SELECT id FROM `usuarios` WHERE email = ?");
$pegar_user->execute(array($email));
if($pegar_user->rowCount() == 0){
echo '<script>alert("Usuário não encontrado")</script>';
}else{
$fetch = $pegar_user->fetchObject();
$_SESSION['id_user'] = $fetch->id;
echo '<script>alert("Login efetuado");location.href="chat.php"</script>';
}
}
endif;
?>
<div id="formulario">
<span>Digite o seu e-mail</span>
<form action="" method="post" enctype="multipart/form-data">
<label>
<input type="text" name="email" />
</label>
<input type="hidden" name="acao" value="logar" />
<input type="submit" value="Logar" />
</form>
</div>


</body>
</html>

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.