Jump to content
Júlio Marçal

Duvidas com msql_query

Recommended Posts

Gostaria de saber oque estou fazendo de errado.

ps: sou bem inexperiente, ja li algumas coisas mas nao cntendi muito bem



class Sql{
	public $host, $user, $pass, $query;

	public function __construct(){
		mysqli_connect($this -> host = 'localhost', $this -> user = 'root', $this -> pass = '' );
		mysqli_select_db('cadastro');
	}
	public function query($qr){
		$this -> query = mysqli_query($qr);
		return $this -> query;
	} 
	public function retornar(){
		return $this -> query;	
}
	} 
//$sql = new sql;
$nome = $_POST{'nome'};
$login = $_POST{'login'};
$pwd = $_POST{'senha'};
$text = $_POST;
    if(empty($nome)){
		echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
	}elseif(empty($login)){
		echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
	}elseif(empty($pwd)){
		echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
	}else{
		$query1 = mysqli_num_rows(mysqli_query("SELECT * FROM USUARIO WHERE LOGIN = '$login'"));
		if($query1 == 1){
			echo "<script>alert('Usuário já existe.'); history.back();</script>"; 
		}else{
			mysqli_query("insert into usuario (nome, login, senha,'NULL') values ('$nome','$login','$pwd','$text')");
			echo "<script>alert('Usuário cadastrado com sucesso.');</script>";
			//echo "<script>location.href='pagina-do-cliente-login.php';</script>"; 
		}
	} 

?>


Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\phpteste1\cadastro.php on line 30

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\phpteste1\cadastro.php on line 30

Notice: Array to string conversion in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\phpteste1\cadastro.php on line 34

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\phpteste1\cadastro.php on line 34
 

Share this post


Link to post
Share on other sites

Julio, a variavel $text ela nao tem o $_POST DEFINIDO? 


na parte de procura de login essa variavel $login qual é o valor que você esta definindo dentro dela? 


Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\phpteste1\cadastro.php on line 30

Share this post


Link to post
Share on other sites

nossa mano você fez uma parafernália nessa conexão com banco de dados, não precisa fazer tudo isso para se conectar.

:smirk:

a variavel $text ta sem valor

dica: caso queira aprender mais sobre banco de dados com melhor nível de segurança aprenda o PDO,

isso que você fez é fácil de um hacker fazer ataque com sql_inject ou CSRF.

  • +1 1

Share this post


Link to post
Share on other sites

Tenta assim

 

No config.php:
 

Conectando com PDO:

 

<?php
	
	$dsn = "mysql:dbname=cadastro; host=localhost";
	$dbuser = "root";
	$dbpass = "";

	try
	{
		$pdo = new pdo($dsn, $dbuser, $dbpass);
	}
	catch(PDOExceptio $e)
	{
		echo "Conexão falhou".$e->getMessage();
	}


?>

 

E no cadastro:

adicionar.php

 

<?php 
	
	require 'config.php';

	if(isset($_POST['nome']) && !empty($_POST['nome'])){
		$nome  = addslashes($_POST['nome']);
		$email = addslashes($_POST['email']);
		$senha = md5(addslashes($_POST['senha']));

		$sql = "INSERT INTO usuarios SET nome = '$nome', email = '$email', senha ='$senha'";
		$pdo->query($sql);
		
		echo "Cadastro realizado com sucesso!";

	}
?>

<form method="POST">
	Nome:<br />
	<input type="text" name="nome" /><br/><br/>
	E-mail:<br />
	<input type="text" name="email" /><br/><br/>
	Senha:<br />
	<input type="password" name="senha" /><br/><br/>
	<input type="submit" value="Cadastrar" />
