elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Como enviar los datos a la Base de Datos
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Como enviar los datos a la Base de Datos  (Leído 7,841 veces)
giagete

Desconectado Desconectado

Mensajes: 85


Novato


Ver Perfil WWW
Como enviar los datos a la Base de Datos
« en: 3 Septiembre 2007, 19:53 pm »

Hola, soy un noob en este mundo y estoy intentando crear una web, y quería crear un formulario para que los datos que recoja fueran directamente a la Base de Datos, eso es podible? Como crearía el formulario para que conectaran? Por favor ayudarme, esto escapa de mis conocimientos. Si podeis decirme una cosa lo mas sencilla psible, luego yo la decoro y si es podible la mejoro...

Gracias por adelantado


En línea

Agente Naranja


Desconectado Desconectado

Mensajes: 535


uguu~


Ver Perfil WWW
Re: Como enviar los datos a la Base de Datos
« Respuesta #1 en: 3 Septiembre 2007, 20:37 pm »

Hola, esto lo haces con algún lenguaje de servidor, el más usado (por ser gratis) es PHP, y lo de enviar los datos a un archivo PHP lo puedes hacer desde las etiquetas HTML del formulario, así:

Código
  1. <form method="POST" action="archivo.php">

Donde METHOD puede ser, o bien GET, o bien POST, ya según lo que necesites, aunque lo normal es POST. Y luego ACTION es el archivo PHP al que vas a mandar los datos, que ya se encargará de hacer lo que sea con ellos, bien sea meterlos en una base de datos, bien sea enviarlos por email, lo que tu le pongas.

Si te interesa meterlos en una base de datos, y si de base de datos usas mysql (tambien muy usada, por ser gratuita) tu primer paso sería aprender algo de PHP; y luego leerte sobre las funciones PHP para bases de datos. He dicho mysql_connect, mysql_pconnect, mysql_select_db, mysql_query, mysql_error.

Un saludo.


En línea

giagete

Desconectado Desconectado

Mensajes: 85


Novato


Ver Perfil WWW
Re: Como enviar los datos a la Base de Datos
« Respuesta #2 en: 3 Septiembre 2007, 21:01 pm »

Haber, el formularo lo se hacer.. es más, quie te posteo uno que tengo.. lo que no se hacer es conectarlo a la base de datos, imagino que seran una o dos líneas indicando la base de datos, el nombre de usuario, la contraseña, la tabla, etc...

Mira, este es mi formulario:

Código:
<form action="engranes.php" method="post">
<table border="0" align="center">
  <tr>
    <td colspan="2"><div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Contacto</font></div></td>
    </tr>
  <tr>
    <td><div align="right"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Nombre:</font></strong></div></td>
    <td><input name="nombre" type="text">&nbsp;</td>
  </tr>
  <tr>
    <td><div align="right"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">E-Mail:</font></strong></div></td>
    <td><input name="email" type="text">&nbsp;</td>
  </tr>
  <tr>
    <td><div align="right"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">URL:</font></strong></div></td>
    <td><input name="url" type="text">&nbsp;</td>
  </tr>
  <tr>
    <td><div align="right"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Asunto:</font></strong></div></td>
    <td><div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">          <em>
    <input name="asunto" type="text">
&nbsp;</em></font></div></td>
  </tr>
  <tr>
    <td><div align="right"><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Texto Completo:</font></strong></div></td>
    <td rowspan="2"><textarea name="texto" cols="25" rows="6"></textarea>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="enviar" value="Enviar">
      <input type="reset" name="borrar" value="Borrar"></td>
  </tr>
</table>
</form>&nbsp;</p>
</body>
</html>

Con esto seríais capaz de explicarme como conectarlo a la BD?

Agradezcom mucho vuestra ayuda!
En línea

Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Como enviar los datos a la Base de Datos
« Respuesta #3 en: 3 Septiembre 2007, 23:30 pm »

Pues eso que quieres hacerno es complicado, a ver si no me equivoco sería algo así:

Suponiendo que tienes una base de datos, con una tabla creada con los campos:
nombre, email, url, asunto, texto.

El archivo engranes.php sería tal que así:

Código
  1. <?php
  2. // 1.- RECOGIDA DE DATOS DEL FORMULARIO
  3. $nombre=$_POST['nombre'];
  4. $email=$_POST['email'];
  5. $url=$_POST['url'];
  6. $asunto=$_POST['asunto'];
  7. $texto=$_POST['texto'];
  8.  
  9. // 2.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
  10. $db="nombredeladb";
  11. $db_login="tunombredeusuario";
  12. $db_pswd="tupass";
  13. $link = mysql_connect("server.delabase.dedatos", $db_login, $db_pswd);
  14.  
  15. // 3.- CONEXION A LA BASE DE DATOS
  16. mysql_select_db($db , $link);
  17.  
  18. // 4.- INSERCION DE DATOS
  19. mysql_query ("INSERT INTO
  20. NOMBREDELATABLA (nombre, email, url, asunto, texto)
  21. VALUES ('$nombre','$email','$url','$asunto','$texto')");
  22.  
  23. print("Datos agregados a la base.");
  24.  
  25. mysql_close($link);
  26.  
  27.  
  28. ?>

Solo tienes que sustituir tu nombre de usuario y pass, el de la base de datos y tu server y por supuesto donde dice NOMBREDELATABLA pon el nombre de la tabla de tu base de datos.
Con eso no deberías de tener más problemas para insertar los datos en la base de datos, espero que te sea de ayuda ;)

Saludos
En línea

giagete

Desconectado Desconectado

Mensajes: 85


Novato


Ver Perfil WWW
Re: Como enviar los datos a la Base de Datos
« Respuesta #4 en: 4 Septiembre 2007, 11:24 am »

Muchas gracias, ahora lo pruebo.. y comento los resultados.


Me habeis ayudado mucho!
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Como enviar los datos a la Base de Datos
« Respuesta #5 en: 5 Septiembre 2007, 05:12 am »

Ya veo esas inyecciones SQL y esos XSS  :rolleyes:
Ponle filtros UTF-8:

Código
  1. <?php
  2. // 1.- RECOGIDA DE DATOS DEL FORMULARIO SIN FILTROS
  3. $nombre_sf=$_POST['nombre'];
  4. $email_sf=$_POST['email'];
  5. $url_sf=$_POST['url'];
  6. $asunto_sf=$_POST['asunto'];
  7. $texto_sf=$_POST['texto'];
  8.  
  9. // 2.- Filtramos en UTF-8
  10. $nombre = htmlspecialchars("$nombre_sf", ENT_QUOTES);
  11. $email = htmlspecialchars("$email_sf", ENT_QUOTES);
  12. $url = htmlspecialchars("$url_sf", ENT_QUOTES);
  13. $asunto = htmlspecialchars("$asunto_sf", ENT_QUOTES);
  14. $texto = htmlspecialchars("$texto_sf", ENT_QUOTES);
  15.  
  16. // 3.- IDENTIFICACION nombre de la base, del usuario, clave y servidor
  17. $db="nombredeladb";
  18. $db_login="tunombredeusuario";
  19. $db_pswd="tupass";
  20. $link = mysql_connect("server.delabase.dedatos", $db_login, $db_pswd);
  21.  
  22. // 4.- CONEXION A LA BASE DE DATOS
  23. mysql_select_db($db , $link);
  24.  
  25. // 5.- INSERCION DE DATOS
  26. mysql_query ("INSERT INTO
  27. NOMBREDELATABLA (nombre, email, url, asunto, texto)
  28. VALUES ('$nombre','$email','$url','$asunto','$texto')");
  29.  
  30. print("Datos agregados a la base.");
  31.  
  32. mysql_close($link);
  33. ?>
En línea

giagete

Desconectado Desconectado

Mensajes: 85


Novato


Ver Perfil WWW
Re: Como enviar los datos a la Base de Datos
« Respuesta #6 en: 6 Septiembre 2007, 10:18 am »

No es por molestar, pero los filtros UTF-8 para que sirven, estoy aprendiendo y me interesa todo... :P

Y tengo una pregunta al crear la tabla en la BD... creo una tabla que se llama "formulario" se supone que con 5 campos no?, los mismos que opciones hay en el formulario. Hasta ahí creo que va todo bien.

Luego a los campos les pongo el nombre de las opciones, "nombre" "url" "email"...

Pero lo demas nose que poner, ¿Que tipo? ¿Que valores, cotejamiento, atributos, nulo, preterminado, extra....?

Os agradeceria la ayuda
« Última modificación: 6 Septiembre 2007, 11:24 am por giagete » En línea

giagete

Desconectado Desconectado

Mensajes: 85


Novato


Ver Perfil WWW
Re: Como enviar los datos a la Base de Datos
« Respuesta #7 en: 6 Septiembre 2007, 11:53 am »

Me he documentado un poco y os voy a enseñar lo que tengo: (ME da error, lo pongo abajo)

UN FORMULARIO SENCILLO
Código:
<form name="formulario" action="insertar_datos.php" method="post">
E-mail: <input type="text" name="email"><br>
Texto: <input type name="texto"><br>
<input type="submit" name="enviar" value="Enviar">
</form>

CONECTANDO BD (insertar_datos.php)
Código:
<?php

    //Compruebo que ningún campo esté vacío y que todos los campos existan.
    if(isset($_POST['titulo']) && !empty($_POST['titulo']) &&
    isset($_POST['contenido']) && !empty($_POST['contenido'])) {

        // Si todo esta bien.

        $link = mysql_connect("*******","*****","******");
        mysql_select_db("**********",$link);

        // Se inserta todo en la Base de Datos
        mysql_query("INSERT INTO formulario (titulo,contenido)
        VALUES ('{$_POST['titulo']}','{$_POST['contenido']}')",$link);

        // Compruebo que todo va perfectamente
        $my_error = mysql_error($link);

        if(!empty($my_error) {

            echo "Ha habido un error al insertar los valores. $my_error";

        } else {

            echo "Los datos han sido introducidos satisfactoriamente";

        }

    } else {

        echo "Error, no ha introducido todos los datos";

    }

?>

Parse error: syntax error, unexpected '{' in /home/virtual/sitio144456/www/user/insertar_datos.php on line 19

Me da este error, que fallo tiene..?
« Última modificación: 6 Septiembre 2007, 11:57 am por giagete » En línea

Ertai
Colaborador
***
Desconectado Desconectado

Mensajes: 2.025


Ralph Wiggum


Ver Perfil
Re: Como enviar los datos a la Base de Datos
« Respuesta #8 en: 6 Septiembre 2007, 17:22 pm »

Linia 19:  if(!empty($my_error)) {
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
Agente Naranja


Desconectado Desconectado

Mensajes: 535


uguu~


Ver Perfil WWW
Re: Como enviar los datos a la Base de Datos
« Respuesta #9 en: 6 Septiembre 2007, 19:54 pm »

Pues el error está, como dice Ertaí, en que te has comido un paréntesis.
Y lo de los filtros UTF, lo que hace es pasar las variables por un "encoder", o como se llame, una función que cambia todos los carácteres especiales (<,>,&...) y los convierte en HTML sencillo, para evitar algún posible crackeo a la base de datos.
Saludos.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines