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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problema al ingresar registros a una Tabla
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al ingresar registros a una Tabla  (Leído 3,152 veces)
mokoMonster


Desconectado Desconectado

Mensajes: 301


<? ...


Ver Perfil
Problema al ingresar registros a una Tabla
« en: 18 Febrero 2010, 20:00 pm »

Despues de intentar varias cosas y al ver que ninguna tubo resultado es mi deber postear mi problema en el foro  ;-)

El problema es este:
Tengo un formulario "newclient.html" con action="validform.php"; que toma los datos del cliente y los inserta en la tabla 'clientlist' pero el problema es que cuando inserta los registros, los ingresa vacios, es decir.. Al registrar al cliente con ID 1 el nombre, apellido, bla bla bla.. estan en blanco, aunque el formulario haya sido llenado correctamente.
Código:
<form id="form1" name="form1" method="get" action="validform.php">
<table width="253" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="82">name ::</td>
    <td width="165"><label>
      <input type="text" name="name" id="name" />
    </label></td>
  </tr>
  <tr>
    <td>surname ::</td>
    <td><label>
      <input type="text" name="last_name" id="last_name" />
    </label></td>
  </tr>
  <tr>
    <td><p>gender ::</p></td>
    <td><label>
      <select name="gender" size="1" id="gender">
        <option selected="selected">male</option>
        <option>female</option>
        <option>shemale</option>
      </select>
    </label></td>
  </tr>
  <tr>
    <td>birthdate ::</td>
    <td><label>
      <input type="text" name="birthdate" id="birthdate" />
    </label></td>
  </tr>
  <tr>
    <td><p>mail ::</p></td>
    <td><label>
      <input type="text" name="mail" id="mail" />
    </label></td>
  </tr>
  <tr>
    <td>phone ::</td>
    <td><label>
      <input type="text" name="phone" id="phone" />
    </label></td>
  </tr>
  <tr>
    <td>emergency ::</td>
    <td><label>
      <input type="text" name="emerg_phone" id="emerg_phone" />
    </label></td>
  </tr>
  <tr>
    <td>cc_num ::</td>
    <td><label>
      <input type="text" name="cc_info" id="cc_info" />
    </label></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><label>
      cvc:
      <input type="text" name="cvc" id="cvc" />
    </label>
      <label>
        <br />
        exp:
        <input type="text" name="exp" id="exp" />
    </label></td>
  </tr>
  <tr>
    <td>comments ::</td>
    <td><label>
      <textarea name="comments" id="comments" cols="25" rows="3"></textarea>
    </label></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><label>
      <input type="submit" name="send" id="send" value="Enviar" />
    </label></td>
  </tr>
</table>
</form>
*El formulario es muy simple porque lo rehice y es de prueba

en "validform.php" tengo:
Código:
<?php
include("validdb.php");
$link=Conectarse();
$no=$_GET["ID"];
$name=$_GET["name"];
$last_name=$_GET["last_name"];
$phone=$_GET["phone"];
$emerg_phone=$_GET["emerg_phone"];
$mail=$_GET["mail"];
$gender=$_GET["gender"];
$birthdate=$_GET["birthdate"];
$cc_info=$_GET["cc_info"];
$cvc=$_GET["cvc"];
$exp=$_GET["exp"];
$comments=$_GET["comments"];
mysql_query("insert into clientlist (ID,name,last_name,phone,emerg_phone,mail,gender,birthdate,cc_info,cvc,exp,comments) values ('$no','$name','$last_name','$phone','$emerg_phone','$mail','$gender','$birthdate','$cc_info','$cvc','$exp','$comments')",$link) or die(mysql_error());
header('Location: clientlist.php')
?>

