Error in php code?

Asked

Viewed 100 times

3

Hello, I am trying to create a registration and login form. However, you are giving error.

Code below:

formulario_cadastro.php

<html>

<head>
<meta charset="UTF-8" />
<title>Formulário de Cadastro</title>
</head>

<body>

<h2>Formulário de Cadastro</h2> 
<form name="cadastro" method="post" action="cadastrar.php">

Nome:<br>
<input name="nome" type="text" id="nome" value="<?php echo $nome; ?>" /></br><br>

Sobrenome:<br>
<input name="sobrenome" type="text" id="sobrenome" value="<?php echo $sobrenome; ?>" /></br><br>

Email:<br>
<input name="email" type="text" id="email" value="<?php echo $email; ?>" /></br><br>

Nome de Usuário:<br>
<input name="usuarios" type="text" id="usuarios" value="<?php echo $usuario; ?>" /></br><br>

Mais informações sobre você:<br>
<textarea name="info" id="info" value="<?php echo $info; ?>"></textarea></br><br>

<input type="submit" name="Submit" value="Enviar" /></br>

</form>

</body>

</html> 



register.php

<?php
include "config.php";

$nome = isset( $_POST['nome'] ) ? $_POST['nome'] : 'valor_padrao';
$sobrenome = isset( $_POST['sobrenome'] ) ? $_POST['sobrenome'] : 'valor_padrao';
$email = isset( $_POST['email'] ) ? $_POST['email'] : 'valor_padrao';
$usuarios = isset( $_POST['usuarios'] ) ? $_POST['usuarios'] : 'valor_padrao';
$info = isset( $_POST['info'] ) ? $_POST['info'] : 'valor_padrao';


if ((!$nome) || (!$sobrenome) || (!$email) || (!$usuarios)){
echo "ERRO: <br /><br />";
if (!$nome){
echo "Nome é requerido.<br />";
}
if (!$sobrenome){
echo "Sobrenome é requerido.<br /> <br />";
}
if (!$email){
echo "Email é um campo requerido.<br /><br />";
}
if (!$usuarios){
echo "Nome de Usuário é requerido.<br /><br />";
    }
echo "Preencha os campos abaixo: <br /><br />";
include "formulario_cadastro.php";
}else{

$sql_email_check = mysql_query(
"SELECT COUNT(id) FROM usuarios WHERE email='{$email}'"
);
$sql_usuario_check = mysql_query(
"SELECT COUNT(id) FROM usuarios WHERE usuarios='{$usuarios}'"
);
$eReg = mysqli_query( $sql_email_check ) or exit( mysqli_error() );
$uReg = mysqli_query( $sql_usuarios_check ) or exit( mysqli_error() );
$email_check = $eReg[0];
$usuarios_check = $uReg[0];
if (($email_check > 0) || ($usuarios_check > 0)){
echo "<strong>ERRO</strong>: <br /><br />";
if ($email_check > 0){
echo "Este email já está sendo utilizado.<br /><br />";
unset($email);
}
if ($usuarios_check > 0){
echo "Este nome de usuário já está sendo
utilizado.<br /><br />";
unset($usuario);
}
include "formulario_cadastro.php";
}else{



function makeRandomPassword(){
$salt = "abchefghjkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 7){
$num = rand() % 33;
$tmp = substr($salt, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
$senha_randomica = makeRandomPassword();
$senha = md5($senha_randomica);

$info = htmlspecialchars($info);
$sql = mysql_query(
"INSERT INTO usuarios
(nome, sobrenome, email, usuarios, senha, info, data_cadastro)
VALUES
('$nome', '$sobrenome', '$email', '$usuarios', '$senha', '$info', now())")
or die( mysql_error()
);
if (!$sql){
echo "Ocorreu um erro ao criar sua conta, entre em contato.";
}else{
$id = mysql_insert_id();

$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "From: Teu Domínio - Webmaster<[email protected]>";
$subject = "Confirmação de cadastro - teusite.com.br";
$mensagem = "Prezado {$nome} {$sobrenome},<br />
Obrigado pelo seu cadastro em nosso site, <a href='http://www.teusite.com.br'>
http://www.teusite.com.br</a>!<br /> <br />
Para confirmar seu cadastro e ativar sua conta em nosso site, podendo acessar à
áreas exclusivas, por favor clique no link abaixo ou copie e cole na barra de
endereço do seu navegador.<br /> <br />
<a href='http://www.teusite.com.br/ativar.php?id={$id}&code={$senha}'>
http://www.teusite.com.br/ativar.php?id={$id}&code={$senha}
</a>
<br /> <br />
Após a ativação de sua conta, você poderá ter acesso ao conteúdo exclusivo
efetuado o login com os seguintes dados abaixo:<br > <br />
<strong>Usuario</strong>: {$usuarios}<br />
<strong>Senha</strong>: {$senha_randomica}<br /> <br />
Obrigado!<br /> <br />
Webmaster<br /> <br /> <br />
Esta é uma mensagem automática, por favor não responda!";
mail($email, $subject, $mensagem, $headers);
echo "Foi enviado para seu email - ( ".$email." ) um pedido de
confirmação de cadastro, por favor verifique e sigas as instruções!";
}
}
}
?>

Error:

Warning: mysqli_query() expects at least 2 parameters, 1 given in E:\xampp\htdocs\cadastro\cadastrar.php on line 36
Warning: mysqli_error() expects exactly 1 parameter, 0 given in E:\xampp\htdocs\cadastro\cadastrar.php on line 36
  • 1

    You are using mysql or mysqli ?

  • 3

    exactly that, as mentioned above. Either you use mysql or mysqli (which I recommend). Errors are happening because mysqli requires one more parameter in its functions than mysql. But to make this right in your entire code, use only one of the two, and the recommended is to use mysqli, since mysql is obsolete.

  • 2

    The error itself already explains almost everything. It follows the translation: Atenção: mysqli_query() espera ao menos 2 parâmetros, apenas 1 foi fornecido em E:\xampp\htdocs\cadastro\cadastrar.php na linha 36 and Atenção: mysqli_error() espera exatamente 1 parâmetro, nenhum foi fornecido em E:\xampp\htdocs\cadastro\cadastrar.php na linha 36 - You are missing for the variable indicating the connection in both cases (obtained in connect() - The PHP manual is your friend: http://php.net/manual/en/book.mysqli.php

  • 1

    I found a post here from Sopt that I believe is the solution to the problem: Update my Mysql code to Mysqli.

  • I’m using the mysqli

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.