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
You are using mysql or mysqli ?
– Rafael Mena Barreto
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.
– DiChrist
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
andAtençã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– Bacco
I found a post here from Sopt that I believe is the solution to the problem: Update my Mysql code to Mysqli.
– Bacco
I’m using the mysqli
– Pri