Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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
nossa mano você fez uma parafernália nessa conexão com banco de dados, não precisa fazer tudo isso para se conectar.
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.
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>
https://secure.php.net/manual/pt_BR/mysqli.query.php
Faça da forma orientada a objetos seguindo o exemplo #1