Field 'lastiplog' doesn’t have a default value

Asked

Viewed 1,195 times

0

I’m experiencing this error when registering Field 'lastiplog' doesn’t have a default value: Code Register.php

<? ob_start();
session_start();
?>
<left><left></left></left>
<? include('header.php'); ?>
<section id="container" class="container_12">

<section class="grid_8">
    <div class="box">
        <div class="title">Registro: Todos os campos são obrigatórios.</div>        
        <div class="inside">
            <div class="in">




<?

if(isset($_COOKIE["usNick"]) && isset($_COOKIE["usPass"]))
{

?>



<? header("location: index.php"); ?>


<? exit(); } ?>



<?



// incluimos archivos necesarios

require('config.php');
//require('admin/funciones.php');

if (isset($_POST["username"])) {

if( strtolower($_POST['code'])!= strtolower($_SESSION['texto'])){ 

header("location: register.php?code=erro");


 exit();
}


// Declaramos las variables

$username = $_POST["username"];
$password = $_POST["password"];
$cpassword = $_POST["cpassword"];
$email = $_POST["email"];
$cemail = $_POST["cemail"];
$pemail = $_POST["pemail"];
$country = $_POST["country"];


// comprobamos que no haya campos en blanco

if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL|$pemail==NULL) {
header("location: register.php?campos=erro");
}else{


// sanitizamos las variables

$username = uc($username);
$password = uc($password);
$cpassword = uc($cpassword);
$email = limpiar($email);
$cemail = limpiar($cemail);
$pemail = limpiar($pemail);
$country = limpiar($country);


// limitamos el numero de caracteres

$username=limitatexto($username,15);
$password=limitatexto($password,15);
$cpassword=limitatexto($cpassword,15);
$email=limitatexto($email,100);
$cemail=limitatexto($cemail,100);
$pemail=limitatexto($pemail,100);
$country=limitatexto($country,15);


// comprobamos que tengan un minimo de caracteres

minimo($username);
minimopass($password);


// ¿Coinciden las contraseñas?
if($password!=$cpassword) {
header("location: register.php?senha=erro");
}else{


// ¿Coinciden los emails?
if($email!=$cemail) {
header("location: register.php?email=erro");
}else{


// Comprobamos que sea un email valido
ValidaMail($email);


// Comprobamos que sea un email valido
ValidaMail($pemail);





// Comprobamos que no se haya creado otra cuenta desde la misma ip

$laip = getRealIP();


if($laip!="127.0.0.1")
{

    $checkip = mysql_query("SELECT ip FROM tb_users WHERE ip='$laip'");
    $ip_exist = mysql_num_rows($checkip);

}

if ($ip_exist>0) {
header("location: register.php?jacadastrado=erro");
}else{


// Comprobamos que el nombre de usuario, email y el email de paypal no existan

$checkuser = mysql_query("SELECT username FROM tb_users WHERE username='$username'");
$username_exist = mysql_num_rows($checkuser);

$checkemail = mysql_query("SELECT email FROM tb_users WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);

$checkpemail = mysql_query("SELECT pemail FROM tb_users WHERE pemail='$pemail'");
$pemail_exist = mysql_num_rows($checkpemail);

if ($email_exist>0|$username_exist>0) {
header("location: register.php?user_ou_email=erro");
}else{

if ($pemail_exist>0) {
header("location: register.php?email_pagseguro=erro");
}else{


// Si se ha introducido un referer comprobamos que exista

if ($_POST["referer"] != "") {

// Sanitizamos la variable

$referer = limpiar($_POST["referer"]);
$referer=limitatexto($referer,15);

$checkref = mysql_query("SELECT username FROM tb_users WHERE username='$referer'");
$referer_exist = mysql_num_rows($checkref);

if ($referer_exist<1) {
// En caso de no existir el referer damos un mensaje de error
header("location: register.php?indicador=erro");
exit();
}else{
// Si todo parece correcto procedemos con la inserccion
      $sqlz = "SELECT * FROM tb_users WHERE username='$referer'";
      $resultz = mysql_query($sqlz);        
      $myrowz = mysql_fetch_array($resultz);

$numero=$myrowz["referals"];

      $sqlex = "UPDATE tb_users SET referals='$numero' +1 WHERE username='$referer'";
      $resultex = mysql_query($sqlex);
}

}


// Si todo parece correcto procedemos con la inserccion

$joindate=time();

$query = "INSERT INTO tb_users (username, password, ip, email, pemail, referer, country, joindate) VALUES('$username','$password','$laip','$email','$pemail','$referer','$country','$joindate')";
mysql_query($query) or die(mysql_error());

header("location: register.php?conta=criada");



}
}
}
}
}
}

// En caso de no haber sido enviado los datos mostramos el formulario

}else{

?>
<?
if(isset($_GET["code"]) =="erro"){
echo'<div class="alert error_msg"><span class="alert_close"></span><strong>Erro: </strong>
Código de segurança incorreto!

</div>';
}
if(isset($_GET["campos"]) =="erro"){
echo'<div class="alert error_msg"><span class="alert_close"></span><strong>Erro: </strong>
Todos os campos são obrigatórios!

</div>';
}
if(isset($_GET["senha"]) =="erro"){
echo'<div class="alert error_msg"><span class="alert_close"></span><strong>Erro: </strong>
Senhas não combinam !

</div>';
}
if(isset($_GET["email"]) =="erro"){
echo'<div class="alert error_msg"><span class="alert_close"></span><strong>Erro: </strong>
Emails não combinam!

</div>';
}
if(isset($_GET["jacadastrado"]) =="erro"){
echo'<div class="alert error_msg"><span class="alert_close"></span><strong>Erro: </strong>
Você já tem uma conta criada em nosso sistema!

</div>';
}
if(isset($_GET["user_ou_email"]) =="erro"){
echo'<div class="alert error_msg"><span class="alert_close"></span><strong>Erro: </strong>
Usuário ou email já estão em uso!

</div>';
}
if(isset($_GET["email_pagseguro"]) =="erro"){
echo'<div class="alert error_msg"><span class="alert_close"></span><strong>Erro: </strong>
Email do pagseguro já esta em uso!

</div>';
}
if(isset($_GET["indicador"]) =="erro"){
echo'<div class="alert error_msg"><span class="alert_close"></span><strong>Erro: </strong>
Seu indicador não é um membro cadastrado!

</div>';
}
if(isset($_GET["conta"]) =="criada"){
echo'<div class="alert succes_msg"><span class="alert_close"></span><strong>Info: </strong>
Conta criada com sucesso!
Você pode fazer o login <a href="login.php">ENTRAR</a>
</div>';

}

?>
<form id="form_id1" class="formee" action="register.php" method="POST">
<div style="margin-left: 20%;">

 <label>Usuário:*</label>
    <input style="width: 400px" type='text' size='15' maxlength='25' name='username' autocomplete="off" value="" tabindex="1" class="validate[required]" id="field1" /></td>

  <label>Senha:*</label>
    <input style="width: 80px" type="password" size="25" maxlength="15" name="password" autocomplete="off" class="validate[required]" id="field2" value="" tabindex="1" />

    <label>Repetir Senha:*</label>
    <input style="width: 80px" type="password" size="25" maxlength="15" name="cpassword" autocomplete="off" class="validate[required]" id="field3" value="" tabindex="1" />

  <label>Email:*</label>
    <input style="width: 400px" type="text" size="25" maxlength="100" name="email" autocomplete="off" class="validate[required]" id="field4" value="" tabindex="1" />

    <label>Repetir Email:*</label>
    <input style="width: 400px" type="text" size="25" maxlength="100" name="cemail" autocomplete="off" class="validate[required]" id="field5" value="" tabindex="1" />

    <label>E-mail PagSeguro:*</label>
    <input style="width: 400px" type="text" size="25" maxlength="100" name="pemail" autocomplete="off" class="validate[required]" id="field6" value="" tabindex="1" />
  </center>
 <input type="hidden" size="25" maxlength="100" name="country" value="brasil"/>
  <input type="hidden" size="25" maxlength="15" name="referer" value="<? echo limpiar($_GET["r"]); ?>" autocomplete="off" class="field" value="" tabindex="1" />

  <label>Termos do Serviço(por favor leia e se não concordar não cadastre-se)</label>
    <textarea style="width: 400px" rows="7" cols="25" readonly>
Estes Termos de Serviço (Aceitação geral de Associação ou Aceitação de Associação) entre você (''Você'', ''Membro'', ''Usuário'' ou ''Anunciante'') e <? include('sitename.php'); ?> apontam os termos de sua associação. Você deve ler, entender e aceitar os termos e condições desta Associação deixando marcado ''Eu, declaro que aceito os termos''. Se você não concorda com todos os termos e condições desta Associação <? include('sitename.php'); ?> hesita permitir que Você se torne um Membro.

1)  Enviar e-mails a pessoas com as quais não tem contato, pedindo a elas para entrar no <? include('sitename.php'); ?> não é apenas contra a nossa política, mas é ilegal. Nós não toleramos SPAMs e se recebermos UM ÚNICO aviso de que você está usando deste tipo de prática, nós verificaremos o incidente e se for verídico apagaremos todos os fundos de sua conta. Se você for reportado como SPAMMER por uma segunda vez, verificaremos o segundo incidente e tomaremos as medidas necessárias para encerrar a conta.

2)  Você só pode ter uma conta. Não tente criar mais de uma conta ou todas as suas contas serão encerradas. Você jamais precisará de outra conta. Se você perdeu sua informação de login, a única coisa a fazer é solicitar a senha e ela será enviada a você por e-mail.

3)  Você pode indicar outras pessoas em sua casa, porém apenas UM membro POR computador.

4)  Nós temos direitos de suspender ou encerrar sua conta a qualquer momento, por qualquer motivo e sem aviso. Se nós decidirmos por notificar, nós vamos notificá-lo por e-mail. Se você for pego tentando usar o sistema de forma ilegal (cheat), sua conta será encerrada sem aviso e seu e-mail será suspenso definitivamente.

5)  Os pagamentos são feitos através do sistema PagSeguro e nenhum outro método está sendo usado neste momento. Seus pagamentos serão processados em até 3 dias úteis para membros premium e até 30 dias para membros Free. Para resgatar fundos, você deve ter pelo menos R$ 10,00 acumulados.

6)  Você deve ter um endereço de e-mail válido e uma conta válida do PagSeguro para registrar com nosso programa. Todos os endereço de e-mail são verificados e o sistema não terminará seu cadastro enquanto você validá-lo. Um e-mail de verificação será enviado durante o registro.

7)  Atualmente pagamos R$ 0,01 por cada site que você visitar a partir dos anúncios e R$ 0,005 por cada site que seu indicados visitarem da mesma forma.

8)  Você pode ter quantos indicados puder e você recebe por todos aqueles que você indicar DIRETAMENTE.

9)  Taxas de anúncio são pagas somente por PagSeguro. PagSeguro aceita todos os grandes cartões de crédito e bancos.

10) Ao entrar no <? include('sitename.php'); ?>, você assume que cumprirá o pagamento de impostos que possam vir a ser pertinentes pelo seu governo.

11)  Você não é um empregado, tampouco um sócio do <? include('sitename.php'); ?> Nós simplesmente criamos uma ligação entre clientes e anunciantes. Você ou o <? include('sitename.php'); ?>. têm o direito de encerrar esta relação a qualquer momento.

12) Nós podemos mudar os Termos de Serviço a qualquer momento sem um consentimento prévio ou aviso. Avisos, quando pertinentes, serão enviadas através da área de estatísticas do <? include('sitename.php'); ?> ou enviado por e-mail a você.

                    </textarea>
                    <br /><br />
<input type="checkbox" name="vehicle" value="temos" class="validate[required]" id="field7"><span style="color:#990000;">Aceito todos os termos.<span>
                    <br /><br />

                    <center><img src="image.php?<?php echo $res; ?>" /></center>

 <center> <label>Código De Segurança:</label>
<input style="width: 80px;" type="text" size="5" maxlength="5" name="code" autocomplete="off" class="validate[required]" id="field8" value="" tabindex="1" onkeyup="this.value = this.value.toUpperCase();" />
 <p></p></center>
<input style="float:right;" type="submit" value="Cadastrar" class="submit" tabindex="4" />

</div>
</form>




<?
}
?>



</div>
</div>
</div>
</section>
<? include('menuleft.php'); ?>

</section>

<? include('footer.php'); ?>

And mysql tb_user:

--
-- Estrutura para tabela `tb_users`
--

CREATE TABLE IF NOT EXISTS `tb_users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(15) COLLATE latin1_general_ci NOT NULL,
  `password` varchar(100) COLLATE latin1_general_ci NOT NULL,
  `ip` varchar(15) COLLATE latin1_general_ci NOT NULL,
  `email` varchar(150) COLLATE latin1_general_ci NOT NULL,
  `pemail` varchar(150) COLLATE latin1_general_ci NOT NULL,
  `referer` varchar(15) COLLATE latin1_general_ci NOT NULL,
  `country` varchar(150) COLLATE latin1_general_ci NOT NULL,
  `visits` varchar(150) COLLATE latin1_general_ci NOT NULL DEFAULT '0',
  `referals` varchar(150) COLLATE latin1_general_ci NOT NULL DEFAULT '0',
  `referalvisits` varchar(150) COLLATE latin1_general_ci NOT NULL DEFAULT '0',
  `money` decimal(5,2) NOT NULL DEFAULT '0.00',
  `paid` varchar(150) COLLATE latin1_general_ci NOT NULL DEFAULT '0.00',
  `joindate` varchar(150) COLLATE latin1_general_ci NOT NULL,
  `lastlogdate` varchar(150) COLLATE latin1_general_ci NOT NULL,
  `lastiplog` varchar(150) COLLATE latin1_general_ci NOT NULL,
  `account` varchar(150) COLLATE latin1_general_ci NOT NULL,
  `user_status` varchar(15) COLLATE latin1_general_ci NOT NULL DEFAULT 'user',
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=28 ;

Does anyone know what it could be?

1 answer

1

Your INSERT does not include the column lastiplog, and Mysql does not know what value to store in it, since it cannot be NULL nor is there a default value set. See your column definition in CREATE TABLE:

`lastiplog` varchar(150) COLLATE latin1_general_ci NOT NULL,

You can change to:

`lastiplog` varchar(150) COLLATE latin1_general_ci NULL,

Or declare a default value (I don’t know if it makes much sense in this case):

`lastiplog` varchar(150) COLLATE latin1_general_ci NOT NULL DEFAULT '0.0.0.0',
  • Still gives the same mistake.

  • You recreated the table (or changed its definition)?

  • changed the table

  • thanks had wrong here, I’ve fixed it.

  • I really thought it was weird that it didn’t work out :)

Browser other questions tagged

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