El codigo en validdb.php es completamente correcto, tanto lo es que ingresa los campos vacios a la db.
Como dato: Todo este proceso funcionaba a la perfeccion, pero cuando agrege un campo a la tabla en clientlist.php para Borrar los registros -que tambien funciono perfectamente- desde ahi empeze a tener problemas con la insercion de registros.
Aunque lo mas raro -para mi- fue que hasta intente cambiando de servidor y el problema persiste.
Código:
<?php
   include("validdb.php");
   $link=Conectarse();
   $result=mysql_query("select * from clientlist",$link) or die(mysql_error());
?>
<table height="36" border=1 align="center" cellpadding=0 cellspacing=0>
   <tr>
     <td width="12" height="14" bgcolor="#FFCC00"><b> # </b></td>
     <td width="49" bgcolor="#FF6600"><b> Name</b></td>
     <td width="46" bgcolor="#FFCC00"><b>Last Name</b></td>
     <td width="50" bgcolor="#FF6600"><b>Phone</b></td>
     <td width="64" bgcolor="#FFCC00"><b>Emerg Phone</b></td>
     <td width="40" bgcolor="#FF6600"><b>Email</b></td>
     <td width="41" bgcolor="#FFCC00"><b>Gender</b></td>
     <td width="58" bgcolor="#FF6600"><b>Brithdate</b></td>
     <td width="99" bgcolor="#FFCC00"><b>CC num</b></td>
     <td width="26" bgcolor="#FF6600"><b>CVC</b></td>
     <td width="43" bgcolor="#FFCC00"><b>EXP</b></td>
     <td width="123" bgcolor="#FF6600"><b>Comments</b></td>
     <td width="63" bgcolor="#FFCC00"><b>Delete</b></td>
   </tr>

   <?php  
   while($row = mysql_fetch_array($result))
    {
      printf("<tr><td> %s </td><td> %s </td><td> %s </td><td> %s </td><td> %s </td><td> %s </td><td> %s </td><td> %s </td><td> %s </td><td> %s </td><td> %s </td><td> %s </td><td><a href=\"borra_client.php?id=%d\">Delete</a></td></tr>",$row["ID"],$row["name"],$row["last_name"],$row["phone"],$row["emerg_phone"],$row["mail"],$row["gender"],$row["birthdate"],$row["cc_info"],$row["cvc"],$row["exp"],$row["comments"],$row["ID"]) or die(mysql_error());
   }
  
   mysql_free_result($result);
   mysql_close($link);
?>
</table>

Espero me puedan hechar una manita; se los agradeceria mucho.
Saludos :D


« Última modificación: 18 Febrero 2010, 20:10 pm por mokoMonster » En línea

"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Problema al ingresar registros a una Tabla
« Respuesta #1 en: 18 Febrero 2010, 20:09 pm »

Esto va en la sección PHP...

Ps mira, el formulario lo envias via POST pero lo recives via GET.... Tambien pueda ser que estes ingresando datos vacio en la base de datos, puedes verificar que TODAS las variables contengan un valor o si no no se ejecuta la consulta...

Código
  1. if(!empty($name) && !empty($last_name)............)
  2. {
  3.    //Consulta sel hacia la BD....
  4. .....
  5. ...
  6.  
  7. ..
  8. }else{echo "Faltan campos por llenar";}


En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Problema al ingresar registros a una Tabla
« Respuesta #2 en: 18 Febrero 2010, 20:15 pm »

si esto es para aprender php+mysql esta bien... si es un trabajo vas a ser owneado porque sos vulnerable a sqli

como ya te dijo yoyahack... estas tomando los datos por donde no debes xD usa $_POST['campo']

si podes aprender/usar mysql o PDO y prepared statements mucho mejor xD yo no usaria el codigo de arriba :P
En línea

Ojo por ojo, y el mundo acabará ciego.
mokoMonster


Desconectado Desconectado

Mensajes: 301


<? ...


Ver Perfil
Re: Problema al ingresar registros a una Tabla
« Respuesta #3 en: 18 Febrero 2010, 20:17 pm »

