Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: HJ ~ en 28 Diciembre 2009, 00:09 am



Título: Duda muy básica
Publicado por: HJ ~ en 28 Diciembre 2009, 00:09 am
Hola, he estado un buen rato buscando y no he encontrado nada acerca de esto.

Resulta que tengo una caja de texto y quiero obtener su valor, o sea, lo que hay escrito. Pero no se como obtener el valor de texto.

Espero que me ayudeis.

Gracias!!


Título: Re: Duda muy básica
Publicado por: b10s_0v3rr1d3 en 28 Diciembre 2009, 00:24 am

tienes que recuperar el nombre de lo que envias en el formulario, en este caso del name de la caja de texto.
y mirar tambien si se usa GET o POST, por ejemplo (se usara GET):

Código
  1. <form name="prpal" action="muestra.php" method="get">
  2.  
  3. <textarea cols="60" rows="5" name="texto">deja la nota aqui.....</textarea>
  4.  
  5. </form>

en el php [muestra.php] tendrias que poner:

Código
  1. <?php
  2.  
  3. ini_set('error_reporting',E_ALL);
  4.  
  5. if(isset($_GET['texto'])){$caja_texto = $_GET['texto'];}
  6. else{die();}
  7.  
  8. echo $caja_texto;
  9.  
  10. ?>

si fuera POST es poner $_POST (o tambien se puede usar $_REQUEST que acepta uno u otro).
nos leemos :P


Título: Re: Duda muy básica
Publicado por: ~ Yoya ~ en 28 Diciembre 2009, 00:29 am
Bueno, aqui uno con $_REQUEST (http://www.php-es.com/reserved.variables.html).

Pagina del formulario:
Código
  1. <html><head><title>Formulario problema</title></head>
  2. <body>
  3. <form method="post" action="proc.php">
  4. Como te llamas?
  5. <input type="text" name="nombre">
  6. <input type="submit" value="Enviar">
  7. </form>
  8. </body></html>


Y el que procesa los datos en php.
Código
  1. <?php
  2. echo '<title>Procesador del formulario</title>';
  3. $nombre = $_REQUEST['nombre'];
  4. echo "El nombre procesado en el formulario es $nombre";
  5. ?>


Título: Re: Duda muy básica
Publicado por: jdc en 28 Diciembre 2009, 01:00 am
Puedes usar los metodos "GET" y "POST"

Con GET seria:

Pagina.php

Código
  1. <?php
  2.  
  3.  
  4. $variable = $_GET['nombre'];
  5. $ref = $HTTP_REFERER;
  6.  
  7. if(empty($variable)){
  8. echo '
  9. <form method="get" action="';
  10.  
  11. echo $_SERVER['PHP_SELF'];
  12.  
  13. echo '
  14. ">
  15. <b>Ingrese su nombre</b><br />
  16. <input type="text" name="nombre">
  17. <input type="submit" value="ingresar nombre">
  18. </form>';
  19. }else{
  20. echo '
  21. <b>Su nombre es: <em>',$variable,'</em>
  22. <br />
  23. <a href="',$ref,'">Volver</a>';
  24. }
  25. ?>
  26.  

Y con POST seria:

Pagina.php

Código
  1. <?php
  2.  
  3.  
  4. $variable = $_POST['nombre'];
  5. $ref = $HTTP_REFERER;
  6.  
  7. if(empty($variable)){
  8. echo '
  9. <form method="post" action="';
  10.  
  11. echo $_SERVER['PHP_SELF'];
  12.  
  13. echo '
  14. ">
  15. <b>Ingrese su nombre</b><br />
  16. <input type="text" name="nombre">
  17. <input type="submit" value="ingresar nombre">
  18. </form>';
  19. }else{
  20. echo '
  21. <b>Su nombre es: <em>',$variable,'</em>
  22. <br />
  23. <a href="',$ref,'">Volver</a>';
  24. }
  25. ?>
  26.  

Ahora, ambos codigos son vulnerables a XSS asi que no los uses en sitios web en funcionamiento real. Osea que si por ejemplo metes en la caja de texto [hola"><script>alert('hola')</script>]

Veras inyectado un mensaje que dira "hola"

Para solucionar esto create una funcion o usa htmlspecialchars() con ent_quotes.

Saludos