Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-12-2012
whitesnakevm whitesnakevm is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 12
Poder: 0
whitesnakevm Va por buen camino
Exclamation Error al tratar de guardar los datos de un formulario

Hola al indicar lo siguientes .. al ejecutarlo me da error
Notice: Undefined index: txt_rut in C:\wamp\www\Snake\Registro.php on line 14
este es el error

Código Delphi [-]
if(isset($_POST["btnguardar"])){

  $rut=$_POST["txt_rut"];
  $contra=$_POST["txt2"];
  $nom=$_POST["txt3"];
  $apel=$_POST["txt4"];
  $dire=$_POST["txt5"];
  $celu=$_POST["txt6"];
  $com=$_POST["cbo1"];
  $tipo=$_POST["cbo2"];
  $insertar="insert into usuarios values('$rut','$contra','$nom','$apel,'$dire',$celu,'$com','$tipo') ";
  $sentencia=mysql_query($insertar,$con); 
  if(!$sentencia){
    die("No se pudo Insertar, Existe un Error");
  }
}

Saludos gracias
Responder Con Cita
  #2  
Antiguo 08-12-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Antes de acceder al elemento de un array, es menester averiguar si realmente existe dicho elemento. Esto puede hacerse con "isset", algo más o menos así:

Código PHP:
if ( isset( $_POST'elemKey' ] ) )
{
  
// El elemento existe

De todas formas, me permito aconsejarte que busques información sobre cómo verificar y filtrar este tipo de variables, "$_POST", "$_GET", etc., pues, se trata de variables "de entrada" que pueden contener datos maliciosos, erróneos, etc. Echa un vistazo al capítulo de la ayuda de PHP: Filtrado de datos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 08-12-2012
whitesnakevm whitesnakevm is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 12
Poder: 0
whitesnakevm Va por buen camino
Gracias ... y para evitar el uso de estos elementos ... (ya habia encontrado como iniciarlos) de que otra manera puedo escribir esa parte indicada ?

Agradeceria sus ayuda... anoche estuve mas de 6 horas dandole vuelta al asunto, puesto que soy novato y no conozco mucho del tema !!

Saludos.. Gracias
Responder Con Cita
  #4  
Antiguo 08-12-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Si sólo quieres (de momento) asegurar que un elemento determinado exista, puedes utilizar "isset", tal como he puesto en el código de arriba. Debes hacer lo mismo con todos los elementos del Array, pues, el error que obtienes indica eso: que un elemento al que trata de accederse no existe en realidad.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 08-12-2012
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.019
Poder: 10
Julián Va por buen camino
Complementando lo dicho por dec me permito indicar que el "mensaje de error" que citas no es un error, sino un notice. EL php te avisa de errorres, warnings y notices, y en este caso, sólo te está informando que la variable $_POST['txt_rut'] no existe, lo cual no produce ningún error, pues puede deberse simplemente a que no se haya rellenado su input correspondiente en el form.

Si buscas en php.net la funcion error_reporting verás que puedes usarla para que, entre otras cosas, no se te muestren los notices.

Un saludo.
__________________
"la única iglesia que ilumina es la que arde"
Anonimo
Responder Con Cita
  #6  
Antiguo 09-12-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Cita:
Empezado por Julián Ver Mensaje
Complementando lo dicho por dec me permito indicar que el "mensaje de error" que citas no es un error, sino un notice. EL php te avisa de errorres, warnings y notices, y en este caso, sólo te está informando que la variable $_POST['txt_rut'] no existe, lo cual no produce ningún error, pues puede deberse simplemente a que no se haya rellenado su input correspondiente en el form.

Si buscas en php.net la funcion error_reporting verás que puedes usarla para que, entre otras cosas, no se te muestren los notices.

Un saludo.
Es cierto, y, si no recuerdo mal, en producción, es decir, una vez nuestro sitio web esté publicado, nunca deben mostrarse este tipo de errores o noticias... es decir que los errores se han de tratar de otra forma y no mostrando su correspodiente mensaje.

De todas formas, una "noticia" puede derivar en algo más grave... y al menos este tipo de ellas (comprobar antes de usarlo si existe cierto elemento de un array) es sencilla de solventar...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 09-12-2012
whitesnakevm whitesnakevm is offline
Miembro
NULL
 
Registrado: dic 2012
Posts: 12
Poder: 0
whitesnakevm Va por buen camino
como hago eso ? :S
Responder Con Cita
  #8  
Antiguo 11-12-2012
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Puedes utilizar la funcion var_dump, que te imprimira el contenido del vector $_POST. Así puedes ver con que llega al script php.
Código Delphi [-]
var_dump($_POST);  


if(isset($_POST["btnguardar"])){

  $rut=$_POST["txt_rut"];
  $contra=$_POST["txt2"];
  $nom=$_POST["txt3"];
  $apel=$_POST["txt4"];
  $dire=$_POST["txt5"];
  $celu=$_POST["txt6"];
  $com=$_POST["cbo1"];
  $tipo=$_POST["cbo2"];
  $insertar="insert into usuarios values('$rut','$contra','$nom','$apel,'$dire',$celu,'$com','$tipo') ";
  $sentencia=mysql_query($insertar,$con); 
  if(!$sentencia){
    die("No se pudo Insertar, Existe un Error");
  }
}

Un abrazo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tratar información enviada por un formulario web a un cgi-Webbroker [[JONAS]] Internet 8 16-08-2023 03:06:57
Form hijo lanza error al tratar de obtener datos Diego827 C++ Builder 1 18-10-2011 01:24:15
Error al guardar datos Elite237 OOP 14 07-10-2008 23:45:45
Error al guardar datos Manuel Firebird e Interbase 1 05-09-2006 23:01:01
tratar Error de conexion a base de datos Dayvis Varios 1 06-04-2005 09:53:09


La franja horaria es GMT +2. Ahora son las 16:07:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi