Jump to content

Recommended Posts

Olá, estou tentando criar um formulario de cadastro e login. Porém está dando erro.

Código abaixo:

cadastrar.php

<?php
include "config.php";

$nome = $_post['nome'];
$sobrenome = $_POST['sobrenome'];
$email = $_POST['email'];
$usuarios = $_POST['usuarios'];
$info = $_POST['info'];


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 = mysql_fetch_array($sql_email_check);
$uReg = mysql_fetch_array($sql_usuarios_check);
$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@teusite.com.br>";
$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}'>
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!";
}
}
}
?>

Erro:

 

Notice: Undefined variable: _post in E:\xampp\htdocs\cadastro\cadastrar.php on line 4

Notice: Undefined index: sobrenome in E:\xampp\htdocs\cadastro\cadastrar.php on line 5

Notice: Undefined index: email in E:\xampp\htdocs\cadastro\cadastrar.php on line 6

Notice: Undefined index: usuarios in E:\xampp\htdocs\cadastro\cadastrar.php on line 7

Notice: Undefined index: info in E:\xampp\htdocs\cadastro\cadastrar.php on line 8

 

 

Alguém pode me ajudar?

Edited by geysasz

Share this post


Link to post
Share on other sites

Bom dia ! Leia este tópico: http://forum.imasters.com.br/topic/542539-atencao-orientacoes-e-regras-do-forum-de-php/

 

Em ORIENTAÇÕES, no 4 ítem.

  • +1 1

Share this post


Link to post
Share on other sites

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> 

modifiquei o código de cadastrar.php para:

<?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@teusite.com.br>";
$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}'>
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!";
}
}
}
?>

e agora dá este erro:

Warning: mysqli_query() expects at least 2 parameters, 1 given in E:\xampp\htdocs\cadastro\cadastrar.php on line 35

Warning: mysqli_error() expects exactly 1 parameter, 0 given in E:\xampp\htdocs\cadastro\cadastrar.php on line 35

Edited by geysasz

Share this post


Link to post
Share on other sites

Você está usando na query a função

mysql_ *

para fazer as buscas, em seguida tenta fazer a mesma coisa com o

mysqli_ *

Além das funções serem diferentes, você não pode fazer isso:

$var = mysql_query("...."); 

e depois tentar executar novamente:

mysqli_query($var);

Faça apenas uma instrução, e com mysqli_* assim: mysqli_query("...");

Share this post


Link to post
Share on other sites

Analise seu código com calma, você está simplesmente repetindo as funções, e está utlizando a extensão descontinuada do mysql que é a função mysql_ o correto é mysqli_

Share this post


Link to post
Share on other sites

Estava observando e realmente eu estava misturando o mysql_ e mysqli_ .. alterei tudo para mysqli_ porém o erro continua.

 

cadastrar.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 = mysqli_query("SELECT COUNT(id) FROM usuarios WHERE email='{$email}'");
$sql_usuario_check = mysqli_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 = mysqli_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 = mysqli_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@teusite.com.br>";
$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}'>
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!";
}
}
}
?>

Erro:

 

Warning: mysqli_query() expects at least 2 parameters, 1 given in E:\xampp\htdocs\cadastro\cadastrar.php on line 28

Warning: mysqli_query() expects at least 2 parameters, 1 given in E:\xampp\htdocs\cadastro\cadastrar.php on line 29

Warning: mysqli_query() expects at least 2 parameters, 1 given in E:\xampp\htdocs\cadastro\cadastrar.php on line 31

Warning: mysqli_error() expects exactly 1 parameter, 0 given in E:\xampp\htdocs\cadastro\cadastrar.php on line 31

Share this post


Link to post
Share on other sites

Primeiro leia o erro:

mysqli_query() expects at least 2 parameters, 1 given

mysqli_query() espera ao menos 2 parâmetro, 1 dado

 

Ai vamos ler o manual:

http://php.net/mysqli_query

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

 

Ou seja, primeiro parâmetro, link da conexão, segundo parâmetro, query propriamente dita (o que está entre [ ] é opcional)... olhando para a sua query:

$sql_email_check = mysqli_query("SELECT COUNT(id) FROM usuarios WHERE email='{$email}'");

Fica claro que não existe a parte do link da conexão.

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 Ygor Silva
      Boa tarde gente. Tenho meu site em Mobirise, pra pegar leads. 
      Ao cliente clicar em enviar ele só mostra a mensagem de "obrigado, aguarde nosso contato". 
      Eu gostaria que em vez disto, ele encaminhasse ele pra página de obrigado.
      Já tentei um mente de coisas mas não funcionou.
       
      Segue abaixo o código. Este meu formulário é formoid.
      <div data-form-type="formoid">                     <!---Formbuilder Form--->                     <form action="https://mobirise.com/" method="POST" class="mbr-form form-with-styler" data-form-title="Mobirise Form"><input type="hidden" name="email" data-form-email="true" value="A6LDZwZh8SsHY2SXE5G0uDeobTt+vGAPyztLTpaFnJ3YS523L+3ekb+dfC0ljSO2ENKcG2x7MzCrFsvX6BsE84UN+iQwUvASww4aTuqS7DVv4QO8axCqYvnhYxsAOEpX">                         <div class="row">                             <div hidden="hidden" data-form-alert="" class="alert alert-success col-12">Obrigado por deixar seu contato. Em breve ligaremos pra você.</div>                             <div hidden="hidden" data-form-alert-danger="" class="alert alert-danger col-12">                             </div>                         </div>                         <div class="dragArea">                             <div class="col-md-6  form-group" data-for="name">                                 <input type="text" name="name" placeholder="Seu nome" data-form-field="Name" required="required" class="form-control input display-7" id="name-form4-d">                             </div>                             <div class="col-md-6  form-group" data-for="phone">                                 <input type="text" name="phone" placeholder="Telefone" data-form-field="Phone" required="required" class="form-control input display-7" id="phone-form4-d">                             </div>                             <div data-for="email" class="col-md-12  form-group">                                 <input type="text" name="email" placeholder="E-mail" data-form-field="Email" class="form-control input display-7" required="required" id="email-form4-d">                             </div>                                                          <div class="col-md-12 input-group-btn  mt-2 align-center"><button type="submit" class="btn btn-primary btn-form display-4" href="obrigado.html#header3-2j">ENVIAR</button></div>                         </div>                     </form><!---Formbuilder Form--->                 </div>  
    • By Good
      Boa tarde,
       
      temos um servidor na amazon, e o site está direcionado para o servidor. Estamos tendo um problema, de vez em quando o servidor cai. 
       
      Gostaríamos de saber se tem algum programa no ubuntu, que monitore qual arquivo que teve alto consumo. Para sabermos se o código está escrito de maneira complexa, causando a queda do servidor.
       
      Eu lembro que uma vez a hostgator mandou um relatório, avisando que tal arquivo estava consumindo muito do servidor. É possível fazer esse monitoramento? Não temos como ficar 24h olhando por exemplo o htop..
       
      Aguardo uma resposta,
      obrigado!
    • By Marcos RJ
      Caros colegas. Tudo bem?
       
      Tenho uma loja virtual do qual tem foi integrado o Paypal. Para isso, fiz dessa forma. 
       
      $statusCompras = "<form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\">            <input type=\"hidden\" name=\"cmd\" value=\"_xclick\" />            <!--Vendedor e URL de retorno, cancelamento e notificação-->            <input type=\"hidden\" name=\"business\" value=\"vendas@sitecliente.com.br\" />            <input type=\"hidden\" name=\"return\" value=\"http://www.sitecliente.com.br/retorno/\" />            <!--Internacionalização e localização da página de pagamento-->            <input type=\"hidden\" name=\"charset\" value=\"utf-8\" />            <input type=\"hidden\" name=\"lc\" value=\"BR\" />            <input type=\"hidden\" name=\"country_code\" value=\"BR\" />            <input type=\"hidden\" name=\"currency_code\" value=\"BRL\" />            <!--Informações sobre o produto e seu valor-->            <input type=\"hidden\" name=\"amount\" value=\"".$valorCarrinho."\">            <input type=\"hidden\" name=\"item_name\" value=\"Servico\" />            <input type=\"hidden\" name=\"item_number\" value=\"".$jmNumPedido->NumPedido."\">            <input type=\"hidden\" name=\"quantity\" value=\"1\" />";            $statusCompras .= "<button type='submit' class='btn btn-danger' style='color: #FFF; font-weight: bold'>";            $statusCompras .= "Aguardando Pagamento<br>";            $statusCompras .= "<span style='font-weight: normal'>Para efetuar seu pagamento<br>clique aqui!</span>"; Estou passando o número do pedido pelo item_number, porém o cliente está reclamando que não está conseguindo identificar a compra, pois muitos deles acabam se logando com os dados de terceiros e também acabam usando o cartão de terceiros. Minha intenção era passa o número do pedido pelo item_number para facilitar a identificação, mas acho que não funcionou. Alguém poderia me ajudar nisso? Sei que existe API, mas estou tendo dificuldades nisso. 
       
      Muito obrigado!!
    • By asacap1000
      Galera estou com uma dúvida, tenho a parte de envio de dados para em Post, com encode json e curl. Já pesquisei em todos os lugares e não encontrei nada pra clarear as idéias.
       
      a parte final é essa do envio (cliente)
      header("Content-Type: ".$mediaType); $headers = array(); $headers[] = "Accept: ".$mediaType; $headers[] = "Accept-Charset: ".$charSet; $headers[] = "Accept-Encoding: ".$mediaType; $headers[] = "Content-Type: ".$mediaType.";charset=".$charSet; $headers[] = "Authorization: Basic ".$AuthorizationHeaderBase64; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,"contatos=$contatos"); #campos que serão enviados curl_setopt($ch, CURLOPT_USERPWD, $AuthorizationHeaderBase64); curl_setopt($ch, CURLOPT_HEADER, $headers); curl_setopt($ch, CURLINFO_HTTP_CODE, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);#ativa se for ter retorno do chamada $result = curl_exec($ch); $result2 = json_decode($result,true); curl_close($ch); if($result2 === false) { $err = 'Curl error: ' . curl_error($ch); $result2 = $err; echo "This is text".$err; } var_dump ($result2);  
      Preciso de ajuda para entender como deve ser feito a página que será chamada, no caso lado servidor.
       
      Como pode ver tenho um header configurado e será enviado com chave de autorização agora como isso é feito do lado servidor??
       
      Se alguém puder me ajudar, preciso entregar este webservice sexta feira 18/10. Todos os dados recebidos serão salvos no BD Oracle.
       
       
×

Important Information

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