</form>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Jefferson andre
      Saudações mestres,
       
      Como faço para ajustar o programa abaixo para calcular a diferença entre duas variaveis que armazenam horario no ajax quando ocorre um evento onblur?
       
      O programa funciona com numeros mas nao com tempo, depois que eu pegar a diferenca entre os horarios quero multiplicar por uma terceira variavel.
       
      <html> <body> <script> function calcular() { var num1 = Number(document.getElementById("hora_saida").value); var num2 = Number(document.getElementById("hora_entrega").value); var elemResult = document.getElementById("resultado"); if (elemResult.textContent === undefined) { elemResult.textContent = "O resultado eh " + String(num1 + num2) + "."; } else { // IE elemResult.innerText = "O resultado eh " + String(num1 + num2) + "."; } } </script> <label>Horario de saida</label> <input type ="time" name="hora_saida" id="hora_saida"onblur="calcular();"> <label>Horario da entrega</label> <input type ="time" name="hora_entrega" id="hora_entrega"onblur="calcular();"> <div id="resultado"></div> <span id="resultado"></span> </body> </html>  
    • By Gustavuh
      Boa tarde.
       
      Estou carregando os dados do usuário numa session.
       
      Na página de redirecionamento, jogo essa session para uma váriável.
       
      Quero por BEM VINDO, {nome_do_usuario}, mas aparece o erro UNDEFINED INDEX: USER_NAME.
       
      Segue codigo...
       
      if(!isset($_SESSION['userlogin'])){ unset($_SESSION['userlogin']); header("Location: index.php"); exit; }else{$userlogin = $_SESSION['userlogin'];} <img src="images/user.png" alt=""> <span> Bem vindo(a), <strong style="font-style: italic;"><?= $userlogin['user_apelido']; ?></strong></span> Como resolver esse caso tão simples?

    • By EstilloWeb
      Está ocorrendo um erro em meu comando MySQL na ordenação dos resultados. O código é o seguinte:
      $sql_imos4 = "Select DISTINCT imovel FROM propostas ORDER BY id DESC"; $exe_imos4 = mysqli_query($conexao, $sql_imos4); O objetivo é listar uma única vez um imóvel com proposta, mesmo que haja dois ou mais registros, sempre ordenado mais recente. O que está ocorrendo quando o imóvel tem mais de uma proposta cadastrada, a ordenação está sendo feita pelo ID da proposta mais antiga.
      Exemplo:
      imóvel ref. 4528 tem duas propostas, sendo que a mais recente tem o ID 235 porém aparece na listagem abaixo do imóvel ref. 4325, que tem uma só proposta e ID 230.
      O resultado deveria estar invertido neste caso.
      Onde pode estar o erro? Agradeço a ajuda.
    • By tii3030
      Olá, gostaria de saber qual a melhor maneira de selecionar e verificar a senha hash(senha) em um banco de dados e comparar com a senha inserida pelo usuário em um formulário de login. É mais adequado armazenar no BD o salt ? No exemplo abaixo eu criei o hash da senha antes de selecionar no banco:
      <?php include('conf.php'); $email = 'lala@123.com'; $senha = 'lala.123'; $custo = '08'; $salt = 'Cf1f11ePArKlBJomM0F6aJ'; $hash = crypt($senha, '$2a$' . $custo . '$' . $salt . '$'); $query_select = "SELECT email, password FROM usuarios WHERE email = '$email' AND password = '$hash'"; $select = mysqli_query($conexao,$query_select); if (mysqli_num_rows($select) == 1) { echo "Login Permitido"; } else { echo "Login ou senha invalidos"; } ?> Já neste exemplo eu selecionei o hash no banco para depois comparar com a senha inserida no formulário utilizando o password_verify():
      <?php #----------------- INCLUDING FILE --> "conf.php" include('conf.php'); if (isset($_POST['submit'])) { $email = mysqli_real_escape_string($conexao, $_POST['email']); $password = mysqli_real_escape_string($conexao, $_POST['password']); $query_select_email = "SELECT email FROM usuarios WHERE email = '$email'"; $select_email = mysqli_query($conexao,$query_select_email); $query_select_password = "SELECT password FROM usuarios"; $select_password = mysqli_query($conexao,$query_select_password); while($array = mysqli_fetch_array($select_password)) { $logarray = $array['password']; if (password_verify($password, $logarray) && mysqli_num_rows($select_email) == 1) { echo "Login permitido"; } } } ?> Aceito qualquer dica relacionado a segurança e para melhorar o código, desde já agradeço.
    • By tii3030
      Olá pessoal, desenvolvi um pequeno código em PHP com a função de verificar e validar usuário e senha de um formulário, juntamente com o meu banco de dados MySql.
      Gostaria de saber como aprimorar o meu código para torna-lo mais seguro e mais próximo de algo "profissional". Lembrando que minha senha no banco está criptografada (PASSWORD_BCRYPT).
       
      <?php
          #----------------- INCLUDING FILE --> "conf.php"
          include('conf.php');
              if (isset($_POST['submit'])) {
             
      #--------------------------------INPUTS ---------------------------------------------#
                  $email = mysqli_real_escape_string($conexao, $_POST['email']);
                  $password = mysqli_real_escape_string($conexao, $_POST['password']);
      #-----------------------#----------------------#-----------------_#-------------------#
                  $query_select_email = "SELECT email FROM usuarios WHERE email = '$email'";
                  $select_email = mysqli_query($conexao,$query_select_email);
                  $query_select_password = "SELECT password FROM usuarios";
                  $select_password = mysqli_query($conexao,$query_select_password);
                  while($array = mysqli_fetch_array($select_password)) {
                  $logarray = $array['password'];
                  
                      if (password_verify($password, $logarray)) {
                          if (mysqli_num_rows($select_email) == 1) {
                              
                          $_SESSION['email'] = $email;
                          header('location: XXX.html');
                          exit();
                          }
                      }
                      else {
                          echo "Loguin ou senha incorretos";
                      }
                  $logarray = '0';
                  }
              }
      ?>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.