Ir ao conteúdo
  • Cadastre-se

Erro de acesso no Banco de Dados PHP


Ir à solução Resolvido por DiF,

Posts recomendados

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!!

Link para o comentário
Compartilhar em outros sites

  • Moderador

@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");
Link para o comentário
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...

Link para o comentário
Compartilhar em outros sites

  • Moderador

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?>
Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

  • Moderador
  • Solução

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);?>
Link para o comentário
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!!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...