Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo01

Ajuste de Script

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.