PHP - Filtrado de variables en servidor

   
Vista:

Filtrado de variables en servidor

Publicado por Anibal (3 intervenciones) el 14/10/2014 14:27:57
Tengo un php que envio a mail con datos de form html
Tengo problemas para ordenar valores de variables mostradas en el mail enviado. Quiero ordenarlos de mayor a menor o alfabéticamente.
la recepción de los datos del form es la siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$numero = count($_POST);
$tags = array_keys($_POST);
$valores = array_values($_POST);
for($i=0;$i<$numero;$i++){
$$tags[$i]=$valores[$i];
   $message .= "$tags[$i]:\n$valores[$i]\n\n";
 }
 
$cabeceras = "From: $buyer_email\n". "Reply-To: $buyer_email\n";
$asunto = "Venta payU";
$email_to = "$email_merchant, $buyer_email";
$contenido ="\n"
. "COMPROBANTE DE PEDIDO DE FOTOGRAFIAS ON-LINE\n"
. "$site_merchant\n"
. "# OP: $transaction_id\n"
. "\n"
. "NOMBRE CLIENTE: $buyer_name $buyer_lastname\n"
. "DIRECCION: $buyer_street $buyer_number\n"
. "CIUDAD: $buyer_city - $buyer_state\n"
. "DNI: $buyer_document_number\n"
. "TEL: $buyer_phone\n"
. "email: $buyer_email\n"
. "\n"
. "PRODUCCION: $proyecto\n"
. "CANTIDAD DE FOTOGRAFIAS: $item_name_1\n"
. "IMPORTE PEDIDO: $ $total,00\n"
. "IMPORTE ENVIO: $totalenvio\n"
. "IMPORTE TOTAL: $totalapagar\n"
. "METODO DE PAGO: $radio\n"
. "OBSERVACIONES DEL CLIENTE:\n"
. "$obs\n"
. "\n"
. "FOTO	CANT	TAMAÑO\n"
. "$nombre1\n"
. "$nombre2\n"

Las variables nombre1, nombre2, etc son unas 500 pero no todas traen valores. necesito ordenarlas para que se muestren primero las variables que tienen valores. No quiero una validación, quiero que vengan todas las variables aunque no tengan contenido.
A ver si alguien me puede ayudar!
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
Imágen de perfil de xve

Filtrado de variables en servidor

Publicado por xve (5525 intervenciones) el 14/10/2014 20:38:39
Hola Anibal, no me queda muy claro... lo que quieres es que se ordene por el contenido de las variables, o por la variables?

Entiendo que lo que quieres ordenar son todos los valores enviados por post verdad?

has probado a utilizar ksort()?

Si nos puedes comentar con mas detalle...
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

Filtrado de variables en servidor

Publicado por Anibal (3 intervenciones) el 14/10/2014 21:00:47
Lo que quiero ordenar son el contenido (las variables ya están ordenadas por nombre).
He probado con las funciones sort de php, sólo que las variables no provienen de un array porque , creo, los campos están ocultos. No hubo forma de que me reconociera el array (el html)
gracias por responder
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
Imágen de perfil de xve

Filtrado de variables en servidor

Publicado por xve (5525 intervenciones) el 14/10/2014 23:00:18
Hola Anibal, no se si te he entendido bien, pero $_POST es un array del tipo key=>value... por lo que si quieres ordenarlo por el value, puedes utilizar asort() http://php.net/manual/en/function.asort.php

1
2
3
4
asort($POST);
foreach ($POST as $key => $val) {
    echo "$key = $val\n";
}

No lo he probado, pero creo que tiene que funcionar...

Coméntanos, ok?
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

Filtrado de variables en servidor

Publicado por Anibal (3 intervenciones) el 15/10/2014 02:21:09
Lo que hice fué lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$nombre=array("nombre1","nombre2", "nombre3",... así hasta 500
 
asort($nombre);
foreach ($nombre as $key => $val) {
}
 
$numero = count($_POST);
$tags = array_keys($_POST);
$valores = array_values($_POST);
for($i=0;$i<$numero;$i++){
$$tags[$i]=$valores[$i];
   $message .= "$tags[$i]:\n$valores[$i]\n\n";
 }
 
 
 
$cabeceras = "From: $buyer_email\n". "Reply-To: $buyer_email\n";
$asunto = "Venta payU";
$email_to = "$email_merchant, $buyer_email";
$contenido ="\n"
.
.
.
. "$nombre = $val\n"."\n";
 
 
@mail($email_to, $asunto, $contenido, $cabeceras);
?>

y lo que me tira en . "$nombre = $val\n"."\n"; es

Array=nombre99 (nada que ver!)
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
Imágen de perfil de xve

Filtrado de variables en servidor

Publicado por xve (5525 intervenciones) el 15/10/2014 08:29:57
Hola Anibal, intento explicarte...

ksort() ordenador un array del tipo key=>value por el key
asort() ordenador un array del tipo key=>value por el value
sort() ordenador un array normal.

El array que tu estas utilizando en la variable $nombre, es un array normal, no es del tipo key=>value por lo que tienes que ordenarlo con sort()


De todas maneras, todavía no tengo claro que quieres hacer...
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