Foros del Web » Programando para Internet » PHP »

$HTTP_POST_VARS / Formulario

Estas en el tema de $HTTP_POST_VARS / Formulario en el foro de PHP en Foros del Web. Muy buenas. Estoy tratando de hacer un formulario. La cosa es que haciéndolo de esta manera no logra recoger los datos introducidos en el formulario ...
  #1 (permalink)  
Antiguo 23/04/2011, 11:24
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 4 meses
Puntos: 9
$HTTP_POST_VARS / Formulario

Muy buenas. Estoy tratando de hacer un formulario. La cosa es que haciéndolo de esta manera no logra recoger los datos introducidos en el formulario y no sé por qué. También me gustaría saber cuál es la diferencia entre esta forma de obtener los datos y la de $REQUEST. Muchas gracias.

Código PHP:
    $neumaticosctd $HTTP_POST_VARS['neumaticosctd'];
    
$aceitectd $HTTP_POST_VARS['aceitectd'];
    
$bujiasctd $HTTP_POST_VARS['bujiasctd'];
    
    echo 
'<p><b>Éste es tu pedido: </b></p>';
    echo 
$neumaticosctd'neumáticos<br/>';
    echo 
$aceitectd'aceite<br/>';
    echo 
$bujiasctd'bujias<br/>';

    echo 
"<p>Pedido realizado el ";
    echo 
date("j-n-Y");
    echo 
" a las ";
    echo 
date("H:i");
    echo 
"</p>";
    echo 
"<p>En unos segundos, recibirá un correo con la confirmación de compra. Gracias por comprar nuestros     productos.</p>"
  #2 (permalink)  
Antiguo 23/04/2011, 12:18
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: $HTTP_POST_VARS / Formulario

$HTTP_POST_VARS esta obsoleto, utiliza $_POST, la diferencia, entre ambos es que $_POST recibe los datos enviados por method post y $_REQUEST recibe datos tanto de post como get, personalmente trato de utilizar lo menos posible $_REQUEST pero es una opinion personal, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 24/04/2011, 00:55
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 4 meses
Puntos: 9
Respuesta: $HTTP_POST_VARS / Formulario

Gracias, Carlos. Es lo que imaginaba. Como soy toda una aprendiz me conviene preguntar hasta si el azúcar es refinado. Probaré con $POST, pues con $REQUEST sí conseguía adquirir los datos. Con respecto a lo de $REQUEST, $POST, etc... He estado leyendo que en determinados casos puede peligrar la seguridad... ¿Podrías informarme un poco al respecto? Es algo que me conviene saber antes de seguir aprendiendo.

De nuevo, muchas gracias.
  #4 (permalink)  
Antiguo 24/04/2011, 01:00
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: $HTTP_POST_VARS / Formulario

Ten mucho en cuenta que es $_POST y $_REQUEST.. No $POST :)
Y tengo entendido que $REQUEST sí es algo peligroso, desconozco las razones, pero pretendo no usarlo por recomendación de distintas fuentes y porque PHP.net ya lo considera obsoleto, supongo que por la misma razón

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 24/04/2011, 01:44
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 4 meses
Puntos: 9
Respuesta: $HTTP_POST_VARS / Formulario

Buah! Cómo estoy de despistada esta mañana. Entonces, ¿¿¿el $_REQUEST también está obsoleto??? ¿Hay algún lugar donde vengan TODOS los argumentos, arrays y demás que ya están obsoletos? Pues mira que estoy siguiendo un libro basado en PHP 5. No entiendo ná...
  #6 (permalink)  
Antiguo 24/04/2011, 01:45
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 4 meses
Puntos: 9
Respuesta: $HTTP_POST_VARS / Formulario

Ah, y mil gracias!
  #7 (permalink)  
Antiguo 24/04/2011, 13:10
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: $HTTP_POST_VARS / Formulario

Amiga whitefeathers te voy a presentar oficialmente a la persona que te va a aclarar muchas de tus dudas y esta es el manual oficial de php , ahora con respecto a si esta obsoleto o no segun el manual $_REQUEST no esta obsoleto, solo que por razones de seguridad como te indico el amigo Sourcegeek no es muy recomendado, yo tenía un link que hablaba de eso veamos si lo encuentro y te lo coloco aca, aunque lo que te hace ir mejorando en el lenguaje va a ser la investigación de las funciones que desees utilizar, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 24/04/2011, 13:42
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: $HTTP_POST_VARS / Formulario

Exacto, nada como PHP.net para resolver cualquier duda
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #9 (permalink)  
Antiguo 25/04/2011, 01:27
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 4 meses
Puntos: 9
Respuesta: $HTTP_POST_VARS / Formulario

El manual siempre me ha parecido bastante austero para empezar a aprender, pero os haré caso y me centraré en él para ver bien cada función que vaya usando. Carlos_belisario, sería muy interesante indagar sobre el tema de seguridad en PHP para hacer buenas prácticas. Soy consciente de que existen numerosos libros en el mercado acerca de esto, si encuentras ese enlace... será estupendo. Gracias a todos por vuestra ayuda.
  #10 (permalink)  
Antiguo 25/04/2011, 13:04
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: $HTTP_POST_VARS / Formulario

Austero? Hmm.. Simplemente dinos que te da flojera leer y ya
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #11 (permalink)  
Antiguo 25/04/2011, 19:49
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: $HTTP_POST_VARS / Formulario

No es recomendable el uso de $_REQUEST, simplemente porque ahi puedes obtener valores que vienen tanto de $_GET, como de $_POST y, los posibles riesgos de seguridad, derivan de no saber exactamente el origen de los datos ingresados por el usuario y un mal manejo de los mismos, como no verificar.

Entonces, si sabes que ciertos datos los vas a recibir por URL, los tomas de $_GET y si los esperas de un formulario (con metodo post), entonces los tomas de $_POST.

Yo considero que hay 3 "puntos" que representan los mayores riesgos de seguridad:
1- Usar datos directamente de $_GET o $_POST para incluir otros archivos; ejemplo: include $_GET['modulo'] . '.php';
Riesgo: Grave, porque puede permitir accesos a otros archivos/scripts de tu sitio que contengan informacion importante.

2- Usar datos directamente de $_GET o $_POST para ingresarlos a base de datos, ya sea para extraer, introducir o actualizar información; siempre se deben escapar antes de colocarlos en una consulta.
Riesgo: Grave, porque puede permitir acceso, modificacion y/o perdida de informacion almacenada en la base de datos.

3- Usar datos directamente de $_GET o $_POST para mostrarlos en la pagina.
Riesgo: Grave, porque se pueden ejecutar scripts (javascript) para obtener informacion de otros visitantes del sitio y/o descargar virus, malware, etc.

Solucion: Siempre valida toda la informacion recibida, si esperas un numero, verifica que el dato sea numerico y que cualquier cadena (string) cumpla con las reglas que establezcas: caracteres permitidos, longitud minima/maxima, etc.
__________________
- León, Guanajuato
- GV-Foto
  #12 (permalink)  
Antiguo 26/04/2011, 02:15
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 4 meses
Puntos: 9
Respuesta: $HTTP_POST_VARS / Formulario

Triby, muchas gracias. Me queda clara la poca seguridad del $_REQUEST. Entiendo bien el punto 1, pero no demasiado bien los puntos 2 y 3. En el punto 2, dices que "se deben escapar los datos antes de colocarlos en la base de datos". Esto no lo entiendo bien. Y con respecto al punto 3, ¿a qué te refieres con mostrarlos en la página? ¿Podrías aportar un ejemplo?

Sourceseek, si me diera pereza leer no estaría con mi libro de PHP desde las 8 de la mañana hasta la noche (ni habría hecho la carrera de Filosofía, jejeje). El manual de PHP es sequito sequito para empezar, ¡no me lo niegues! Una se queda con el cuerpo cortado cuando se enfrenta a él siendo una ignorante. A mí me funciona el aprender-andando. Necesito ver ejemplos sobre la marcha y entender el sentido de las funciones en una aplicación más o menos real. Y es entonces cuando estudio teoría, a medida que la voy necesitando. Igual estoy haciendo mal y es mejor aprender de otra manera. Mis ojos están abiertos a cualquier recomendación.
  #13 (permalink)  
Antiguo 26/04/2011, 15:38
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: $HTTP_POST_VARS / Formulario

Con el punto 2 se refiere a eliminar codigo malicioso de la cadena, a eso se le llama escapar. Por ejemplo, eliminar codigo que fuera a dañar la base de datos
Con el punto 3 se refiere a lo mismo, escapar la cadena evitando que nos envien codigo XSS y nos dañe toda la pagina al mostrar el contenido en pantalla.

Si te quedan dudas sobre esto, puedes leer sobre inyecciones SQL y XSS

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #14 (permalink)  
Antiguo 26/04/2011, 15:44
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: $HTTP_POST_VARS / Formulario

whitefeathers, tratare de explicar brevemente:

2. Aun despues de haber validado el contenido de variables recibidas, debes prepararlas para ingresarlas en una consulta a base de datos. Imagina que estamos procesando el inicio de sesion.

$consulta = "SELECT * FROM usuarios WHERE username = '{$_POST['username']}'";

Si ejecutas esa consulta, tal cual, corres el riesgo de que se incluyan caracteres que podrian hacer que falle la consulta y que ademas podria dar acceso a cualquier usuario:

Usando directamente $_POST['username']:
Si el valor es: McDonald's causaria error por la comilla simple o apostrofe
Si el valor es algo como: john' OR id = 1 ' OR podria dar acceso a cualquier usuario

La solucion es preparar (escapar) los datos antes de ingresarlos a la consulta, en el caso de MySQL, la funcion adecuada es mysql_real_escape_string(), en caso de PDO, la libreria lo hace automaticamente, siempre y cuando se proporcionen los campos al ejecutar la consulta $pdoStatement->execute($vars).

3. Por ejemplo, si tienes un sistema de comentarios, un libro de visitas o cualquier herramienta que permita al usuario ingresar algun texto para mostrarse en tu pagina, debes evitar que incluyan cosas como <iframe ...> o <script...>, porque podrian conectar a sitios externos donde se "roben" los datos de cookies y/o descarguen malware o virus en la PC de tus visitantes.

Esta practica es mejor conocida como inyeccion XSS; hay varios aportes sobre el tema aqui mismo en FDW, solo debes usar el buscador.

Ahora, tienes razon, el manual de PHP en muchas ocasiones puede ser muy escueto y hasta muy confuso, sobre todo para principiantes, pero, para eso esta FDW, si tienes alguna duda, puedes recurrir aqui, pero siempre con algo de codigo y especificando cual es la parte que no entiendes o no funciona.

Te aseguro que encontraras mucha gente dispuesta a ayudarte y lo unico que se espera a cambio es que demuestres tener ganas de aprender.
__________________
- León, Guanajuato
- GV-Foto
  #15 (permalink)  
Antiguo 27/04/2011, 03:00
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 4 meses
Puntos: 9
Respuesta: $HTTP_POST_VARS / Formulario

Sois muy amables. Gracias, de verdad. Me queda bastante claro. La cosa es que yo aún no he utilizado PHP con SQL. Estoy siguiendo este libro (que recomiendan en la UNED) "Cómo hacer una tienda virtual con PHP 5 y MySQL 5" de Edgar D'Andrea (Inforbooks). Básicamente te enseñan a hacer una completa librería con un foro. La cosa es que quiero aprender a hacer CMS y otras cosas, no sólo tiendas virtuales, pero supongo que lo aprendido ahí me servirá para el resto... Sólo que ya tendré que plantearlo yo sin ayuda del libro.

Ea, pues a seguir estudiando y planteando dudas.
¡Muito obrigada!

Etiquetas: formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:37.