Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Zeroql en 17 Junio 2011, 19:51 pm



Título: no me compara
Publicado por: Zeroql en 17 Junio 2011, 19:51 pm
bueno otra ves yo , si que canson yo se pero esto es lo mas charro de todo!!!

y no entiendo por que me pueden decir que tengo mal o k?

buneo recibo una variable por POST y ese solo es una letra Y o N y comparo para ver si se ingreso esto mismo. poer no me da

asi lo comparo!!!

Código
  1. if ($of<>'Y' or $of<>'N') {
  2. $msg.= "Solo se permite Y o N en el campo oferta<br/>"; }
  3. else { $ab=true; } //Contiene algun dato
  4.  
  5. if ($of!='Y' or $of!='N') {
  6. $msg.= "Solo se permite Y o N en el campo oferta<br/>"; }
  7. else { $ab=true; } //Contiene algun dato
  8.  

if ($of!='Y' or $of!='N') {
      $msg.= "Solo se permite Y o N en el campo oferta<br/>"; }
   else { $ab=true; } //Contiene algun dato

pero no me lo esta comparando siempre me muestra el $msg.

problema resuelto. pero tengo ese otro con las fechas.

Código
  1.  
  2. //validar que la fecha si este bien
  3. function validarfecha($input){
  4. global $msg;
  5. //Separadores de la fecha
  6. $separator_type= array(
  7.      "/",
  8.      "-",
  9.      "."
  10.    );
  11. $actdate=date('Y-m-d');
  12. //Seperar toda la fecha para por hacer un checkdate
  13.    foreach ($separator_type as $separator) {
  14.       $find= stripos($input,$separator);
  15.   $find2= stripos($actdate,$separator);
  16.       if($find<>false){ $separator_used= $separator; }
  17.    }
  18. $inputarray= explode($separator_used,$input);  //Separacion de la fecha ingresada
  19. $actinput= explode($separator_used,$actdate);  //Separacion de la fecha actual
  20.    if (!checkdate($inputarray[1],$inputarray[2],$inputarray[0])) {
  21.   $msg .="La fecha introducida es invalida <br/>";
  22. }else { $dtinput= $inputarray[1]."-".$inputarray[2]."-".$inputarray[0]; }
  23. if (!($inputarray[0]>$actinput[0]) or !($inputarray[1]>$actinput[1]) or !($inputarray[2]>$actinput[2])) {
  24. $msg .="La fecha no es superior a la actual <br/>";
  25. }
  26. $inputarray=array();
  27. $actinput=array();
  28. }

me tira el mensaje de que la fecha no es superior a al actual

de ante mano muchas gracias!!!


Título: Re: no me compara
Publicado por: Nakp en 17 Junio 2011, 19:55 pm
esto no es visualbasic o pseudocodigo xD

$variable != 'valor'

:P


Título: Re: no me compara
Publicado por: Zeroql en 17 Junio 2011, 19:57 pm
asi la tenia tambine y no me la compara tampoco


Título: Re: no me compara
Publicado por: Nakp en 17 Junio 2011, 20:01 pm
a ver...

Código
  1. if ($of != 'Y' || $of != 'N') {
  2. //do something
  3. } else {
  4. //do something else
  5. }

si quieres usar or usa OR estrictamente en mayusculas ;) para && es AND


Título: Re: no me compara
Publicado por: Zeroql en 17 Junio 2011, 20:50 pm
Tambien aplique este y sigue igual


Título: Re: no me compara
Publicado por: Shell Root en 17 Junio 2011, 20:59 pm
Pon nuevamente el código que tienes actual.


Título: Re: no me compara
Publicado por: Zeroql en 17 Junio 2011, 21:09 pm
Hola que tal
bueno, ya arregle el problema, y di una solucion difente, coloque en el form un select que sea Y o N y la comparacion la hice con numeros, y ya, la verdad es k no me quiero complicar mucho y me salen errores tras errores, pero bueno

Si pueden y encuentran el error en este come mejor por que no he podido encontrarlo yo me ayudarian mucho

lo que hace es comparar 2 fechas ingresadas

Código
  1.  
  2. global $msg;
  3. //Separadores de la fecha
  4. $separator_type= array( "/",  "-",  "." );
  5. //Seperar toda la fecha para por hacer un checkdate
  6. foreach ($separator_type as $separator) {
  7.   $find= stripos($input,$separator);
  8.   if($find<>false){ $separator_used= $separator; }
  9. }
  10. //Separacion de la fecha iniciada
  11. $inputarray= explode($separator_used,$input);
  12. if (!checkdate($inputarray[1],$inputarray[2],$inputarray[0])) {
  13.   $msg .="La fecha introducida es invalida <br/>";
  14. } else { $dtinput= $inputarray[1]."-".$inputarray[2]."-".$inputarray[0]; }
  15. $actdate=date('Y-m-d');
  16. //Seperar toda la fecha para por hacer un checkdate
  17. foreach ($separator_type as $separator) {
  18.   $find= stripos($actdate,$separator);
  19.   if($find<>false){ $separator_used= $separator; }
  20. }
  21. //Separacion de la fecha actual
  22. $actinput= explode($separator_used,$actdate);
  23. if (!($inputarray[0]>$actinput[0]) or !($inputarray[1]>$actinput[1]) or !  ($inputarray[2]>$actinput[2])) {
  24.   $msg .="La fecha no es superior a la actual <br/>";
  25. }
  26. $inputarray=array();
  27. $actinput=array();
  28.  


Título: Re: no me compara
Publicado por: Shell Root en 17 Junio 2011, 21:33 pm
Entonces ya no lo necesitas? Por el código anterior a este nuevo no hay nada... XD


Título: Re: no me compara
Publicado por: Zeroql en 17 Junio 2011, 21:39 pm
el que me compara las fehcas si lo necesito por que me sigue sin compararlas, el que compara Y o N ese ya no


Título: Re: no me compara
Publicado por: Nakp en 17 Junio 2011, 22:06 pm
no ves que cometes el mismo error??? <> NO EXISTE!!!! es !=


Título: Re: no me compara
Publicado por: Zeroql en 17 Junio 2011, 22:18 pm
Igual cambiandolo me presneta el mismo ERROR!!!
ya he probado muchas veces!!!


Título: Re: no me compara
Publicado por: Nakp en 17 Junio 2011, 22:48 pm
entonces te quedas con lo que consideras que es correcto? pfff de ahora en adelante postea todos tus codigos con != en vez de <> o asumiremos que en todo (absolutamente todo) el codigo posees el mismo error y por eso no compara, se puede corregir el codigo pero no tu terquedad con el comparador inexistente, por lo tanto dudo mucho que podamos ayudarte eficientemente

http://www.php.net/manual/es/language.operators.comparison.php

y si te da un error, deberia darte un mensaje ;) procura publicarlo porque no somos adivinos :/


Título: Re: no me compara
Publicado por: Zeroql en 17 Junio 2011, 23:00 pm
Mira Nakp de cualquiera de las 2 formas que lo haga me SIGUE  presentando el mismo error!!!
por que ese code como esta con <> lo saque de una pagina de comparacion de fechas y SABES, cunado lo corri me funciono bien  cuando separo el texto en fragmentos, como se entiende bien hace el explode.

ahh y si miras bien  el manual de php encontraras esto  y cito del enlace que publicasteis:

Citar
$a != $b   Diferente   TRUE si $a no es igual a $b después de la manipulación de tipos.
$a <> $b   Diferente   TRUE si $a no es igual a $b después de la manipulación de tipos.

PRIMERO MIRA LOS ENLACES ANTES DE PUBLICARLOS NO???


ademas si tanto SABES DE PHP, entonces no deberias de hacer tales argumentos no???


Cambiando un poco de tema!!!
A alguien le ah funcionado el code comparado fechas???

yo sigo sin encontrar ningun error!!!


Título: Re: no me compara
Publicado por: Nakp en 17 Junio 2011, 23:11 pm
jajajaja lo siento x'D es costumbre de programar en C u_u acepto mi error :P

en fin.. puedo preguntar como le pasas la fecha? ñ_ñ

yo pienso que deberias usar estos formatos :P

http://www.php.net/manual/en/datetime.formats.date.php

y usar un codigo como este :P

Código
  1. $date = date_create('06/19/2011');
  2. $now = date_create('now');
  3.  
  4. if ($date < $now)
  5. echo "la fecha es anterior a la actual \n";
  6. else
  7. echo "la fecha no es anterior a la actual \n";
  8. ?>


Título: Re: no me compara
Publicado por: Zeroql en 18 Junio 2011, 02:32 am
bueno contestando a tu pregunta, la paso por una variable que recibe un $_post, es la fecha ingresada, y debo compararla con la actual, mmm por falta de tiempo no puedo probar en este momento tu proposicion de actividad, pero mañana a primera hora la probare, y te cuento como me fue
saludos


Título: Re: no me compara
Publicado por: Nakp en 18 Junio 2011, 03:11 am
me referia al formato xD hay varias formas de escribir la fecha, y esa funcion trabaja con uno especifico