Creo que habia olvidado fijarme en ese pequeño detalle :( haha pero muchas gracias..
Y esto de verificar que todas las variables tengan un valor, eso lo tengo que poner en validdb.php cierto?
En línea

"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Problema al ingresar registros a una Tabla
« Respuesta #4 en: 18 Febrero 2010, 20:20 pm »

En validform.php
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
mokoMonster


Desconectado Desconectado

Mensajes: 301


<? ...


Ver Perfil
Re: Problema al ingresar registros a una Tabla
« Respuesta #5 en: 18 Febrero 2010, 20:21 pm »

si esto es para aprender php+mysql esta bien... si es un trabajo vas a ser owneado porque sos vulnerable a sqli

como ya te dijo yoyahack... estas tomando los datos por donde no debes xD usa $_POST['campo']

si podes aprender/usar mysql o PDO y prepared statements mucho mejor xD yo no usaria el codigo de arriba :P


En realidad mi nivel de mysql es muy basico aun xD
Me podrias dar una idea de como podria ir mejorado el codigo, solo una idea porfavor xD:D
En línea

"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange
mokoMonster


Desconectado Desconectado

Mensajes: 301


<? ...


Ver Perfil
Re: Problema al ingresar registros a una Tabla
« Respuesta #6 en: 18 Febrero 2010, 20:21 pm »

En validform.php
xD Gracias, por eso es bueno preguntar xD
En línea

"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange
Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Problema al ingresar registros a una Tabla
« Respuesta #7 en: 18 Febrero 2010, 20:30 pm »

que tal andas con la POO? ;D

tienes 2 opciones (en realidad como 5 xD) usar mysql_real_scape_string() para todos los datos que te pasen y asi no ser vulnerable a sqli O utilizar prepared statements (que viene funcionando un poco diferente) por medio de mysqli o PDO

haz el intento de inyectar en tu codigo... despues agrega esto al principio del script

Código
  1. foreach ($_POST as $key => $value) {
  2. $_POST[$key] = mysql_real_escape_string($value);
  3. }

y vuelve a probar la inyeccion

la 2da opcion sería que leas esto ;-)
http://www.petefreitag.com/item/356.cfm (ejemplo basico)
http://devzone.zend.com/article/686 (ejemplo comparativo entre el metodo tradicional y con prepared statements en mysqli)
http://php.net/manual/en/pdo.prepared-statements.php (procesos almacenados y sentencias preparadas con PDO)

tienes tarea :P


En línea

Ojo por ojo, y el mundo acabará ciego.
mokoMonster


Desconectado Desconectado

Mensajes: 301


<? ...


Ver Perfil
Re: Problema al ingresar registros a una Tabla
« Respuesta #8 en: 18 Febrero 2010, 22:10 pm »

hehe wooow xD muy bien muchisimas gracias :D:D
me gusta la tarea xD
no la de mi escuela, pero la que tenga que ver con los ordenadores me fascina
:D

Muuuuchas gracias xD
En línea

"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mostrar los Registros de una tabla en phpo mysql
PHP
danipena78 1 6,473 Último mensaje 4 Julio 2011, 17:40 pm
por RedZer
Ingresar datos en tabla MySQL con vb.NET
.NET (C#, VB.NET, ASP)
Eavesdropping 4 16,168 Último mensaje 25 Abril 2012, 17:29 pm
por Eavesdropping
19 000 registros en una tabla
Desarrollo Web
landerzx 2 2,358 Último mensaje 30 Abril 2013, 23:33 pm
por landerzx
Copiar registros de una tabla a otra con IBExpert
Bases de Datos
calitos 0 2,530 Último mensaje 4 Junio 2015, 14:51 pm
por calitos
[Resuelto] Ayuda con POO no puedo ingresar registros en base mysql con pdo
PHP
Necronomicon.93 2 2,403 Último mensaje 2 Julio 2018, 22:16 pm
por Necronomicon.93
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines