Rodrigo01 1 Denunciar post Postado Janeiro 20, 2014 Pois bem pessoal eu fiz esse script abaixo <?php $selectMEMBRO = mysql_query("SELECT * FROM `membros` WHERE `login`='".$_COOKIE["login"]."'"); $membro = mysql_fetch_array($selectMEMBRO); $vefificar1 = ativado; $vefificar2 = desativado; $confirmar = $membro["adm3"]; if ($vefificar1 == $confirmar){ list($dia, $mes, $ano) = explode("/", $_POST["expiracao"]); $_POST["expiracao"] = $ano . '-' . $mes . '-' . $dia; $selectMEMBRO = mysql_query("SELECT * FROM `usuariosPremium` WHERE `id`='".$_GET["id"]."'"); $usuarioPremium = mysql_fetch_array($selectMEMBRO); extract($usuarioPremium); list($ano, $mes, $dia) = explode("-", $expiracao); $expiracao = $dia . '/' . $mes . '/' . $ano; $data = date ("Y-m-d"); list($ano, $mes, $dia) = explode("-", $data); $data = $dia . '/' . $mes . '/' . $ano; $data2 = date ("Y-m-d"); $dataExpiracao = $_POST["expiracao"]; if ($_POST["expiracao"] <= $usuarioPremium["expiracao"] or $_POST["expiracao"] == '0000-00-00' or $_POST["expiracao"] <= $data2 or $_POST["expiracao"] == $data2) { } else { mysql_query("UPDATE `usuariosPremium` SET `expiracao`='".$_POST["expiracao"]."', `contaPremium`='ON' WHERE `id`='".$_GET["id"]."'");} list($ano, $mes, $dia) = explode("-", $_POST["expiracao"]); $_POST["expiracao"] = $dia . '/' . $mes . '/' . $ano; ?> <?php if ($dataExpiracao <= $usuarioPremium["expiracao"] or $dataExpiracao <= '0000-00-00' or $dataExpiracao <= $data2 or $dataExpiracao == $data2) { ?> <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td align="left" valign="top"><table width="715" height="36" border="0" cellpadding="0" cellspacing="0" class="delete_campo"> <tr> <td width="39" height="36" align="left" valign="middle"> </td> <td width="676" align="left" valign="middle"> Você não pode por uma data igual ou menor a <?php echo $expiracao; ?> para atualizar a conta do Usuário <?php echo $login;?></td> </tr> </table></td> </tr> </table> <? } else { ?> <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td align="left" valign="top"><table width="715" height="36" border="0" cellpadding="0" cellspacing="0" class="aviso_campo"> <tr> <td width="39" height="36" align="left" valign="middle"> </td> <td width="676" align="left" valign="middle">A Conta do Usuário <?php echo $login; ?> foi Ativada com Sucesso ate <?php echo $_POST["expiracao"];?></td> </tr> </table></td> </tr> </table> <? } ?> A Mysql do Script referente a tabela UsuariosPremium CREATE TABLE `usuariosPremium` ( `id` int(255) NOT NULL AUTO_INCREMENT, `login` varchar(30) COLLATE latin1_general_ci NOT NULL, `senha` varchar(40) COLLATE latin1_general_ci NOT NULL, `locacoes` int(255) NOT NULL, `nomeCompleto` char(100) COLLATE latin1_general_ci NOT NULL, `idade` int(2) NOT NULL, `cidade` varchar(20) COLLATE latin1_general_ci NOT NULL, `estado` varchar(20) COLLATE latin1_general_ci NOT NULL, `sexo` char(10) COLLATE latin1_general_ci NOT NULL, `email` char(255) COLLATE latin1_general_ci NOT NULL, `ultimologinData` date NOT NULL, `ultimologinHora` time NOT NULL, `expiracao` date NOT NULL, `mensagem` text COLLATE latin1_general_ci NOT NULL, `assunto` char(255) COLLATE latin1_general_ci NOT NULL, `contaPremium` char(3) COLLATE latin1_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=10 ; INSERT INTO `usuariosPremium` VALUES(1, 'teste', 'teste', 88, 'Rodrigo', 29, 'Seila', 'Seila', 'Masculino', 'email@email.com', '2014-01-20', '15:43:25', '2015-05-10', '', '', 'OF No caso encontrei uma falha cabulosa nele o problema e este digamos que eu coloque a data de expiração para dia 29/02/2014 como fevereiro só vai ate 28/02/2014 o que acontece e o seguinte como a condição desta data no caso qualifica a confição if ($_POST["expiracao"] <= $usuarioPremium["expiracao"] or $_POST["expiracao"] <= '0000-00-00' or $_POST["expiracao"] <= $data2 or $_POST["expiracao"] == $data2) ela passa e da o UPDATE o que acontece e que quando salva o valor da banco de dados fica a 0000-00-00 na data gostaria de saber se teria alguma forma de tipo caso coloca-se valores inexistentes de datas que não existam teria como no caso manter o valor já existente no banco de dados o seja digamos que só pra testar eu tenha no banco de dados essa data 2014-01-20 e faça isso coloque esta data 2014-02-31 eu queria saber se tem como fazer da um aviso e manter a data certa no caso a 2014-01-20 Obs: Sei que tipo ninguem faria isso mais nunca se sabe ne rsrsrsrsrs Desde ja obrigada a todos. Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Guima 164 Denunciar post Postado Janeiro 20, 2014 Isso é validação, deve ser feita antes de qualquer coisa, e não colocado um tratamento para quando o valor vier errado. Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo01 1 Denunciar post Postado Janeiro 20, 2014 Isso é validação, deve ser feita antes de qualquer coisa, e não colocado um tratamento para quando o valor vier errado. Então como eu como e que eu poderia fazer isso teria como me ajudar ? Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Guima 164 Denunciar post Postado Janeiro 20, 2014 https://www.google.com.br/search?q=php+validar+data Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo01 1 Denunciar post Postado Janeiro 20, 2014 Ja fiz ja essa função abaixo em todo caso obrigada $data = explode("/", $_POST["expiracao"]); $d = $data[0]; $m = $data[1]; $y = $data[2]; // verifica se a data é válida! // 1 = true (válida) // 0 = false (inválida) $res = checkdate($m,$d,$y); if ($res == 1){ echo "data ok!"; } else { echo "data inválida!"; } Agora so vo integrar ao UPDATE e todo resto. Compartilhar este post Link para o post Compartilhar em outros sites