Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Una duda existencial

Estas en el tema de Una duda existencial en el foro de PHP en Foros del Web. Resluta que hace poco empece a estudiar php y mysql por mi cuenta, hoy viendo un tutorial de como registrar datos en una bd me ...
  #1 (permalink)  
Antiguo 04/02/2014, 06:39
 
Fecha de Ingreso: febrero-2014
Mensajes: 32
Antigüedad: 10 años, 2 meses
Puntos: 0
Una duda existencial

Resluta que hace poco empece a estudiar php y mysql por mi cuenta, hoy viendo un tutorial de como registrar datos en una bd me surgio una duda, asi que la voy a explicar simple y detalladamente para que se entienda

Tengo un formulario

Código HTML:
Ver original
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2.  
  3.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4.     <title>Documento sin título</title>
  5. </head>
  6.  
  7.     <form id="form1" name="form1" method="post">
  8.  
  9.         Nombre
  10.         <input name="nombre" type="text" id="textarea" value="" size=45 />
  11.         <p>
  12.             Apellido
  13.             <input name="apellido" type="text" id="textarea2" value="" size=45 />
  14.         </p>
  15.         <p>
  16.             Ocupación
  17.             <input name="ocupacion" type="text" id="textarea3" value="" size=45 />
  18.         </p>
  19.         <p>
  20.             Edad
  21.             <input name="edad" type="text" id="textarea4" value="" size=45 />
  22.         </p>
  23.         <p>
  24.             Sexo
  25.             <input name="sexo" type="text" id="textarea5" value="" size=45 />
  26.             <label>
  27.                 <input type="submit" name="button" id="button" value="Guardar" onclick="this.form.action = 'Insertar.php'" />
  28.             </label>
  29.     </form>
  30.  
  31. </body>
  32.  
  33. </html>

El cual envia los datos a instertar.php

Cuyo codigo es este

Código PHP:
Ver original
  1. <?php
  2. //Conectarse y seleccionar base de datos
  3. $link = mysql_connect('localhost', 'root');
  4. if (!$link) {
  5. die('Could not connect: ' . mysql_error());
  6. }
  7. echo 'Connected successfully';
  8.  
  9.  
  10.  
  11. $db_selected = mysql_select_db('tarea', $link);
  12. if (!$db_selected) {
  13. die ('Cant use tarea : ' . mysql_error());
  14. }
  15. // Tomar los campos provenientes del Formulario
  16. $nombre = $_POST['nombre'];
  17. $apellido = $_POST['apellido'];
  18. $ocupacion = $_POST['ocupacion'];
  19. $edad = $_POST['edad'];
  20. $sexo = $_POST['sexo'];
  21. // Insertar campos en la Base de Datos
  22. $que = "INSERT INTO datos (nombre, apellido, ocupacion, edad, sexo) ";
  23. $que.= "VALUES ('".$nombre."', '".$apellido."', '".$ocupacion."','".$edad."','".$sexo."') ";
  24. $res = mysql_query($que, $link) or die(mysql_error());
  25.  
  26. // Cerrar conexión a la Base de Datos
  27. mysql_close($link);
  28. ?>


Ahora mi duda es, en el archivo insertar.php en la parte

$que.= "VALUES ('".$nombre."', '".$apellido."', '".$ocupacion."','".$edad."','".$sexo."')

¿Lo rojo es el nombre de la variable o del id del input del html? Es decir, $nombre = $_POST nombre

Que iria lo verde o lo azul? Disculpen si la pregunta es muy estupida u obvia, empece hace unos dias y estoy bastante perdido, pero trato de entender lo que puedo y a a veces necesito ayuda, gracias de antemano :)
  #2 (permalink)  
Antiguo 04/02/2014, 06:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Una duda existencial

OFF TOPIC en MySQL.

Movido a PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 04/02/2014, 06:52
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Una duda existencial

UHm... intento explicarlo :)

$nombre es una variable.

Y su contenido, previamente asignado, es $_POST['nombre'].

$_POST es un variable-array(vector), que contiene los valores del formulario mandado por POST, segun el "name" del input. Es decir, para acceder al input "nombre", es $_POST['nombre'].

Por tanto, $nombre contiene $_POST['nombre'], que es el valor del input nombre. Si cambias "$nombre" por $fulanito, seguidia conteniendo el valor del input nombre. Pero si cambias ese $_POST['nombre'] por $_POST['edad'], $nombre pasaria a contener la edad :)

No sé si te he aclarado algo ^^

Saludos!
__________________
>> Eleazan's Source
>> @Eleazan
  #4 (permalink)  
Antiguo 04/02/2014, 06:53
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Una duda existencial

Lo rojo son variables, que en este caso están almacenando el valor que reciben del formulario, por eso $_POST['nombre_del_campo'], atributo name.

Si el formulario se enviara por GET, sería $_GET['atributo_name']

Php no recibe ni conoce de ninguna forma el id de cada campo porque no se envía junto al formulario.

saludos
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #5 (permalink)  
Antiguo 04/02/2014, 07:04
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Una duda existencial

Te dejo tres variantes:


UNO:

Código PHP:
Ver original
  1. // Insertar campos en la Base de Datos
  2. "INSERT INTO datos (nombre, apellido, ocupacion, edad, sexo) VALUES ('$nombre', '$apellido', '$ocupacion','$edad','$sexo') ";


DOS:

Código PHP:
Ver original
  1. // Insertar campos en la Base de Datos
  2. "INSERT INTO datos SET nombre='".$_POST['nombre']."', apellido='".$_POST['apellido']."', ocupacion='".$_POST['ocupacion']."', edad='".$_POST['edad']."', sexo='".$_POST['sexo']."' ";

TRES:

Código PHP:
Ver original
  1. // Insertar campos en la Base de Datos
  2. "INSERT INTO datos SET nombre='$nombre, apellido='$apellido', ocupacion='$ocupacion', edad='$edad', sexo='$sexo' ";
  #6 (permalink)  
Antiguo 04/02/2014, 07:10
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: Una duda existencial

Hola:

Aprende a programar de forma segura desde el inicio:
http://www.php.net/manual/es/securit...-injection.php
https://www.owasp.org/index.php/Inyecci%C3%B3n_SQL

slds;

nup_
  #7 (permalink)  
Antiguo 04/02/2014, 08:23
 
Fecha de Ingreso: febrero-2014
Mensajes: 32
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Una duda existencial

Muchas gracias a todos, pude solucionar este problema, pero me surgio otro donde voy a hacer un nuevo post, por que no tiene nada que ver con esto, pero muchas gracias a los que se molestaron en responderme :D
  #8 (permalink)  
Antiguo 04/02/2014, 09:14
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Una duda existencial

Para nada metas directamente los valores sin seguridad previa,

saludos
__________________
Gracias por el Karma :D

empleo ofertas de trabajo

Etiquetas: campo, existencial, mysql, select, sql
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




La zona horaria es GMT -6. Ahora son las 00:30.