PHP - Ayuda con validacion

 
Vista:

Ayuda con validacion

Publicado por Noelia (8 intervenciones) el 18/08/2009 19:46:02
hola chicos... reescribo este post para que me ayuden resolver un codigo q no he podido solucionar, ya que he probado y probado y no hay caso. En una respuesta (agradecida) por Diego me puso que $operacion no tiene valor o asignado.....lo que kiero saber si esta bien asi como lo estoy haciendo, si esta mal ó se hace de otra forma. les dejo nuevamente mi explicacion

la cuestion es que tengo un archivo llamado validar.php (que valida los datos del formulario que hice), el cual me guarda perfectamente los datos (pasados por POST) en la BD, pero a su vez quiero que esos datos (POST) si cumplen con una condicion que yo establezco me lo guarde en otra BD (q tambien se guardan perfecto) pero no asi el nuevo valor q yo quiero que cumplan.

un Ej: al seleccionar en el formulario el tipo de operacion si es VENTA o ALQUILER (se guarda bien en la 1ra BD Venta ó Alquiler), ahora en operacion (pasado por POST) se selecciono VENTA, quiero que si.......

establezco condicion: $venta ó $v = 110; ó $alquiler ó $a = 075

Sí ....$operacion=$_POST['operacion'] es igual a VENTA ó ALQUILER tome el valor numerico y se guarde en la 2da BD en el campo operacion.

$v=110;
$a=075;

if ($_POST['operacion'] == ""){
$error['operacion'] = 'es un dato obligatorio'; (se guarda en la 1ra BD)

} if (($operacion == $v) or ($operacion == $a)){
$operacion = $fila['ope'];
$ope = $_POST['ope']; (se guarde en la 2da BD)
}

espero que me puedan ayudar, si es factible lo que pido ó se hace de otra forma, siendo q yo lo estoy haciendo directamente desde la validacion y no creando nuevos archivos...

desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con validacion

Publicado por Diego Romero (1450 intervenciones) el 18/08/2009 23:17:35
Pues lo que veo ahora es que $operacion contiene un tipo de dato string, mientras que $v y $a contienen tipos de dato integer. La comparación entre ambos siempre será falsa y por lo tanto el if relevante no se cumple nunca.

Tú misma lo dices:
Sí ....$operacion=$_POST['operacion'] es igual a VENTA ó ALQUILER tome el valor numerico...

Pero ¿dónde está ese valor numérico?, ¿en qué "$_POST"?, porque evidentemente en $_POST['operacion'] no está, ya que éste vale la cadena 'VENTA' o bién la cadena 'ALQUILER'.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con validacion

Publicado por noelia (8 intervenciones) el 19/08/2009 22:20:39
hola diego....
estuve averiguando y me estaba equivocando en los datos string e integer...ahora los cambie a " != " y hasta ahora mas o menos me esta tomando algo....pero no logro terminar de resolver...esto es lo que estuve haciendo...

a su vez agrego las variables
$venta = 110 ó
$alquiler=075.. para que luego cuando vaya al IF correspondiente y haga las comparaciones

ej: if (($_POST['operacion'] != $venta) or ($_POST['operacion'] != $alquiler)) {

EN ESTA PARTE NO LOGRO RESOLVERLO
}
else{

IGUAL QUE AQUI...SIMILAR AL ANTERIOR

}

espero q me entiendas y gracias por tus respuestas..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con validacion

Publicado por ElTecla (45 intervenciones) el 20/08/2009 02:02:20
Que tal Noelia.... vi mas o menos rapido lo que planteas y te sugiero lo siguiente:

cada vez que almacenes o compares valores recibidos por parametro trata de "limpiarlos" con alguna funcion de php... por ej:

1- Si recibis por post un dato alfanumerico al asignarlo a una variable hacele un trim:
$mi_variable = trim($_POST['mi_dato']);

2- al momento de comparar valores numericos, conviene limpiar los mismos con intval:

$var1 = 10;
$var2 = 15;

if( intval($var1) == intval($var2)){

....

}

no estoy seguro de que esto este causando tu problema.... pero de todas formas es una buena practica en la programacion

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con validacion

Publicado por Noelia (8 intervenciones) el 21/08/2009 16:41:29
Hola ELTECLA¡¡¡¡

gracias por la ayuda...ahora estoy un poco mas cerca, pero todavia no me ha dado el resultado que quiero. he tenido en cuenta que estoy comparando variables INTEGER y NUMERICAS...por eso pongo que son DISTINTAS.

realice lo siguiente:

If(($_POST['operacion'] != $venta) or ($_POST['operacion'] != $alquiler)) {

$_POS['venta'] = trim($_POST['operacion'];

}else{

$_POST['alquiler'] = trim($_POST['operacion'];

}

echo ($_POST);

me devuelve:

[venta] => alquiler

me tendria q mostrar que el indice sea igual a la seleecion y el resultado un numero, segun mis nuevas variables:

$venta = 110 ó
$alquiler = 075

en criollo (array):

$_POST['operacion'] => venta => 110 (ó segun seleccion)

$_POST['operacion'] => alquiler => 075

agradeceria tu ayuda y muchas gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con validacion

Publicado por Diego Romero (1450 intervenciones) el 21/08/2009 22:43:33
Muchacha, lo que acabas de escribir no tiene sentido. Una posición de un array (el que sea) no puede contener dos valores distintos al mismo tiempo.

Para mostrar el contenido de todo un array de una sola vez usa print_r() así:

echo "<pre>";
print_r($_POST);
echo "</pre>";

Pon este código como las primeras tres líneas de tu script y verás qué es exactamente lo que está llegando por POST a tu script.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar