Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Matheus Bombardi

RESOLVIDO Erro de acesso no Banco de Dados PHP

Recommended Posts

Fala galera, beleza?

 

Estou fazendo o meu TCC do téc. de informática e empaquei numa parte bizonha...

 

Estudei PHP Mysql ao longo do curso, porém quando fui fazer o meu tcc eu percebi que quando eu uso a linha mysql (pra fazer conexão com o banco) da erro laranja, fui ler sobre e agora se usa PDO ou MySqli...

 

Estou fazendo um site, o cadastro está Ok, porém quando vou fazer o login da erro por causa desse acesso ao banco, pois eu usava mysql e agora não permite mais... O que posso fazer?

 

Caso não entendam muito bem, me avisem que tento explicar e mostrar melhor...

 

valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Matheus Bombardi, primeiramente seja bem vindo.

 

Então o MySQL está obsoleto. por essa razão você deve usar o MySQLi.  a sintaxe em si não muda.. só alguns detalhes.

Use o PDO se for desenvolver em orientada a objetos... 

 

A única diferencia real dos dois (mysql e mysqli) são a forma como você conecta no banco. exemplo:

 

MySQL:

$conexao = mysql_connect("localhost", "usuario","senha");$banco = mysql_select_db("nome do banco", $conexao);

No MySQLi:

$conexao = mysqli_connect("localhost", "usuario", "senha", "nome do banco");

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dif , obrigado pelas saudações... vamos ao erro...

<?	include "conection.php";	$login = $_POST['log'];	$senha = $_POST['senha'];		$sql = mysqli_query("SELECT * FROM usuario WHERE login = '$login'");	while($linha = mysql_fetch_array($sql)){		$senha_db = $linha['senha'];		}	$cont = mysql_num_rows($sql);		if($cont == 0){		echo "			<meta http-equiv='refresh' content='0; url=saojudastadeu.php' />			<script type='text/javascript'>alert('Login Inválido')</script>		";		}else{		if($senha_db != $senha){				echo "			<meta http-equiv='refresh' content='0; url=saojudastadeu.php' />			<script type='text/javascript'>alert('Senha Inválida')</script>		";		}else{			session_start();			$_SESSION['login_usuario'] = $login;			$_SESSION['senha_usuario'] = $senha;			header("Location: perfil.php");				}	}	mysql_close($sql);?>

este é o meu código que pega os dados do banco e tenta fazer login... 

 

na janela de cadastro, o cadastro é feito tranquilamente e é contabilizado no banco de dados... porém quando vou fazer o login, da estes erros abaixo...

 

AYQFcCg.png

 

Obs. 

 

O include que eu dou é de outra janela que contem este código...

<?php$db = new mysqli ('localhost', 'root','', 'login_senha');?>

lembrando que, login_senha é o nome do meu banco de dados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então,

Vamos aos erros.

 

Os 3, acusam que está faltando um parâmetro, que é obrigatório quando se usa o MySQLi.

 

No seu include, altere para:

$conexao = mysqli_connect("localhost", "root", "", "login_senha");

Na linha 8, está faltando a senha na instrução SQL

"SELECT * FROM usuario WHERE login = '$login' and senha = '$senha'

Na linha 9, acrescente a variável da conexão: ( perceba que você está utilizando o mysql ao invés de mysqli

$linha = mysqli_fetch_array($sql, $conexao)

Na linha 14, a mesma coisa,  use o mysqli ao invés do mysql e acrescente a variável da conexao.

 

Na linha 28, jogue o session_start() lá para cima..  deve ser a primeira coisa.

Na linha 34 a mesma coisa também..  altere para mysqli

 

e por fim, evite de usar o short tag do php. 

 

utilize:

<?php?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dif , fiz o que foi dito e o código ficou assim... 

<?php	session_start();	$conexao = mysqli_connect("localhost","root","","login_senha");	$login = $_POST['log'];	$senha = $_POST['senha'];		$sql = mysqli_query("SELECT * FROM usuario WHERE login = '$login' and senha = '$senha'");	while ($linha = mysqli_fetch_array($sql, $conexao)){		$senha_db = $linha['senha'];		}	$cont = mysqli_num_rows($sql, $conexao);		if($cont == 0){		echo "			<meta http-equiv='refresh' content='0; url=saojudastadeu.php' />			<script type='text/javascript'>alert('Login Inválido')</script>		";		}else{		if($senha_db != $senha){				echo "			<meta http-equiv='refresh' content='0; url=saojudastadeu.php' />			<script type='text/javascript'>alert('Senha Inválida')</script>		";		}else{						$_SESSION['login_usuario'] = $login;			$_SESSION['senha_usuario'] = $senha;			header("Location: perfil.php");				}	}	mysqli_close($sql, $conexao);?>

porém acusa erro ainda...

 

xkBuawx.png

Editado por Matheus Bombardi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

<?php	session_start();	$conexao = mysqli_connect("localhost","root","","login_senha");	$login = $_POST['log'];	$senha = $_POST['senha'];		$sql = mysqli_query($conexao, "SELECT * FROM usuario WHERE login = '$login' and senha = '$senha'");		$cont = mysqli_num_rows($conexao, $sql);		if($cont == 0):		echo "			<meta http-equiv='refresh' content='0; url=saojudastadeu.php' />			<script type='text/javascript'>alert('Login ou senha inválida')</script>";		else:			    while ($linha = mysqli_fetch_array($conexao, $sql)):		  $_SESSION['login_usuario'] = $login;		  $_SESSION['senha_usuario'] = $senha;		  header("Location: perfil.php");			    endwhile;			       endif;      mysqli_close($sql, $conexao);?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente o mesmo código que postei acima,  mas com a diferença na linha 13, retirar o $conexao.

 

acho que isso deve sanar o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dif

 

Tu é mestre! Agora ta tudo funcionando perfeitamente... Notei que não era preciso citar o $conexão ao lado do $sql, pois na linha do sql já mencionava o conexão... fiz isso e passou lisinho... valeu mesmo pela ajuda... logo mais, caso tenha mais dúvidas, posso te chamar de novo? :P

 

valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro. sinta-se a vontade.

Por gentileza  marque o post que melhor ajudou no seu problema como resolvido para finalizar o tópico.

Editado por dif

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×